From 6b990695bd9c011ba6b84022b150b37c96526390 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Fri, 6 Sep 2019 12:13:32 -0400 Subject: [PATCH 001/144] Add test cases for invalid kick-off headers --- .../bulk_data_patient_export_sequence.rb | 45 ++++++++++++++++--- .../bulk_data/patient_export_sequence_test.rb | 44 +++++++++++++++--- 2 files changed, 76 insertions(+), 13 deletions(-) diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index fa28406ca..a67c5ff11 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -15,7 +15,7 @@ class BulkDataPatientExportSequence < SequenceBase conformance_supports :Patient def assert_export_kick_off(klass) - reply = export_kick_off(klass) + reply = export_kick_off(klass: klass) assert_response_accepted(reply) @content_location = reply.response[:headers]['content-location'] @@ -23,6 +23,16 @@ def assert_export_kick_off(klass) assert @content_location.present?, 'Export response header did not include "Content-Location"' end + def assert_export_kick_off_fail_invalid_accept(klass) + reply = export_kick_off(klass: klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) + assert_response_bad(reply) + end + + def assert_export_kick_off_fail_invalid_prefer(klass) + reply = export_kick_off(klass: klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) + assert_response_bad(reply) + end + def assert_export_status(content_location = @content_location) reply = export_status_check(content_location) @@ -58,7 +68,7 @@ def assert_export_status(content_location = @content_location) @client.set_no_auth skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - reply = export_kick_off('Patient') + reply = export_kick_off(klass: 'Patient') @client.set_bearer_token(@instance.token) assert_response_unauthorized reply end @@ -75,9 +85,33 @@ def assert_export_status(content_location = @content_location) assert_export_kick_off('Patient') end - test 'Server shall return "202 Accepted" or "200 OK"' do + test 'Server shall reject for $export operation with invalid Accept header' do metadata do id '03' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' + desc %( + ) + versions :stu3 + end + + assert_export_kick_off_fail_invalid_accept('Patient') + end + + test 'Server shall reject for $export operation with invalid Prefer header' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' + desc %( + ) + versions :stu3 + end + + assert_export_kick_off_fail_invalid_prefer('Patient') + end + + test 'Server shall return "202 Accepted" or "200 OK"' do + metadata do + id '05' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' desc %( ) @@ -89,11 +123,10 @@ def assert_export_status(content_location = @content_location) private - def export_kick_off(klass) - headers = { accept: 'application/fhir+json', prefer: 'respond-async' } - + def export_kick_off(klass: nil, id: nil, headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) url = '' url += "/#{klass}" if klass.present? + url += "/#{id}" if id.present? url += '/$export' @client.get(url, @client.fhir_headers(headers)) diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index c5f120996..9ba1f1560 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -44,6 +44,17 @@ def setup @sequence = Inferno::Sequence::BulkDataPatientExportSequence.new(@instance, client, true) end + def include_export_stub_no_token + headers = @export_request_headers.clone + headers.delete(:authorization) + + stub_request(:get, 'http://www.example.com/Patient/$export') + .with(headers: headers) + .to_return( + status: 401 + ) + end + def include_export_stub(status_code: 202, response_headers: { content_location: @content_location }) stub_request(:get, 'http://www.example.com/Patient/$export') @@ -54,6 +65,28 @@ def include_export_stub(status_code: 202, ) end + def include_export_stub_invalid_accept + headers = @export_request_headers.clone + headers[:accept] = 'application/fhir+xml' + + stub_request(:get, 'http://www.example.com/Patient/$export') + .with(headers: headers) + .to_return( + status: 400 + ) + end + + def include_export_stub_invalid_prefer + headers = @export_request_headers.clone + headers[:prefer] = 'return=representation' + + stub_request(:get, 'http://www.example.com/Patient/$export') + .with(headers: headers) + .to_return( + status: 400 + ) + end + def include_status_check_stub(status_code: 200, response_headers: { content_type: 'application/json' }, response_body: @complete_status) @@ -69,14 +102,11 @@ def include_status_check_stub(status_code: 200, def test_all_pass WebMock.reset! - stub_request(:get, 'http://www.example.com/Patient/$export') - .with(headers: @export_request_headers_no_token) - .to_return( - status: 401 - ) - - include_status_check_stub + include_export_stub_no_token include_export_stub + include_export_stub_invalid_accept + include_export_stub_invalid_prefer + include_status_check_stub sequence_result = @sequence.start failures = sequence_result.failures From fe54d864af2bffb5c92b7d47b5cf2b8ecbd83cbd Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Fri, 6 Sep 2019 13:27:46 -0400 Subject: [PATCH 002/144] add exprt_file_request function --- config.yml | 1 + .../bulk_data_patient_export_sequence.rb | 42 +++++++++++++++---- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/config.yml b/config.yml index df35e4f9d..3e7491a1f 100644 --- a/config.yml +++ b/config.yml @@ -47,6 +47,7 @@ modules: - smart - us_core_r4 - argonaut + - bulk_data # preset fhir servers: optional. Minimally requires name, uri, module, optional inferno_uri, client_id, client_secret, scopes, instructions link presets: diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index a67c5ff11..de78fba9b 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -15,7 +15,7 @@ class BulkDataPatientExportSequence < SequenceBase conformance_supports :Patient def assert_export_kick_off(klass) - reply = export_kick_off(klass: klass) + reply = export_kick_off(klass) assert_response_accepted(reply) @content_location = reply.response[:headers]['content-location'] @@ -24,17 +24,17 @@ def assert_export_kick_off(klass) end def assert_export_kick_off_fail_invalid_accept(klass) - reply = export_kick_off(klass: klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) + reply = export_kick_off(klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) assert_response_bad(reply) end def assert_export_kick_off_fail_invalid_prefer(klass) - reply = export_kick_off(klass: klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) + reply = export_kick_off(klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) assert_response_bad(reply) end - def assert_export_status(content_location = @content_location) - reply = export_status_check(content_location) + def assert_export_status(url = @content_location) + reply = export_status_check(url) assert reply.code == 200, "Bad response code: expected 200, 202, but found #{reply.code}." @@ -47,13 +47,17 @@ def assert_export_status(content_location = @content_location) @output = response_body['output'] end + def assert_file_request(output = @output) + reply = export_file_request(output) + end + details %( The #{title} Sequence tests `#{title}` operations. The operation steps will be checked for consistency against the [Bulk Data Access Implementation Guide](https://build.fhir.org/ig/HL7/bulk-data/) ) - +  @resources_found = false test 'Server rejects $export request without authorization' do @@ -68,7 +72,7 @@ def assert_export_status(content_location = @content_location) @client.set_no_auth skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - reply = export_kick_off(klass: 'Patient') + reply = export_kick_off('Patient') @client.set_bearer_token(@instance.token) assert_response_unauthorized reply end @@ -121,9 +125,21 @@ def assert_export_status(content_location = @content_location) assert_export_status end + test 'Server shall return file in ndjson format' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + desc %( + ) + versions :stu3 + end + + assert_file_request + end + private - def export_kick_off(klass: nil, id: nil, headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) + def export_kick_off(klass, id: nil, headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) url = '' url += "/#{klass}" if klass.present? url += "/#{id}" if id.present? @@ -132,7 +148,8 @@ def export_kick_off(klass: nil, id: nil, headers: { accept: 'application/fhir+js @client.get(url, @client.fhir_headers(headers)) end - def export_status_check(url, headers = { accept: 'application/json' }) + def export_status_check(url) + headers = { accept: 'application/json' } wait_time = 1 reply = nil @@ -150,6 +167,13 @@ def export_status_check(url, headers = { accept: 'application/json' }) reply end + def export_file_request(output) + output.each do |item| + reply = @client.get(url) + binding.pry + end + end + def assert_status_reponse_required_field(response_body) ['transactionTime', 'request', 'requiresAccessToken', 'output', 'error'].each do |key| assert response_body.key?(key), "Complete Status response did not contain \"#{key}\" as required" From f875609d8015224ae9b243a30254b4b49b22a032 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Mon, 9 Sep 2019 16:25:31 -0400 Subject: [PATCH 003/144] fix function not found error --- .../bulk_data_patient_export_sequence.rb | 24 +++++++++---------- .../bulk_data/patient_export_sequence_test.rb | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index de78fba9b..334cf375b 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -57,7 +57,7 @@ def assert_file_request(output = @output) [Bulk Data Access Implementation Guide](https://build.fhir.org/ig/HL7/bulk-data/) ) -  + @resources_found = false test 'Server rejects $export request without authorization' do @@ -125,17 +125,17 @@ def assert_file_request(output = @output) assert_export_status end - test 'Server shall return file in ndjson format' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' - desc %( - ) - versions :stu3 - end - - assert_file_request - end + # test 'Server shall return file in ndjson format' do + # metadata do + # id '06' + # link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + # desc %( + # ) + # versions :stu3 + # end + + # assert_file_request + # end private diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index 9ba1f1560..84ae6fa1d 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -8,7 +8,7 @@ def setup 'transactionTime' => '2019-08-01', 'request' => '[base]/Patient/$export?_type=Patient,Observation', 'requiresAccessToken' => 'true', - 'output' => 'output', + 'output' => [{'type' => 'Patient', 'url' => 'http://www.example.com/patient-export-file'}], 'error' => 'error' } From c877108cf6b0538bf9e1284090a07d091d584e4f Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Thu, 12 Sep 2019 16:35:41 -0400 Subject: [PATCH 004/144] validate ndjson --- .../bulk_data_patient_export_sequence.rb | 55 ++++++++++++------- test/fixtures/bulk_data_patient.ndjson | 3 + .../bulk_data/patient_export_sequence_test.rb | 34 +++++++++++- test/test_helper.rb | 5 ++ 4 files changed, 75 insertions(+), 22 deletions(-) create mode 100644 test/fixtures/bulk_data_patient.ndjson diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index 0945e39d3..4252c39bc 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -47,10 +47,35 @@ def assert_export_status(url, timeout: 180) assert_status_reponse_required_field(response_body) @output = response_body['output'] + + assert_output_files(@output) end - def assert_file_request(output = @output) - reply = export_file_request(output) + def assert_output_files(output) + output.each do |file| + ['type', 'url'].each do |key| + assert file.key?(key), "Output file did not contain \"#{key}\" as required" + end + end + end + + def assert_file_request(output) + headers = { accept: 'application/fhir+ndjson' } + output.each do |file| + url = file['url'] + type = file['type'] + reply = @client.get(url, @client.fhir_headers(headers)) + assert_response_content_type(reply, 'application/fhir+ndjson') + lines = reply.body.split("\n") + lines.each do |line| + resource = FHIR.from_contents(line) + binding.pry + assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" + errors = resource.validate + assert errors.empty?, errors.join("
\n") + end + # assert each line is a valid FHIR resource + end end details %( @@ -127,17 +152,16 @@ def assert_file_request(output = @output) assert_export_status(@content_location) end - # test 'Server shall return file in ndjson format' do - # metadata do - # id '06' - # link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' - # desc %( - # ) - # versions :stu3 - # end + test 'Server shall return file in ndjson format' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + desc %( + ) + end - # assert_file_request - # end + assert_file_request(@output) + end private @@ -169,13 +193,6 @@ def export_status_check(url, timeout) reply end - - def export_file_request(output) - output.each do |item| - reply = @client.get(url) - binding.pry - end - end def get_wait_time(wait_time, reply) retry_after = reply.response[:headers]['retry-after'] diff --git a/test/fixtures/bulk_data_patient.ndjson b/test/fixtures/bulk_data_patient.ndjson new file mode 100644 index 000000000..e830af7f3 --- /dev/null +++ b/test/fixtures/bulk_data_patient.ndjson @@ -0,0 +1,3 @@ +{"id":"5c41cecf-cf81-434f-9da7-e24e5a99dbc2","name":[{"given":["Brenda"],"family":["Jackson"]}],"gender":"female","birthDate":"1956-10-14T00:00:00.000Z","resourceType":"Patient"} +{"id":"3fabcb98-0995-447d-a03f-314d202b32f4","name":[{"given":["Bram"],"family":["Sandeep"]}],"gender":"male","birthDate":"1994-11-01T00:00:00.000Z","resourceType":"Patient"} +{"id":"945e5c7f-504b-43bd-9562-a2ef82c244b2","name":[{"given":["Sandy"],"family":["Hamlin"]}],"gender":"female","birthDate":"1988-01-24T00:00:00.000Z","resourceType":"Patient"} \ No newline at end of file diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index eef9b2ecc..464b8e040 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -4,11 +4,14 @@ class BulkDataPatientExportSequenceTest < MiniTest::Test def setup + @content_location = 'http://www.example.com/status' + @file_location = 'http://www.example.com/patient_export.ndjson' + @complete_status = { 'transactionTime' => '2019-08-01', 'request' => '[base]/Patient/$export?_type=Patient,Observation', 'requiresAccessToken' => 'true', - 'output' => [{'type' => 'Patient', 'url' => 'http://www.example.com/patient-export-file'}], + 'output' => [{'type' => 'Patient', 'url' => @file_location}], 'error' => 'error' } @@ -36,7 +39,10 @@ def setup @status_request_headers = { accept: 'application/json', authorization: "Bearer #{@instance.token}" } - @content_location = 'http://www.example.com/status' + @file_request_headers = { accept: 'application/fhir+ndjson', + authorization: "Bearer #{@instance.token}" } + + @patient_export = load_fixture_with_extension('bulk_data_patient.ndjson') client = FHIR::Client.new(@instance.url) client.use_stu3 @@ -99,6 +105,19 @@ def include_status_check_stub(status_code: 200, ) end + def include_file_request_stub(response_headers: { content_type: 'application/fhir+ndjson' }) + headers = @export_request_headers.clone + headers[:prefer] = 'return=representation' + + stub_request(:get, @file_location) + .with(headers: @file_request_headers) + .to_return( + status: 200, + headers: response_headers, + body: @patient_export + ) + end + def test_all_pass WebMock.reset! @@ -107,6 +126,7 @@ def test_all_pass include_export_stub_invalid_accept include_export_stub_invalid_prefer include_status_check_stub + include_file_request_stub sequence_result = @sequence.start failures = sequence_result.failures @@ -181,4 +201,12 @@ def test_status_check_fail_invalid_response_header @sequence.assert_export_status(@content_location) end end -end + + def test_output_file_fail_no_url + output = [{'type' => 'Patient', 'count' => 1}] + + assert_raises Inferno::AssertionException do + @sequence.assert_output_files(output) + end + end +end \ No newline at end of file diff --git a/test/test_helper.rb b/test/test_helper.rb index 464578ea9..71ae739d2 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -25,6 +25,11 @@ def load_fixture(file) File.read(File.join(root, 'fixtures', "#{file}.json")) end +def load_fixture_with_extension(file_name) + root = File.dirname(File.absolute_path(__FILE__)) + File.read(File.join(root, 'fixtures', file_name)) +end + def save_fixture(_file_name, content) root = File.dirname(File.absolute_path(__FILE__)) File.write(File.join(root, 'fixtures', file.to_s), content) From 595a45f3f2ddbee3eb0df6176f641d136297aae3 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Thu, 12 Sep 2019 16:36:28 -0400 Subject: [PATCH 005/144] rubocop! --- .../bulk_data/bulk_data_patient_export_sequence.rb | 5 ++--- .../sequence/bulk_data/patient_export_sequence_test.rb | 10 +++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index 4252c39bc..9bf1ed3b7 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -67,9 +67,8 @@ def assert_file_request(output) reply = @client.get(url, @client.fhir_headers(headers)) assert_response_content_type(reply, 'application/fhir+ndjson') lines = reply.body.split("\n") - lines.each do |line| + lines.each do |line| resource = FHIR.from_contents(line) - binding.pry assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" errors = resource.validate assert errors.empty?, errors.join("
\n") @@ -193,7 +192,7 @@ def export_status_check(url, timeout) reply end - + def get_wait_time(wait_time, reply) retry_after = reply.response[:headers]['retry-after'] retry_after_int = (retry_after.presence || 0).to_i diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index 464b8e040..9203b594d 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -11,7 +11,7 @@ def setup 'transactionTime' => '2019-08-01', 'request' => '[base]/Patient/$export?_type=Patient,Observation', 'requiresAccessToken' => 'true', - 'output' => [{'type' => 'Patient', 'url' => @file_location}], + 'output' => [{ 'type' => 'Patient', 'url' => @file_location }], 'error' => 'error' } @@ -40,7 +40,7 @@ def setup authorization: "Bearer #{@instance.token}" } @file_request_headers = { accept: 'application/fhir+ndjson', - authorization: "Bearer #{@instance.token}" } + authorization: "Bearer #{@instance.token}" } @patient_export = load_fixture_with_extension('bulk_data_patient.ndjson') @@ -203,10 +203,10 @@ def test_status_check_fail_invalid_response_header end def test_output_file_fail_no_url - output = [{'type' => 'Patient', 'count' => 1}] + output = [{ 'type' => 'Patient', 'count' => 1 }] assert_raises Inferno::AssertionException do @sequence.assert_output_files(output) end - end -end \ No newline at end of file + end +end From 518f919355769b887cacdb3826b0b35db363d7f5 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Fri, 13 Sep 2019 21:07:07 -0400 Subject: [PATCH 006/144] add unit test --- .../bulk_data_patient_export_sequence.rb | 3 ++- .../bulk_data/patient_export_sequence_test.rb | 22 +++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index 9bf1ed3b7..f8086375b 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -71,7 +71,8 @@ def assert_file_request(output) resource = FHIR.from_contents(line) assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" errors = resource.validate - assert errors.empty?, errors.join("
\n") + message = errors.join("
\n") unless errors.empty? + assert errors.empty?, message end # assert each line is a valid FHIR resource end diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index 9203b594d..44bb76bf2 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -106,9 +106,16 @@ def include_status_check_stub(status_code: 200, end def include_file_request_stub(response_headers: { content_type: 'application/fhir+ndjson' }) - headers = @export_request_headers.clone - headers[:prefer] = 'return=representation' + stub_request(:get, @file_location) + .with(headers: @file_request_headers) + .to_return( + status: 200, + headers: response_headers, + body: @patient_export + ) + end + def include_file_request_stub_unmatched_type(response_headers: { content_type: 'application/fhir+ndjson' }) stub_request(:get, @file_location) .with(headers: @file_request_headers) .to_return( @@ -209,4 +216,15 @@ def test_output_file_fail_no_url @sequence.assert_output_files(output) end end + + def test_file_request_fail_unmatched_type + unmatched_type_output = @complete_status['output'].clone + unmatched_type_output.first['type'] = 'Condition' + + include_file_request_stub + + assert_raises Inferno::AssertionException do + @sequence.assert_file_request(unmatched_type_output) + end + end end From 5db25afc24c90bc039a62e510e05a7330f4b6d1b Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Sun, 15 Sep 2019 16:58:12 -0400 Subject: [PATCH 007/144] connectathon end --- ...bulk_data_capability_statement_sequence.rb | 6 +- .../bulk_data_export_sequence_base.rb | 287 ++++++++++++++++++ .../bulk_data_patient_export_sequence.rb | 107 +++++-- ...bulk_data_system_export_sequence copy 2.rb | 287 ++++++++++++++++++ lib/app/modules/bulk_data_module.yml | 1 - .../core/capability_statement_sequence.rb | 6 +- lib/app/sequence_base.rb | 2 +- .../bulk_data/patient_export_sequence_test.rb | 23 +- 8 files changed, 695 insertions(+), 24 deletions(-) create mode 100644 lib/app/modules/bulk_data/bulk_data_export_sequence_base.rb create mode 100644 lib/app/modules/bulk_data/bulk_data_system_export_sequence copy 2.rb diff --git a/lib/app/modules/bulk_data/bulk_data_capability_statement_sequence.rb b/lib/app/modules/bulk_data/bulk_data_capability_statement_sequence.rb index 8b4b36202..f61e21aaa 100644 --- a/lib/app/modules/bulk_data/bulk_data_capability_statement_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_capability_statement_sequence.rb @@ -88,7 +88,7 @@ def assert_operation(op_name); end ) end - assert @conformance.class == versioned_conformance_class, 'Expected valid Conformance resource' + assert @conformance.class.name.demodulize == versioned_conformance_class.name.demodulize, 'Expected valid Conformance resource' formats = ['json', 'applcation/json', 'application/json+fhir', 'application/fhir+json'] assert formats.any? { |format| @conformance.format.include? format }, 'Conformance does not state support for json.' end @@ -106,7 +106,7 @@ def assert_operation(op_name); end optional end - assert @conformance.instantiates&.include?('http://www.hl7.org/fhir/bulk-data/CapabilityStatement-bulk-data.html'), 'CapabilityStatement did not instantiate from "http://www.hl7.org/fhir/bulk-data/CapabilityStatement-bulk-data.html"' + assert @conformance.instantiates&.include?('http://hl7.org/fhir/uv/bulkdata/CapabilityStatement/bulk-data'), 'CapabilityStatement did not instantiate from "http://www.hl7.org/fhir/bulk-data/CapabilityStatement-bulk-data.html"' end test 'FHIR server capability SHOULD have export operation' do @@ -136,7 +136,7 @@ def assert_operation(op_name); end assert_operation_supported(@instance.server_capabilities, 'export') end - test 'FHIR server capability SHOULD have export operation' do + test 'FHIR server capability SHOULD have patient-export operation' do metadata do id '07' link 'https://build.fhir.org/ig/HL7/bulk-data/operations/index.html' diff --git a/lib/app/modules/bulk_data/bulk_data_export_sequence_base.rb b/lib/app/modules/bulk_data/bulk_data_export_sequence_base.rb new file mode 100644 index 000000000..d59f06dc6 --- /dev/null +++ b/lib/app/modules/bulk_data/bulk_data_export_sequence_base.rb @@ -0,0 +1,287 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class BulkDataExportSequenceBase < SequenceBase + group 'Bulk Data Patient Export' + + title 'Patient Tests' + + description 'Verify that Patient resources on the Bulk Data server follow the Bulk Data Access Implementation Guide' + + test_id_prefix 'Patient' + + requires :token + conformance_supports :Patient + + def assert_export_kick_off(klass, search_params: nil) + reply = export_kick_off(klass, search_params: search_params) + + if search_params.present? && reply.code > 400 + response_body = JSON.parse(reply.body) + message = '' + response_body['issue'].each do |issue| + message += issue['diagnostics'].presence || '' + end + + skip message + end + + @search_params_applied = true + + assert_response_accepted(reply) + @content_location = reply.response[:headers]['content-location'] + + assert @content_location.present?, 'Export response header did not include "Content-Location"' + end + + def assert_export_kick_off_fail_invalid_accept(klass) + reply = export_kick_off(klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) + assert_response_bad(reply) + end + + def assert_export_kick_off_fail_invalid_prefer(klass) + reply = export_kick_off(klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) + assert_response_bad(reply) + end + + def assert_export_status(url, timeout: 180) + reply = export_status_check(url, timeout) + + skip "Server took more than #{timeout} seconds to process the request." if reply.code == 202 + + assert reply.code == 200, "Bad response code: expected 200, 202, but found #{reply.code}." + + assert_response_content_type(reply, 'application/json') + + response_body = JSON.parse(reply.body) + + assert_status_reponse_required_field(response_body) + + @output = response_body['output'] + + assert_output_files(@output) + end + + def assert_output_files(output) + search_type = @search_params['_type'].split(',').map(&:strip) + output.each do |file| + ['type', 'url'].each do |key| + assert file.key?(key), "Output file did not contain \"#{key}\" as required" + + next unless @search_params_applied + + search_type.each do |type| + assert file['type'] == type, "Output file had type #{file[type]} not specified in export parameter #{@search_params['_type']}" + end + end + end + end + + def assert_file_request(output) + headers = { accept: 'application/fhir+ndjson' } + output.each do |file| + url = file['url'] + type = file['type'] + reply = @client.get(url, @client.fhir_headers(headers)) + assert_response_content_type(reply, 'application/fhir+ndjson') + lines = reply.body.split("\n") + lines.each do |line| + resource = FHIR.from_contents(line) + assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" + errors = resource.validate + message = errors.join("
\n") unless errors.empty? + assert errors.empty?, message + end + end + end + + def assert_delete_request(url) + reply = @client.delete(url, {}) + assert_response_accepted(reply) + end + + def assert_cancel_request(_klass) + @content_location = nil + assert_export_kick_off('Patient') + assert_delete_request(@content_location) + end + + details %( + + The #{title} Sequence tests `#{title}` operations. The operation steps will be checked for consistency against the + [Bulk Data Access Implementation Guide](https://build.fhir.org/ig/HL7/bulk-data/) + + ) + + @resources_found = false + + test 'Server rejects $export request without authorization' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' + desc %( + ) + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + reply = export_kick_off('Patient') + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' + desc %( + ) + end + + @search_params = { '_type' => 'Patient' } + assert_export_kick_off('Patient', search_params: @search_params) + end + + test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' + desc %( + ) + end + + skip('Skip testing $export without parameters') + + assert_export_kick_off('Patient') if @search_type_applied + end + + test 'Server shall reject for $export operation with invalid Accept header' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' + desc %( + ) + end + + assert_export_kick_off_fail_invalid_accept('Patient') + end + + test 'Server shall reject for $export operation with invalid Prefer header' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' + desc %( + ) + end + + assert_export_kick_off_fail_invalid_prefer('Patient') + end + + test 'Server shall return "202 Accepted" or "200 OK"' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' + desc %( + ) + end + + assert_export_status(@content_location) + end + + test 'Server shall return file in ndjson format' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + desc %( + ) + end + + assert_file_request(@output) + end + + test 'Server should return "202 Accepted" for delete export content' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' + desc %( + ) + optional + end + + assert_delete_request(@content_location) + end + + test 'Server shall return "202 Accepted" for cancel export request' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' + desc %( + ) + end + + assert_cancel_request('Patient') + end + + private + + def export_kick_off(klass, + search_params: nil, + id: nil, + headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) + url = '' + url += "/#{klass}" if klass.present? + url += "/#{id}" if id.present? + url += '/$export' + + uri = Addressable::URI.parse(url) + uri.query_values = search_params if search_params.present? + full_url = uri.to_s + + @client.get(full_url, @client.fhir_headers(headers)) + end + + def export_status_check(url, timeout) + wait_time = 1 + reply = nil + headers = { accept: 'application/json' } + start = Time.now + + loop do + reply = @client.get(url, @client.fhir_headers(headers)) + + wait_time = get_wait_time(wait_time, reply) + seconds_used = Time.now - start + wait_time + + break if reply.code != 202 || seconds_used > timeout + + sleep wait_time + end + + reply + end + + def get_wait_time(wait_time, reply) + retry_after = reply.response[:headers]['retry-after'] + retry_after_int = (retry_after.presence || 0).to_i + + if retry_after_int.positive? + retry_after_int + else + wait_time * 2 + end + end + + def delete_request(url) + @client.delete(url) + end + + def assert_status_reponse_required_field(response_body) + ['transactionTime', 'request', 'requiresAccessToken', 'output', 'error'].each do |key| + assert response_body.key?(key), "Complete Status response did not contain \"#{key}\" as required" + end + end + end + end +end diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index f8086375b..ca83f9b8d 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true +#require_relative 'bulk_data_export_sequence_base' module Inferno module Sequence @@ -14,8 +15,20 @@ class BulkDataPatientExportSequence < SequenceBase requires :token conformance_supports :Patient - def assert_export_kick_off(klass) - reply = export_kick_off(klass) + def assert_export_kick_off(klass, search_params: nil) + reply = export_kick_off(klass, search_params: search_params) + + if search_params.present? && reply.code > 400 + response_body = JSON.parse(reply.body) + message = '' + response_body['issue'].each do |issue| + message += issue['diagnostics'].presence || '' + end + + skip message + end + + @search_params_applied = true assert_response_accepted(reply) @content_location = reply.response[:headers]['content-location'] @@ -48,13 +61,20 @@ def assert_export_status(url, timeout: 180) @output = response_body['output'] - assert_output_files(@output) + assert_output_files(@output, @search_params_applied) end - def assert_output_files(output) + def assert_output_files(output, check_parameters) + search_type = @search_params['_type'].split(',').map(&:strip) if @search_params.present? output.each do |file| ['type', 'url'].each do |key| assert file.key?(key), "Output file did not contain \"#{key}\" as required" + + next unless check_parameters && search_type.present? + + search_type.each do |type| + assert file['type'] == type, "Output file had type #{file[type]} not specified in export parameter #{@search_params['_type']}" + end end end end @@ -74,10 +94,20 @@ def assert_file_request(output) message = errors.join("
\n") unless errors.empty? assert errors.empty?, message end - # assert each line is a valid FHIR resource end end + def assert_delete_request(url) + reply = @client.delete(url, {}) + assert_response_accepted(reply) + end + + def assert_cancel_request(_klass) + @content_location = nil + assert_export_kick_off('Patient') + assert_delete_request(@content_location) + end + details %( The #{title} Sequence tests `#{title}` operations. The operation steps will be checked for consistency against the @@ -93,7 +123,6 @@ def assert_file_request(output) link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' desc %( ) - versions :stu3 end @client.set_no_auth @@ -104,25 +133,37 @@ def assert_file_request(output) assert_response_unauthorized reply end - test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do + test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do metadata do id '02' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' + desc %( + ) + end + + @search_params = { '_type' => 'Patient' } + assert_export_kick_off('Patient', search_params: @search_params) + end + + test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do + metadata do + id '03' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' desc %( ) - versions :stu3 end + skip 'Skip testing $export without parameters' if @search_type_applied + assert_export_kick_off('Patient') end test 'Server shall reject for $export operation with invalid Accept header' do metadata do - id '03' + id '04' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' desc %( ) - versions :stu3 end assert_export_kick_off_fail_invalid_accept('Patient') @@ -130,11 +171,10 @@ def assert_file_request(output) test 'Server shall reject for $export operation with invalid Prefer header' do metadata do - id '04' + id '05' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' desc %( ) - versions :stu3 end assert_export_kick_off_fail_invalid_prefer('Patient') @@ -142,11 +182,10 @@ def assert_file_request(output) test 'Server shall return "202 Accepted" or "200 OK"' do metadata do - id '05' + id '06' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' desc %( ) - versions :stu3 end assert_export_status(@content_location) @@ -154,7 +193,7 @@ def assert_file_request(output) test 'Server shall return file in ndjson format' do metadata do - id '06' + id '07' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' desc %( ) @@ -163,15 +202,45 @@ def assert_file_request(output) assert_file_request(@output) end + test 'Server should return "202 Accepted" for delete export content' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' + desc %( + ) + optional + end + + assert_delete_request(@content_location) + end + + test 'Server shall return "202 Accepted" for cancel export request' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' + desc %( + ) + end + + assert_cancel_request('Patient') + end + private - def export_kick_off(klass, id: nil, headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) + def export_kick_off(klass, + search_params: nil, + id: nil, + headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) url = '' url += "/#{klass}" if klass.present? url += "/#{id}" if id.present? url += '/$export' - @client.get(url, @client.fhir_headers(headers)) + uri = Addressable::URI.parse(url) + uri.query_values = search_params if search_params.present? + full_url = uri.to_s + + @client.get(full_url, @client.fhir_headers(headers)) end def export_status_check(url, timeout) @@ -205,6 +274,10 @@ def get_wait_time(wait_time, reply) end end + def delete_request(url) + @client.delete(url) + end + def assert_status_reponse_required_field(response_body) ['transactionTime', 'request', 'requiresAccessToken', 'output', 'error'].each do |key| assert response_body.key?(key), "Complete Status response did not contain \"#{key}\" as required" diff --git a/lib/app/modules/bulk_data/bulk_data_system_export_sequence copy 2.rb b/lib/app/modules/bulk_data/bulk_data_system_export_sequence copy 2.rb new file mode 100644 index 000000000..04f07f32b --- /dev/null +++ b/lib/app/modules/bulk_data/bulk_data_system_export_sequence copy 2.rb @@ -0,0 +1,287 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class BulkDataPatientExportSequence < SequenceBase + group 'Bulk Data Patient Export' + + title 'Patient Tests' + + description 'Verify that Patient resources on the Bulk Data server follow the Bulk Data Access Implementation Guide' + + test_id_prefix 'Patient' + + requires :token + conformance_supports :Patient + + def assert_export_kick_off(klass, search_params: nil) + reply = export_kick_off(klass, search_params: search_params) + + # if search_params.present? && reply.code > 400 + # response_body = JSON.parse(reply.body) + # message = '' + # response_body['issue'].each do |issue| + # message += issue['diagnostics'].presence || '' + # end + + # skip message + # end + + @search_params_applied = true + + assert_response_accepted(reply) + @content_location = reply.response[:headers]['content-location'] + + assert @content_location.present?, 'Export response header did not include "Content-Location"' + end + + def assert_export_kick_off_fail_invalid_accept(klass) + reply = export_kick_off(klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) + assert_response_bad(reply) + end + + def assert_export_kick_off_fail_invalid_prefer(klass) + reply = export_kick_off(klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) + assert_response_bad(reply) + end + + def assert_export_status(url, timeout: 180) + reply = export_status_check(url, timeout) + + skip "Server took more than #{timeout} seconds to process the request." if reply.code == 202 + + assert reply.code == 200, "Bad response code: expected 200, 202, but found #{reply.code}." + + assert_response_content_type(reply, 'application/json') + + response_body = JSON.parse(reply.body) + + assert_status_reponse_required_field(response_body) + + @output = response_body['output'] + + assert_output_files(@output) + end + + def assert_output_files(output) + search_type = @search_params['_type'].split(',').map(&:strip) + output.each do |file| + ['type', 'url'].each do |key| + assert file.key?(key), "Output file did not contain \"#{key}\" as required" + + next unless @search_type_applied + + search_type.each do |type| + assert file['type'] == type, "Output file had type #{file[type]} not specified in export parameter #{@search_params['_type']}" + end + end + end + end + + def assert_file_request(output) + headers = { accept: 'application/fhir+ndjson' } + output.each do |file| + url = file['url'] + type = file['type'] + reply = @client.get(url, @client.fhir_headers(headers)) + assert_response_content_type(reply, 'application/fhir+ndjson') + lines = reply.body.split("\n") + lines.each do |line| + resource = FHIR.from_contents(line) + assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" + errors = resource.validate + message = errors.join("
\n") unless errors.empty? + assert errors.empty?, message + end + end + end + + def assert_delete_request(url) + reply = @client.delete(url, {}) + assert_response_accepted(reply) + end + + def assert_cancel_request(_klass) + @content_location = nil + assert_export_kick_off('Patient') + assert_delete_request(@content_location) + end + + details %( + + The #{title} Sequence tests `#{title}` operations. The operation steps will be checked for consistency against the + [Bulk Data Access Implementation Guide](https://build.fhir.org/ig/HL7/bulk-data/) + + ) + + @resources_found = false + + test 'Server rejects $export request without authorization' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' + desc %( + ) + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + reply = export_kick_off('Patient') + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' + desc %( + ) + end + + @search_params = { '_type' => 'Patient' } + assert_export_kick_off('Patient', search_params: @search_params) + end + + test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' + desc %( + ) + end + + skip('Skip testing $export without parameters') + + assert_export_kick_off('Patient') if @search_type_applied + end + + test 'Server shall reject for $export operation with invalid Accept header' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' + desc %( + ) + end + + assert_export_kick_off_fail_invalid_accept('Patient') + end + + test 'Server shall reject for $export operation with invalid Prefer header' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' + desc %( + ) + end + + assert_export_kick_off_fail_invalid_prefer('Patient') + end + + test 'Server shall return "202 Accepted" or "200 OK"' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' + desc %( + ) + end + + assert_export_status(@content_location) + end + + test 'Server shall return file in ndjson format' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + desc %( + ) + end + + assert_file_request(@output) + end + + test 'Server should return "202 Accepted" for delete export content' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' + desc %( + ) + optional + end + + assert_delete_request(@content_location) + end + + test 'Server shall return "202 Accepted" for cancel export request' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' + desc %( + ) + end + + assert_cancel_request('Patient') + end + + private + + def export_kick_off(klass, + search_params: nil, + id: nil, + headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) + url = '' + url += "/#{klass}" if klass.present? + url += "/#{id}" if id.present? + url += '/$export' + + uri = Addressable::URI.parse(url) + uri.query_values = search_params if search_params.present? + full_url = uri.to_s + + @client.get(full_url, @client.fhir_headers(headers)) + end + + def export_status_check(url, timeout) + wait_time = 1 + reply = nil + headers = { accept: 'application/json' } + start = Time.now + + loop do + reply = @client.get(url, @client.fhir_headers(headers)) + + wait_time = get_wait_time(wait_time, reply) + seconds_used = Time.now - start + wait_time + + break if reply.code != 202 || seconds_used > timeout + + sleep wait_time + end + + reply + end + + def get_wait_time(wait_time, reply) + retry_after = reply.response[:headers]['retry-after'] + retry_after_int = (retry_after.presence || 0).to_i + + if retry_after_int.positive? + retry_after_int + else + wait_time * 2 + end + end + + def delete_request(url) + @client.delete(url) + end + + def assert_status_reponse_required_field(response_body) + ['transactionTime', 'request', 'requiresAccessToken', 'output', 'error'].each do |key| + assert response_body.key?(key), "Complete Status response did not contain \"#{key}\" as required" + end + end + end + end +end diff --git a/lib/app/modules/bulk_data_module.yml b/lib/app/modules/bulk_data_module.yml index 07803092a..e1e5d7dcc 100644 --- a/lib/app/modules/bulk_data_module.yml +++ b/lib/app/modules/bulk_data_module.yml @@ -1,7 +1,6 @@ name: bulk_data title: FHIR Bulk Data Access Implementation Guide STU1 description: Bulk Data Access Testing -fhir_version: stu3 default_test_set: developer test_sets: developer: diff --git a/lib/app/modules/core/capability_statement_sequence.rb b/lib/app/modules/core/capability_statement_sequence.rb index ba8a27d91..29fdc9698 100644 --- a/lib/app/modules/core/capability_statement_sequence.rb +++ b/lib/app/modules/core/capability_statement_sequence.rb @@ -120,7 +120,11 @@ class CapabilityStatementSequence < SequenceBase @conformance = @client.conformance_statement assert_response_ok @client.reply - assert @conformance.class == versioned_conformance_class, 'Expected valid Conformance resource.' + if @instance.fhir_version.blank? + assert @conformance.class.name.demodulize == versioned_conformance_class.name.demodulize, 'Expected valid Conformance resource.' + else + assert @conformance.class == versioned_conformance_class, 'Expected valid Conformance resource.' + end end end end diff --git a/lib/app/sequence_base.rb b/lib/app/sequence_base.rb index e972b12d6..a96b89ec6 100644 --- a/lib/app/sequence_base.rb +++ b/lib/app/sequence_base.rb @@ -393,7 +393,7 @@ def self.test(name, &block) test_index: test_index ) begin - fhir_version_included = @instance.fhir_version.present? && versions.include?(@instance.fhir_version&.to_sym) + fhir_version_included = !@instance.fhir_version.present? || versions.include?(@instance.fhir_version&.to_sym) skip_unless(fhir_version_included, 'This test does not run with this FHIR version') Inferno.logger.info "Starting Test: #{test_id} [#{name}]" instance_eval(&block) diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index 44bb76bf2..bef222eef 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -44,6 +44,8 @@ def setup @patient_export = load_fixture_with_extension('bulk_data_patient.ndjson') + @search_params = {'_type' => 'Patient'} + client = FHIR::Client.new(@instance.url) client.use_stu3 client.default_json @@ -71,6 +73,16 @@ def include_export_stub(status_code: 202, ) end + def include_export_stub_type_patient(status_code: 202, + response_headers: { content_location: @content_location }) + stub_request(:get, 'http://www.example.com/Patient/$export?_type=Patient') + .with(headers: @export_request_headers) + .to_return( + status: status_code, + headers: response_headers + ) + end + def include_export_stub_invalid_accept headers = @export_request_headers.clone headers[:accept] = 'application/fhir+xml' @@ -125,15 +137,24 @@ def include_file_request_stub_unmatched_type(response_headers: { content_type: ' ) end + def include_delete_request_stub + stub_request(:delete, @content_location) + .to_return( + status: 202 + ) + end + def test_all_pass WebMock.reset! include_export_stub_no_token + include_export_stub_type_patient include_export_stub include_export_stub_invalid_accept include_export_stub_invalid_prefer include_status_check_stub include_file_request_stub + include_delete_request_stub sequence_result = @sequence.start failures = sequence_result.failures @@ -213,7 +234,7 @@ def test_output_file_fail_no_url output = [{ 'type' => 'Patient', 'count' => 1 }] assert_raises Inferno::AssertionException do - @sequence.assert_output_files(output) + @sequence.assert_output_files(output, false) end end From 750e6475b929373dd8995a9af5bf11e01ff7a576 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Tue, 17 Sep 2019 09:29:23 -0400 Subject: [PATCH 008/144] Skip delete content test if server does not support --- lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index ca83f9b8d..82353b1c6 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -99,6 +99,7 @@ def assert_file_request(output) def assert_delete_request(url) reply = @client.delete(url, {}) + skip 'Server did not accept client request to delete export file after export completed' if reply.code > 400 assert_response_accepted(reply) end @@ -153,7 +154,7 @@ def assert_cancel_request(_klass) ) end - skip 'Skip testing $export without parameters' if @search_type_applied + skip 'Skip testing $export without parameters' if @search_params_applied assert_export_kick_off('Patient') end From b2f3076f61289c135042a6c48de3d8e3151bdd19 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Tue, 17 Sep 2019 10:07:27 -0400 Subject: [PATCH 009/144] ready for checkin --- .../bulk_data_export_sequence_base.rb | 287 ------------------ .../bulk_data_patient_export_sequence.rb | 1 - ...bulk_data_system_export_sequence copy 2.rb | 287 ------------------ .../bulk_data/patient_export_sequence_test.rb | 2 +- 4 files changed, 1 insertion(+), 576 deletions(-) delete mode 100644 lib/app/modules/bulk_data/bulk_data_export_sequence_base.rb delete mode 100644 lib/app/modules/bulk_data/bulk_data_system_export_sequence copy 2.rb diff --git a/lib/app/modules/bulk_data/bulk_data_export_sequence_base.rb b/lib/app/modules/bulk_data/bulk_data_export_sequence_base.rb deleted file mode 100644 index d59f06dc6..000000000 --- a/lib/app/modules/bulk_data/bulk_data_export_sequence_base.rb +++ /dev/null @@ -1,287 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class BulkDataExportSequenceBase < SequenceBase - group 'Bulk Data Patient Export' - - title 'Patient Tests' - - description 'Verify that Patient resources on the Bulk Data server follow the Bulk Data Access Implementation Guide' - - test_id_prefix 'Patient' - - requires :token - conformance_supports :Patient - - def assert_export_kick_off(klass, search_params: nil) - reply = export_kick_off(klass, search_params: search_params) - - if search_params.present? && reply.code > 400 - response_body = JSON.parse(reply.body) - message = '' - response_body['issue'].each do |issue| - message += issue['diagnostics'].presence || '' - end - - skip message - end - - @search_params_applied = true - - assert_response_accepted(reply) - @content_location = reply.response[:headers]['content-location'] - - assert @content_location.present?, 'Export response header did not include "Content-Location"' - end - - def assert_export_kick_off_fail_invalid_accept(klass) - reply = export_kick_off(klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) - assert_response_bad(reply) - end - - def assert_export_kick_off_fail_invalid_prefer(klass) - reply = export_kick_off(klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) - assert_response_bad(reply) - end - - def assert_export_status(url, timeout: 180) - reply = export_status_check(url, timeout) - - skip "Server took more than #{timeout} seconds to process the request." if reply.code == 202 - - assert reply.code == 200, "Bad response code: expected 200, 202, but found #{reply.code}." - - assert_response_content_type(reply, 'application/json') - - response_body = JSON.parse(reply.body) - - assert_status_reponse_required_field(response_body) - - @output = response_body['output'] - - assert_output_files(@output) - end - - def assert_output_files(output) - search_type = @search_params['_type'].split(',').map(&:strip) - output.each do |file| - ['type', 'url'].each do |key| - assert file.key?(key), "Output file did not contain \"#{key}\" as required" - - next unless @search_params_applied - - search_type.each do |type| - assert file['type'] == type, "Output file had type #{file[type]} not specified in export parameter #{@search_params['_type']}" - end - end - end - end - - def assert_file_request(output) - headers = { accept: 'application/fhir+ndjson' } - output.each do |file| - url = file['url'] - type = file['type'] - reply = @client.get(url, @client.fhir_headers(headers)) - assert_response_content_type(reply, 'application/fhir+ndjson') - lines = reply.body.split("\n") - lines.each do |line| - resource = FHIR.from_contents(line) - assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" - errors = resource.validate - message = errors.join("
\n") unless errors.empty? - assert errors.empty?, message - end - end - end - - def assert_delete_request(url) - reply = @client.delete(url, {}) - assert_response_accepted(reply) - end - - def assert_cancel_request(_klass) - @content_location = nil - assert_export_kick_off('Patient') - assert_delete_request(@content_location) - end - - details %( - - The #{title} Sequence tests `#{title}` operations. The operation steps will be checked for consistency against the - [Bulk Data Access Implementation Guide](https://build.fhir.org/ig/HL7/bulk-data/) - - ) - - @resources_found = false - - test 'Server rejects $export request without authorization' do - metadata do - id '01' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' - desc %( - ) - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - reply = export_kick_off('Patient') - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' - desc %( - ) - end - - @search_params = { '_type' => 'Patient' } - assert_export_kick_off('Patient', search_params: @search_params) - end - - test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' - desc %( - ) - end - - skip('Skip testing $export without parameters') - - assert_export_kick_off('Patient') if @search_type_applied - end - - test 'Server shall reject for $export operation with invalid Accept header' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' - desc %( - ) - end - - assert_export_kick_off_fail_invalid_accept('Patient') - end - - test 'Server shall reject for $export operation with invalid Prefer header' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' - desc %( - ) - end - - assert_export_kick_off_fail_invalid_prefer('Patient') - end - - test 'Server shall return "202 Accepted" or "200 OK"' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' - desc %( - ) - end - - assert_export_status(@content_location) - end - - test 'Server shall return file in ndjson format' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' - desc %( - ) - end - - assert_file_request(@output) - end - - test 'Server should return "202 Accepted" for delete export content' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' - desc %( - ) - optional - end - - assert_delete_request(@content_location) - end - - test 'Server shall return "202 Accepted" for cancel export request' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' - desc %( - ) - end - - assert_cancel_request('Patient') - end - - private - - def export_kick_off(klass, - search_params: nil, - id: nil, - headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) - url = '' - url += "/#{klass}" if klass.present? - url += "/#{id}" if id.present? - url += '/$export' - - uri = Addressable::URI.parse(url) - uri.query_values = search_params if search_params.present? - full_url = uri.to_s - - @client.get(full_url, @client.fhir_headers(headers)) - end - - def export_status_check(url, timeout) - wait_time = 1 - reply = nil - headers = { accept: 'application/json' } - start = Time.now - - loop do - reply = @client.get(url, @client.fhir_headers(headers)) - - wait_time = get_wait_time(wait_time, reply) - seconds_used = Time.now - start + wait_time - - break if reply.code != 202 || seconds_used > timeout - - sleep wait_time - end - - reply - end - - def get_wait_time(wait_time, reply) - retry_after = reply.response[:headers]['retry-after'] - retry_after_int = (retry_after.presence || 0).to_i - - if retry_after_int.positive? - retry_after_int - else - wait_time * 2 - end - end - - def delete_request(url) - @client.delete(url) - end - - def assert_status_reponse_required_field(response_body) - ['transactionTime', 'request', 'requiresAccessToken', 'output', 'error'].each do |key| - assert response_body.key?(key), "Complete Status response did not contain \"#{key}\" as required" - end - end - end - end -end diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index 82353b1c6..b8c7035aa 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -1,5 +1,4 @@ # frozen_string_literal: true -#require_relative 'bulk_data_export_sequence_base' module Inferno module Sequence diff --git a/lib/app/modules/bulk_data/bulk_data_system_export_sequence copy 2.rb b/lib/app/modules/bulk_data/bulk_data_system_export_sequence copy 2.rb deleted file mode 100644 index 04f07f32b..000000000 --- a/lib/app/modules/bulk_data/bulk_data_system_export_sequence copy 2.rb +++ /dev/null @@ -1,287 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class BulkDataPatientExportSequence < SequenceBase - group 'Bulk Data Patient Export' - - title 'Patient Tests' - - description 'Verify that Patient resources on the Bulk Data server follow the Bulk Data Access Implementation Guide' - - test_id_prefix 'Patient' - - requires :token - conformance_supports :Patient - - def assert_export_kick_off(klass, search_params: nil) - reply = export_kick_off(klass, search_params: search_params) - - # if search_params.present? && reply.code > 400 - # response_body = JSON.parse(reply.body) - # message = '' - # response_body['issue'].each do |issue| - # message += issue['diagnostics'].presence || '' - # end - - # skip message - # end - - @search_params_applied = true - - assert_response_accepted(reply) - @content_location = reply.response[:headers]['content-location'] - - assert @content_location.present?, 'Export response header did not include "Content-Location"' - end - - def assert_export_kick_off_fail_invalid_accept(klass) - reply = export_kick_off(klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) - assert_response_bad(reply) - end - - def assert_export_kick_off_fail_invalid_prefer(klass) - reply = export_kick_off(klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) - assert_response_bad(reply) - end - - def assert_export_status(url, timeout: 180) - reply = export_status_check(url, timeout) - - skip "Server took more than #{timeout} seconds to process the request." if reply.code == 202 - - assert reply.code == 200, "Bad response code: expected 200, 202, but found #{reply.code}." - - assert_response_content_type(reply, 'application/json') - - response_body = JSON.parse(reply.body) - - assert_status_reponse_required_field(response_body) - - @output = response_body['output'] - - assert_output_files(@output) - end - - def assert_output_files(output) - search_type = @search_params['_type'].split(',').map(&:strip) - output.each do |file| - ['type', 'url'].each do |key| - assert file.key?(key), "Output file did not contain \"#{key}\" as required" - - next unless @search_type_applied - - search_type.each do |type| - assert file['type'] == type, "Output file had type #{file[type]} not specified in export parameter #{@search_params['_type']}" - end - end - end - end - - def assert_file_request(output) - headers = { accept: 'application/fhir+ndjson' } - output.each do |file| - url = file['url'] - type = file['type'] - reply = @client.get(url, @client.fhir_headers(headers)) - assert_response_content_type(reply, 'application/fhir+ndjson') - lines = reply.body.split("\n") - lines.each do |line| - resource = FHIR.from_contents(line) - assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" - errors = resource.validate - message = errors.join("
\n") unless errors.empty? - assert errors.empty?, message - end - end - end - - def assert_delete_request(url) - reply = @client.delete(url, {}) - assert_response_accepted(reply) - end - - def assert_cancel_request(_klass) - @content_location = nil - assert_export_kick_off('Patient') - assert_delete_request(@content_location) - end - - details %( - - The #{title} Sequence tests `#{title}` operations. The operation steps will be checked for consistency against the - [Bulk Data Access Implementation Guide](https://build.fhir.org/ig/HL7/bulk-data/) - - ) - - @resources_found = false - - test 'Server rejects $export request without authorization' do - metadata do - id '01' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' - desc %( - ) - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - reply = export_kick_off('Patient') - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' - desc %( - ) - end - - @search_params = { '_type' => 'Patient' } - assert_export_kick_off('Patient', search_params: @search_params) - end - - test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' - desc %( - ) - end - - skip('Skip testing $export without parameters') - - assert_export_kick_off('Patient') if @search_type_applied - end - - test 'Server shall reject for $export operation with invalid Accept header' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' - desc %( - ) - end - - assert_export_kick_off_fail_invalid_accept('Patient') - end - - test 'Server shall reject for $export operation with invalid Prefer header' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' - desc %( - ) - end - - assert_export_kick_off_fail_invalid_prefer('Patient') - end - - test 'Server shall return "202 Accepted" or "200 OK"' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' - desc %( - ) - end - - assert_export_status(@content_location) - end - - test 'Server shall return file in ndjson format' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' - desc %( - ) - end - - assert_file_request(@output) - end - - test 'Server should return "202 Accepted" for delete export content' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' - desc %( - ) - optional - end - - assert_delete_request(@content_location) - end - - test 'Server shall return "202 Accepted" for cancel export request' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' - desc %( - ) - end - - assert_cancel_request('Patient') - end - - private - - def export_kick_off(klass, - search_params: nil, - id: nil, - headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) - url = '' - url += "/#{klass}" if klass.present? - url += "/#{id}" if id.present? - url += '/$export' - - uri = Addressable::URI.parse(url) - uri.query_values = search_params if search_params.present? - full_url = uri.to_s - - @client.get(full_url, @client.fhir_headers(headers)) - end - - def export_status_check(url, timeout) - wait_time = 1 - reply = nil - headers = { accept: 'application/json' } - start = Time.now - - loop do - reply = @client.get(url, @client.fhir_headers(headers)) - - wait_time = get_wait_time(wait_time, reply) - seconds_used = Time.now - start + wait_time - - break if reply.code != 202 || seconds_used > timeout - - sleep wait_time - end - - reply - end - - def get_wait_time(wait_time, reply) - retry_after = reply.response[:headers]['retry-after'] - retry_after_int = (retry_after.presence || 0).to_i - - if retry_after_int.positive? - retry_after_int - else - wait_time * 2 - end - end - - def delete_request(url) - @client.delete(url) - end - - def assert_status_reponse_required_field(response_body) - ['transactionTime', 'request', 'requiresAccessToken', 'output', 'error'].each do |key| - assert response_body.key?(key), "Complete Status response did not contain \"#{key}\" as required" - end - end - end - end -end diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index bef222eef..b2dd20970 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -44,7 +44,7 @@ def setup @patient_export = load_fixture_with_extension('bulk_data_patient.ndjson') - @search_params = {'_type' => 'Patient'} + @search_params = { '_type' => 'Patient' } client = FHIR::Client.new(@instance.url) client.use_stu3 From ca360fa322480c014c54beddf76f71dab01f5ca8 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Tue, 17 Sep 2019 12:17:02 -0400 Subject: [PATCH 010/144] done! --- .../bulk_data/bulk_data_export_sequence.rb | 292 ++++++++++++++++++ .../bulk_data_patient_export_sequence.rb | 271 +--------------- test/fixtures/bulk_data_conformance.json | 2 +- .../bulk_data/patient_export_sequence_test.rb | 7 +- 4 files changed, 304 insertions(+), 268 deletions(-) create mode 100644 lib/app/modules/bulk_data/bulk_data_export_sequence.rb diff --git a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb new file mode 100644 index 000000000..0ae401d48 --- /dev/null +++ b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb @@ -0,0 +1,292 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class BulkDataExportSequence < SequenceBase + group 'Bulk Data Export' + + title 'Bulk Data Export Tests' + + description 'Verify that system level export on the Bulk Data server follow the Bulk Data Access Implementation Guide' + + test_id_prefix 'System' + + requires :token + # conformance_supports :Patient + + attr_writer :klass, :run_all_kick_off_tests + + # def klass(value) + # @klass = value + # end + + def assert_export_kick_off(search_params: nil) + reply = export_kick_off(@klass, search_params: search_params) + + if search_params.present? && reply.code > 400 + response_body = JSON.parse(reply.body) + message = '' + response_body['issue'].each do |issue| + message += issue['diagnostics'].presence || '' + end + + skip message + end + + @search_params_applied = true + + assert_response_accepted(reply) + @content_location = reply.response[:headers]['content-location'] + + assert @content_location.present?, 'Export response header did not include "Content-Location"' + end + + def assert_export_kick_off_fail_invalid_accept + reply = export_kick_off(@klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) + assert_response_bad(reply) + end + + def assert_export_kick_off_fail_invalid_prefer + reply = export_kick_off(@klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) + assert_response_bad(reply) + end + + def assert_export_status(url, timeout: 180) + reply = export_status_check(url, timeout) + + skip "Server took more than #{timeout} seconds to process the request." if reply.code == 202 + + assert reply.code == 200, "Bad response code: expected 200, 202, but found #{reply.code}." + + assert_response_content_type(reply, 'application/json') + + response_body = JSON.parse(reply.body) + + assert_status_reponse_required_field(response_body) + + @output = response_body['output'] + + assert_output_files(@output, @search_params_applied) + end + + def assert_output_files(output, check_parameters) + search_type = @search_params['_type'].split(',').map(&:strip) if @search_params.present? + output.each do |file| + ['type', 'url'].each do |key| + assert file.key?(key), "Output file did not contain \"#{key}\" as required" + + next unless check_parameters && search_type.present? + + search_type.each do |type| + assert file['type'] == type, "Output file had type #{file[type]} not specified in export parameter #{@search_params['_type']}" + end + end + end + end + + def assert_file_request(output) + headers = { accept: 'application/fhir+ndjson' } + output.each do |file| + url = file['url'] + type = file['type'] + reply = @client.get(url, @client.fhir_headers(headers)) + assert_response_content_type(reply, 'application/fhir+ndjson') + lines = reply.body.split("\n") + lines.each do |line| + resource = FHIR.from_contents(line) + assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" + errors = resource.validate + message = errors.join("
\n") unless errors.empty? + assert errors.empty?, message + end + end + end + + def assert_delete_request(url) + reply = @client.delete(url, {}) + skip 'Server did not accept client request to delete export file after export completed' if reply.code > 400 + assert_response_accepted(reply) + end + + def assert_cancel_request + @content_location = nil + assert_export_kick_off + assert_delete_request(@content_location) + end + + details %( + + The #{title} Sequence tests `#{title}` operations. The operation steps will be checked for consistency against the + [Bulk Data Access Implementation Guide](https://build.fhir.org/ig/HL7/bulk-data/) + + ) + + test 'Server rejects $export request without authorization' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' + desc %( + ) + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + reply = export_kick_off(@klass) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' + desc %( + ) + end + + @search_params = { '_type' => 'Patient' } + assert_export_kick_off(search_params: @search_params) + end + + test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' + desc %( + ) + end + + skip 'Skip testing $export without parameters' if @search_params_applied && !@run_all_kick_off_tests + + assert_export_kick_off + end + + test 'Server shall reject for $export operation with invalid Accept header' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' + desc %( + ) + end + + assert_export_kick_off_fail_invalid_accept + end + + test 'Server shall reject for $export operation with invalid Prefer header' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' + desc %( + ) + end + + assert_export_kick_off_fail_invalid_prefer + end + + test 'Server shall return "202 Accepted" or "200 OK"' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' + desc %( + ) + end + + assert_export_status(@content_location) + end + + test 'Server shall return file in ndjson format' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + desc %( + ) + end + + assert_file_request(@output) + end + + test 'Server should return "202 Accepted" for delete export content' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' + desc %( + ) + optional + end + + assert_delete_request(@content_location) + end + + test 'Server shall return "202 Accepted" for cancel export request' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' + desc %( + ) + end + + assert_cancel_request + end + + private + + def export_kick_off(klass, + search_params: nil, + id: nil, + headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) + url = '' + url += "/#{klass}" if klass.present? + url += "/#{id}" if id.present? + url += '/$export' + + uri = Addressable::URI.parse(url) + uri.query_values = search_params if search_params.present? + full_url = uri.to_s + + @client.get(full_url, @client.fhir_headers(headers)) + end + + def export_status_check(url, timeout) + wait_time = 1 + reply = nil + headers = { accept: 'application/json' } + start = Time.now + + loop do + reply = @client.get(url, @client.fhir_headers(headers)) + + wait_time = get_wait_time(wait_time, reply) + seconds_used = Time.now - start + wait_time + + break if reply.code != 202 || seconds_used > timeout + + sleep wait_time + end + + reply + end + + def get_wait_time(wait_time, reply) + retry_after = reply.response[:headers]['retry-after'] + retry_after_int = (retry_after.presence || 0).to_i + + if retry_after_int.positive? + retry_after_int + else + wait_time * 2 + end + end + + def delete_request(url) + @client.delete(url) + end + + def assert_status_reponse_required_field(response_body) + ['transactionTime', 'request', 'requiresAccessToken', 'output', 'error'].each do |key| + assert response_body.key?(key), "Complete Status response did not contain \"#{key}\" as required" + end + end + end + end +end diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index b8c7035aa..f57280ab6 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -1,112 +1,22 @@ # frozen_string_literal: true +require_relative 'bulk_data_export_sequence' + module Inferno module Sequence - class BulkDataPatientExportSequence < SequenceBase + class BulkDataPatientExportSequence < BulkDataExportSequence group 'Bulk Data Patient Export' - title 'Patient Tests' + title 'Patient Compartment Export Tests' - description 'Verify that Patient resources on the Bulk Data server follow the Bulk Data Access Implementation Guide' + description 'Verify that patient compartment export on the Bulk Data server follow the Bulk Data Access Implementation Guide' test_id_prefix 'Patient' requires :token conformance_supports :Patient - def assert_export_kick_off(klass, search_params: nil) - reply = export_kick_off(klass, search_params: search_params) - - if search_params.present? && reply.code > 400 - response_body = JSON.parse(reply.body) - message = '' - response_body['issue'].each do |issue| - message += issue['diagnostics'].presence || '' - end - - skip message - end - - @search_params_applied = true - - assert_response_accepted(reply) - @content_location = reply.response[:headers]['content-location'] - - assert @content_location.present?, 'Export response header did not include "Content-Location"' - end - - def assert_export_kick_off_fail_invalid_accept(klass) - reply = export_kick_off(klass, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) - assert_response_bad(reply) - end - - def assert_export_kick_off_fail_invalid_prefer(klass) - reply = export_kick_off(klass, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) - assert_response_bad(reply) - end - - def assert_export_status(url, timeout: 180) - reply = export_status_check(url, timeout) - - skip "Server took more than #{timeout} seconds to process the request." if reply.code == 202 - - assert reply.code == 200, "Bad response code: expected 200, 202, but found #{reply.code}." - - assert_response_content_type(reply, 'application/json') - - response_body = JSON.parse(reply.body) - - assert_status_reponse_required_field(response_body) - - @output = response_body['output'] - - assert_output_files(@output, @search_params_applied) - end - - def assert_output_files(output, check_parameters) - search_type = @search_params['_type'].split(',').map(&:strip) if @search_params.present? - output.each do |file| - ['type', 'url'].each do |key| - assert file.key?(key), "Output file did not contain \"#{key}\" as required" - - next unless check_parameters && search_type.present? - - search_type.each do |type| - assert file['type'] == type, "Output file had type #{file[type]} not specified in export parameter #{@search_params['_type']}" - end - end - end - end - - def assert_file_request(output) - headers = { accept: 'application/fhir+ndjson' } - output.each do |file| - url = file['url'] - type = file['type'] - reply = @client.get(url, @client.fhir_headers(headers)) - assert_response_content_type(reply, 'application/fhir+ndjson') - lines = reply.body.split("\n") - lines.each do |line| - resource = FHIR.from_contents(line) - assert resource.class.name.demodulize == type, "Resource in output file did not have type of \"#{type}\"" - errors = resource.validate - message = errors.join("
\n") unless errors.empty? - assert errors.empty?, message - end - end - end - - def assert_delete_request(url) - reply = @client.delete(url, {}) - skip 'Server did not accept client request to delete export file after export completed' if reply.code > 400 - assert_response_accepted(reply) - end - - def assert_cancel_request(_klass) - @content_location = nil - assert_export_kick_off('Patient') - assert_delete_request(@content_location) - end + @klass = :Patient details %( @@ -114,175 +24,6 @@ def assert_cancel_request(_klass) [Bulk Data Access Implementation Guide](https://build.fhir.org/ig/HL7/bulk-data/) ) - - @resources_found = false - - test 'Server rejects $export request without authorization' do - metadata do - id '01' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' - desc %( - ) - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - reply = export_kick_off('Patient') - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' - desc %( - ) - end - - @search_params = { '_type' => 'Patient' } - assert_export_kick_off('Patient', search_params: @search_params) - end - - test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' - desc %( - ) - end - - skip 'Skip testing $export without parameters' if @search_params_applied - - assert_export_kick_off('Patient') - end - - test 'Server shall reject for $export operation with invalid Accept header' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' - desc %( - ) - end - - assert_export_kick_off_fail_invalid_accept('Patient') - end - - test 'Server shall reject for $export operation with invalid Prefer header' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' - desc %( - ) - end - - assert_export_kick_off_fail_invalid_prefer('Patient') - end - - test 'Server shall return "202 Accepted" or "200 OK"' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' - desc %( - ) - end - - assert_export_status(@content_location) - end - - test 'Server shall return file in ndjson format' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' - desc %( - ) - end - - assert_file_request(@output) - end - - test 'Server should return "202 Accepted" for delete export content' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' - desc %( - ) - optional - end - - assert_delete_request(@content_location) - end - - test 'Server shall return "202 Accepted" for cancel export request' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' - desc %( - ) - end - - assert_cancel_request('Patient') - end - - private - - def export_kick_off(klass, - search_params: nil, - id: nil, - headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) - url = '' - url += "/#{klass}" if klass.present? - url += "/#{id}" if id.present? - url += '/$export' - - uri = Addressable::URI.parse(url) - uri.query_values = search_params if search_params.present? - full_url = uri.to_s - - @client.get(full_url, @client.fhir_headers(headers)) - end - - def export_status_check(url, timeout) - wait_time = 1 - reply = nil - headers = { accept: 'application/json' } - start = Time.now - - loop do - reply = @client.get(url, @client.fhir_headers(headers)) - - wait_time = get_wait_time(wait_time, reply) - seconds_used = Time.now - start + wait_time - - break if reply.code != 202 || seconds_used > timeout - - sleep wait_time - end - - reply - end - - def get_wait_time(wait_time, reply) - retry_after = reply.response[:headers]['retry-after'] - retry_after_int = (retry_after.presence || 0).to_i - - if retry_after_int.positive? - retry_after_int - else - wait_time * 2 - end - end - - def delete_request(url) - @client.delete(url) - end - - def assert_status_reponse_required_field(response_body) - ['transactionTime', 'request', 'requiresAccessToken', 'output', 'error'].each do |key| - assert response_body.key?(key), "Complete Status response did not contain \"#{key}\" as required" - end - end end end end diff --git a/test/fixtures/bulk_data_conformance.json b/test/fixtures/bulk_data_conformance.json index e754424e5..61aa44700 100644 --- a/test/fixtures/bulk_data_conformance.json +++ b/test/fixtures/bulk_data_conformance.json @@ -12,7 +12,7 @@ "description": "SMART Sample Bulk FHIR Server" }, "instantiates": [ - "http://www.hl7.org/fhir/bulk-data/CapabilityStatement-bulk-data.html" + "http://hl7.org/fhir/uv/bulkdata/CapabilityStatement/bulk-data" ], "fhirVersion": "3.0.1", "acceptUnknown": "extensions", diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index b2dd20970..993395b76 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -50,6 +50,8 @@ def setup client.use_stu3 client.default_json @sequence = Inferno::Sequence::BulkDataPatientExportSequence.new(@instance, client, true) + @sequence.run_all_kick_off_tests = true + @sequence.klass = :Patient end def include_export_stub_no_token @@ -158,6 +160,7 @@ def test_all_pass sequence_result = @sequence.start failures = sequence_result.failures + assert failures.empty?, "All tests should pass. First error: #{failures&.first&.message}" assert !sequence_result.skip?, 'No tests should be skipped.' assert sequence_result.pass?, 'The sequence should be marked as pass.' @@ -169,7 +172,7 @@ def test_export_fail_wrong_status include_export_stub(status_code: 200) assert_raises Inferno::AssertionException do - @sequence.assert_export_kick_off('Patient') + @sequence.assert_export_kick_off end end @@ -179,7 +182,7 @@ def test_export_fail_no_content_location include_export_stub(response_headers: {}) assert_raises Inferno::AssertionException do - @sequence.assert_export_kick_off('Patient') + @sequence.assert_export_kick_off end end From 7ffb73abecac1c0a8a485efe19646627cd238cd3 Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Fri, 20 Sep 2019 14:47:21 -0400 Subject: [PATCH 011/144] Refactor Generator. --- config.yml | 3 +- generator/generator_base.rb | 82 + generator/uscore/metadata_extractor.rb | 251 ++ .../uscore}/templates/module.yml.erb | 10 +- .../uscore}/templates/sequence.rb.erb | 7 +- generator/uscore/uscore_generator.rb | 476 +++ generators/uscore-r4/generator.rb | 479 --- generators/uscore-r4/metadata_extractor.rb | 234 -- lib/app/modules/onc_program_r4_module.yml | 68 +- lib/app/modules/us_core_module.yml | 49 - .../pediatric_bmi_for_age_sequence.rb | 334 +++ .../pediatric_weight_for_height_sequence.rb | 334 +++ .../us_core_allergyintolerance_sequence.rb | 214 ++ .../us_core_careplan_sequence.rb | 289 ++ .../us_core_careteam_sequence.rb | 188 ++ .../us_core_condition_sequence.rb | 306 ++ .../uscore_v3.0.0/us_core_device_sequence.rb | 215 ++ .../us_core_diagnosticreport_lab_sequence.rb | 383 +++ .../us_core_diagnosticreport_note_sequence.rb | 383 +++ .../us_core_documentreference_sequence.rb | 384 +++ .../us_core_encounter_sequence.rb | 368 +++ .../uscore_v3.0.0/us_core_goal_sequence.rb | 253 ++ .../us_core_immunization_sequence.rb | 254 ++ .../us_core_location_sequence.rb | 296 ++ .../us_core_medication_sequence.rb | 125 + .../us_core_medicationrequest_sequence.rb | 244 ++ .../us_core_medicationstatement_sequence.rb | 255 ++ .../us_core_observation_lab_sequence.rb | 324 +++ .../us_core_organization_sequence.rb | 221 ++ .../uscore_v3.0.0/us_core_patient_sequence.rb | 376 +++ .../us_core_practitioner_sequence.rb | 223 ++ .../us_core_practitionerrole_sequence.rb | 218 ++ .../us_core_procedure_sequence.rb | 287 ++ .../us_core_smokingstatus_sequence.rb | 311 ++ lib/app/modules/uscore_v3.0.0_module.yml | 49 + .../pediatric_bmi_for_age_sequence.rb | 319 ++ .../pediatric_weight_for_height_sequence.rb | 319 ++ .../us_core_allergyintolerance_sequence.rb | 214 ++ .../us_core_careplan_sequence.rb | 289 ++ .../us_core_careteam_sequence.rb | 188 ++ .../us_core_condition_sequence.rb | 306 ++ .../us_core_diagnosticreport_lab_sequence.rb | 405 +++ .../us_core_diagnosticreport_note_sequence.rb | 404 +++ .../us_core_documentreference_sequence.rb | 376 +++ .../us_core_encounter_sequence.rb | 368 +++ .../uscore_v3.0.1/us_core_goal_sequence.rb | 252 ++ .../us_core_immunization_sequence.rb | 254 ++ .../us_core_implantable_device_sequence.rb | 221 ++ .../us_core_location_sequence.rb | 296 ++ .../us_core_medication_sequence.rb | 125 + .../us_core_medicationrequest_sequence.rb | 284 ++ .../us_core_observation_lab_sequence.rb | 309 ++ .../us_core_organization_sequence.rb | 224 ++ .../uscore_v3.0.1/us_core_patient_sequence.rb | 378 +++ .../us_core_practitioner_sequence.rb | 222 ++ .../us_core_practitionerrole_sequence.rb | 218 ++ .../us_core_procedure_sequence.rb | 271 ++ .../us_core_provenance_sequence.rb | 134 + .../us_core_pulse_oximetry_sequence.rb | 446 +++ .../us_core_smokingstatus_sequence.rb | 295 ++ lib/app/modules/uscore_v3.0.1_module.yml | 50 + lib/tasks/tasks.rake | 20 +- .../CapabilityStatement-us-core-server.json | 0 ...mentationGuide-hl7.fhir.us.core-3.0.0.json | 1 + ...re-allergyintolerance-clinical-status.json | 0 ...er-us-core-allergyintolerance-patient.json | 0 ...chParameter-us-core-careplan-category.json | 0 ...SearchParameter-us-core-careplan-date.json | 0 ...rchParameter-us-core-careplan-patient.json | 0 ...archParameter-us-core-careplan-status.json | 0 ...rchParameter-us-core-careteam-patient.json | 0 ...archParameter-us-core-careteam-status.json | 0 ...hParameter-us-core-condition-category.json | 0 ...ter-us-core-condition-clinical-status.json | 0 ...earchParameter-us-core-condition-code.json | 0 ...arameter-us-core-condition-onset-date.json | 0 ...chParameter-us-core-condition-patient.json | 0 ...earchParameter-us-core-device-patient.json | 0 .../SearchParameter-us-core-device-type.json | 0 ...ter-us-core-diagnosticreport-category.json | 0 ...rameter-us-core-diagnosticreport-code.json | 0 ...rameter-us-core-diagnosticreport-date.json | 0 ...eter-us-core-diagnosticreport-patient.json | 0 ...meter-us-core-diagnosticreport-status.json | 0 ...er-us-core-documentreference-category.json | 0 ...ameter-us-core-documentreference-date.json | 0 ...arameter-us-core-documentreference-id.json | 0 ...ter-us-core-documentreference-patient.json | 0 ...eter-us-core-documentreference-period.json | 0 ...eter-us-core-documentreference-status.json | 0 ...ameter-us-core-documentreference-type.json | 0 ...archParameter-us-core-encounter-class.json | 0 ...earchParameter-us-core-encounter-date.json | 0 .../SearchParameter-us-core-encounter-id.json | 0 ...arameter-us-core-encounter-identifier.json | 0 ...chParameter-us-core-encounter-patient.json | 0 ...rchParameter-us-core-encounter-status.json | 0 ...earchParameter-us-core-encounter-type.json | 0 ...rameter-us-core-goal-lifecycle-status.json | 0 .../SearchParameter-us-core-goal-patient.json | 0 ...rchParameter-us-core-goal-target-date.json | 0 ...chParameter-us-core-immunization-date.json | 0 ...arameter-us-core-immunization-patient.json | 0 ...Parameter-us-core-immunization-status.json | 0 ...rameter-us-core-location-address-city.json | 0 ...r-us-core-location-address-postalcode.json | 0 ...ameter-us-core-location-address-state.json | 0 ...rchParameter-us-core-location-address.json | 0 ...SearchParameter-us-core-location-name.json | 0 ...-us-core-medicationrequest-authoredon.json | 0 ...ter-us-core-medicationrequest-patient.json | 0 ...eter-us-core-medicationrequest-status.json | 0 ...us-core-medicationstatement-effective.json | 0 ...r-us-core-medicationstatement-patient.json | 0 ...er-us-core-medicationstatement-status.json | 0 ...arameter-us-core-observation-category.json | 0 ...rchParameter-us-core-observation-code.json | 0 ...rchParameter-us-core-observation-date.json | 0 ...Parameter-us-core-observation-patient.json | 0 ...hParameter-us-core-observation-status.json | 0 ...arameter-us-core-organization-address.json | 0 ...chParameter-us-core-organization-name.json | 0 ...chParameter-us-core-patient-birthdate.json | 0 ...earchParameter-us-core-patient-family.json | 0 ...earchParameter-us-core-patient-gender.json | 0 ...SearchParameter-us-core-patient-given.json | 0 .../SearchParameter-us-core-patient-id.json | 0 ...hParameter-us-core-patient-identifier.json | 0 .../SearchParameter-us-core-patient-name.json | 0 ...meter-us-core-practitioner-identifier.json | 0 ...chParameter-us-core-practitioner-name.json | 0 ...us-core-practitionerrole-practitioner.json | 0 ...er-us-core-practitionerrole-specialty.json | 0 ...earchParameter-us-core-procedure-code.json | 0 ...earchParameter-us-core-procedure-date.json | 0 ...chParameter-us-core-procedure-patient.json | 0 ...rchParameter-us-core-procedure-status.json | 0 ...ctureDefinition-pediatric-bmi-for-age.json | 0 ...efinition-pediatric-weight-for-height.json | 0 ...Definition-us-core-allergyintolerance.json | 0 .../StructureDefinition-us-core-careplan.json | 0 .../StructureDefinition-us-core-careteam.json | 0 ...StructureDefinition-us-core-condition.json | 0 .../StructureDefinition-us-core-device.json | 0 ...finition-us-core-diagnosticreport-lab.json | 0 ...inition-us-core-diagnosticreport-note.json | 0 ...eDefinition-us-core-documentreference.json | 0 ...StructureDefinition-us-core-encounter.json | 0 .../StructureDefinition-us-core-goal.json | 0 ...uctureDefinition-us-core-immunization.json | 0 .../StructureDefinition-us-core-location.json | 0 ...tructureDefinition-us-core-medication.json | 0 ...eDefinition-us-core-medicationrequest.json | 0 ...efinition-us-core-medicationstatement.json | 0 ...ureDefinition-us-core-observation-lab.json | 0 ...uctureDefinition-us-core-organization.json | 0 .../StructureDefinition-us-core-patient.json | 0 ...uctureDefinition-us-core-practitioner.json | 0 ...reDefinition-us-core-practitionerrole.json | 0 ...StructureDefinition-us-core-procedure.json | 0 ...ctureDefinition-us-core-smokingstatus.json | 0 .../CapabilityStatement-us-core-client.json | 1 + .../CapabilityStatement-us-core-server.json | 1 + .../CodeSystem-careplan-category.json | 1 + .../uscore_v3.0.1/CodeSystem-cdcrec.json | 1 + .../CodeSystem-condition-category.json | 1 + ...em-us-core-documentreference-category.json | 1 + ...m-us-core-provenance-participant-type.json | 1 + .../uscore_v3.0.1/ConceptMap-ndc-cvx.json | 1 + .../ImplementationGuide-hl7.fhir.us.core.json | 1 + .../OperationDefinition-docref.json | 1 + ...re-allergyintolerance-clinical-status.json | 1 + ...er-us-core-allergyintolerance-patient.json | 1 + ...chParameter-us-core-careplan-category.json | 1 + ...SearchParameter-us-core-careplan-date.json | 142 + ...rchParameter-us-core-careplan-patient.json | 1 + ...archParameter-us-core-careplan-status.json | 1 + ...rchParameter-us-core-careteam-patient.json | 1 + ...archParameter-us-core-careteam-status.json | 1 + ...hParameter-us-core-condition-category.json | 1 + ...ter-us-core-condition-clinical-status.json | 1 + ...earchParameter-us-core-condition-code.json | 1 + ...arameter-us-core-condition-onset-date.json | 142 + ...chParameter-us-core-condition-patient.json | 1 + ...earchParameter-us-core-device-patient.json | 1 + .../SearchParameter-us-core-device-type.json | 1 + ...ter-us-core-diagnosticreport-category.json | 1 + ...rameter-us-core-diagnosticreport-code.json | 1 + ...rameter-us-core-diagnosticreport-date.json | 142 + ...eter-us-core-diagnosticreport-patient.json | 1 + ...meter-us-core-diagnosticreport-status.json | 1 + ...er-us-core-documentreference-category.json | 1 + ...ameter-us-core-documentreference-date.json | 142 + ...arameter-us-core-documentreference-id.json | 1 + ...ter-us-core-documentreference-patient.json | 1 + ...eter-us-core-documentreference-period.json | 1 + ...eter-us-core-documentreference-status.json | 1 + ...ameter-us-core-documentreference-type.json | 1 + ...archParameter-us-core-encounter-class.json | 1 + ...earchParameter-us-core-encounter-date.json | 142 + .../SearchParameter-us-core-encounter-id.json | 1 + ...arameter-us-core-encounter-identifier.json | 1 + ...chParameter-us-core-encounter-patient.json | 1 + ...rchParameter-us-core-encounter-status.json | 1 + ...earchParameter-us-core-encounter-type.json | 1 + .../SearchParameter-us-core-ethnicity.json | 1 + ...rameter-us-core-goal-lifecycle-status.json | 1 + .../SearchParameter-us-core-goal-patient.json | 1 + ...rchParameter-us-core-goal-target-date.json | 142 + ...chParameter-us-core-immunization-date.json | 142 + ...arameter-us-core-immunization-patient.json | 1 + ...Parameter-us-core-immunization-status.json | 1 + ...rameter-us-core-location-address-city.json | 1 + ...r-us-core-location-address-postalcode.json | 1 + ...ameter-us-core-location-address-state.json | 1 + ...rchParameter-us-core-location-address.json | 1 + ...SearchParameter-us-core-location-name.json | 1 + ...-us-core-medicationrequest-authoredon.json | 1 + ...r-us-core-medicationrequest-encounter.json | 1 + ...eter-us-core-medicationrequest-intent.json | 1 + ...ter-us-core-medicationrequest-patient.json | 1 + ...eter-us-core-medicationrequest-status.json | 1 + ...arameter-us-core-observation-category.json | 1 + ...rchParameter-us-core-observation-code.json | 1 + ...rchParameter-us-core-observation-date.json | 1 + ...Parameter-us-core-observation-patient.json | 1 + ...hParameter-us-core-observation-status.json | 1 + ...arameter-us-core-organization-address.json | 1 + ...chParameter-us-core-organization-name.json | 1 + ...chParameter-us-core-patient-birthdate.json | 1 + ...earchParameter-us-core-patient-family.json | 1 + ...earchParameter-us-core-patient-gender.json | 1 + ...SearchParameter-us-core-patient-given.json | 1 + .../SearchParameter-us-core-patient-id.json | 1 + ...hParameter-us-core-patient-identifier.json | 1 + .../SearchParameter-us-core-patient-name.json | 1 + ...meter-us-core-practitioner-identifier.json | 1 + ...chParameter-us-core-practitioner-name.json | 1 + ...us-core-practitionerrole-practitioner.json | 1 + ...er-us-core-practitionerrole-specialty.json | 1 + ...earchParameter-us-core-procedure-code.json | 1 + ...earchParameter-us-core-procedure-date.json | 1 + ...chParameter-us-core-procedure-patient.json | 1 + ...rchParameter-us-core-procedure-status.json | 1 + .../SearchParameter-us-core-race.json | 1 + ...ctureDefinition-pediatric-bmi-for-age.json | 1 + ...efinition-pediatric-weight-for-height.json | 1 + ...Definition-us-core-allergyintolerance.json | 1 + .../StructureDefinition-us-core-birthsex.json | 1 + .../StructureDefinition-us-core-careplan.json | 1 + .../StructureDefinition-us-core-careteam.json | 1 + ...StructureDefinition-us-core-condition.json | 1 + ...finition-us-core-diagnosticreport-lab.json | 1666 +++++++++++ ...inition-us-core-diagnosticreport-note.json | 1 + .../StructureDefinition-us-core-direct.json | 1 + ...eDefinition-us-core-documentreference.json | 1 + ...StructureDefinition-us-core-encounter.json | 1 + ...StructureDefinition-us-core-ethnicity.json | 1 + .../StructureDefinition-us-core-goal.json | 1 + ...uctureDefinition-us-core-immunization.json | 1 + ...Definition-us-core-implantable-device.json | 1 + .../StructureDefinition-us-core-location.json | 1 + ...tructureDefinition-us-core-medication.json | 1 + ...eDefinition-us-core-medicationrequest.json | 1 + ...ureDefinition-us-core-observation-lab.json | 2573 +++++++++++++++++ ...uctureDefinition-us-core-organization.json | 1 + .../StructureDefinition-us-core-patient.json | 1 + ...uctureDefinition-us-core-practitioner.json | 1 + ...reDefinition-us-core-practitionerrole.json | 1 + ...StructureDefinition-us-core-procedure.json | 1 + ...tructureDefinition-us-core-provenance.json | 1 + ...tureDefinition-us-core-pulse-oximetry.json | 1 + .../StructureDefinition-us-core-race.json | 1 + ...ctureDefinition-us-core-smokingstatus.json | 1 + .../uscore_v3.0.1/ValueSet-birthsex.json | 1 + .../ValueSet-detailed-ethnicity.json | 1 + .../uscore_v3.0.1/ValueSet-detailed-race.json | 1 + .../ValueSet-omb-ethnicity-category.json | 1 + .../ValueSet-omb-race-category.json | 1 + .../ValueSet-simple-language.json | 1 + .../ValueSet-us-core-allergy-substance.json | 1 + ...ueSet-us-core-careteam-provider-roles.json | 1 + .../ValueSet-us-core-clinical-note-type.json | 1 + .../ValueSet-us-core-condition-category.json | 1 + ...Set-us-core-diagnosticreport-category.json | 1 + ...et-us-core-diagnosticreport-lab-codes.json | 1 + ...iagnosticreport-report-and-note-codes.json | 1 + ...et-us-core-documentreference-category.json | 1 + ...lueSet-us-core-documentreference-type.json | 1 + .../ValueSet-us-core-encounter-type.json | 1 + .../ValueSet-us-core-medication-codes.json | 1 + .../ValueSet-us-core-narrative-status.json | 1 + .../ValueSet-us-core-ndc-vaccine-codes.json | 1 + ...ore-observation-smoking-status-status.json | 1 + ...Set-us-core-observation-smokingstatus.json | 1 + ...ueSet-us-core-observation-value-codes.json | 1 + .../ValueSet-us-core-problem.json | 1 + .../ValueSet-us-core-procedure-code.json | 1 + .../ValueSet-us-core-procedure-icd10pcs.json | 1 + ...t-us-core-provenance-participant-type.json | 1 + .../ValueSet-us-core-provider-role.json | 1 + .../ValueSet-us-core-provider-specialty.json | 1 + ...core-smoking-status-observation-codes.json | 1 + .../ValueSet-us-core-usps-state.json | 1 + .../ValueSet-us-core-vaccines-cvx.json | 1 + resources/uscore_v3.0.1/ig-r4.json | 1 + 306 files changed, 20229 insertions(+), 821 deletions(-) create mode 100644 generator/generator_base.rb create mode 100644 generator/uscore/metadata_extractor.rb rename {generators/uscore-r4 => generator/uscore}/templates/module.yml.erb (81%) rename {generators/uscore-r4 => generator/uscore}/templates/sequence.rb.erb (74%) create mode 100644 generator/uscore/uscore_generator.rb delete mode 100644 generators/uscore-r4/generator.rb delete mode 100644 generators/uscore-r4/metadata_extractor.rb delete mode 100644 lib/app/modules/us_core_module.yml create mode 100644 lib/app/modules/uscore_v3.0.0/pediatric_bmi_for_age_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/pediatric_weight_for_height_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_allergyintolerance_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_careplan_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_careteam_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_condition_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_device_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_diagnosticreport_lab_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_diagnosticreport_note_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_documentreference_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_encounter_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_goal_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_immunization_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_location_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_medication_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_medicationrequest_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_medicationstatement_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_observation_lab_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_organization_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_patient_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_practitioner_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_practitionerrole_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_procedure_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0/us_core_smokingstatus_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.0_module.yml create mode 100644 lib/app/modules/uscore_v3.0.1/pediatric_bmi_for_age_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/pediatric_weight_for_height_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_allergyintolerance_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_careplan_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_careteam_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_condition_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_diagnosticreport_lab_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_diagnosticreport_note_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_documentreference_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_encounter_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_goal_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_immunization_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_implantable_device_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_location_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_medication_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_medicationrequest_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_observation_lab_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_organization_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_patient_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_practitioner_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_practitionerrole_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_procedure_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_provenance_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1/us_core_smokingstatus_sequence.rb create mode 100644 lib/app/modules/uscore_v3.0.1_module.yml rename resources/{us_core_r4 => uscore_v3.0.0}/CapabilityStatement-us-core-server.json (100%) create mode 100644 resources/uscore_v3.0.0/ImplementationGuide-hl7.fhir.us.core-3.0.0.json rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-allergyintolerance-clinical-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-allergyintolerance-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-careplan-category.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-careplan-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-careplan-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-careplan-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-careteam-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-careteam-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-condition-category.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-condition-clinical-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-condition-code.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-condition-onset-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-condition-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-device-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-device-type.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-diagnosticreport-category.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-diagnosticreport-code.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-diagnosticreport-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-diagnosticreport-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-diagnosticreport-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-documentreference-category.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-documentreference-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-documentreference-id.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-documentreference-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-documentreference-period.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-documentreference-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-documentreference-type.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-encounter-class.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-encounter-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-encounter-id.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-encounter-identifier.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-encounter-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-encounter-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-encounter-type.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-goal-lifecycle-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-goal-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-goal-target-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-immunization-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-immunization-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-immunization-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-location-address-city.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-location-address-postalcode.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-location-address-state.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-location-address.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-location-name.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-medicationrequest-authoredon.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-medicationrequest-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-medicationrequest-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-medicationstatement-effective.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-medicationstatement-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-medicationstatement-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-observation-category.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-observation-code.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-observation-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-observation-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-observation-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-organization-address.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-organization-name.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-patient-birthdate.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-patient-family.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-patient-gender.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-patient-given.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-patient-id.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-patient-identifier.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-patient-name.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-practitioner-identifier.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-practitioner-name.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-practitionerrole-practitioner.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-practitionerrole-specialty.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-procedure-code.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-procedure-date.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-procedure-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/SearchParameter-us-core-procedure-status.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-pediatric-bmi-for-age.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-pediatric-weight-for-height.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-allergyintolerance.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-careplan.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-careteam.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-condition.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-device.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-diagnosticreport-lab.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-diagnosticreport-note.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-documentreference.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-encounter.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-goal.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-immunization.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-location.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-medication.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-medicationrequest.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-medicationstatement.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-observation-lab.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-organization.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-patient.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-practitioner.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-practitionerrole.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-procedure.json (100%) rename resources/{us_core_r4 => uscore_v3.0.0}/StructureDefinition-us-core-smokingstatus.json (100%) create mode 100644 resources/uscore_v3.0.1/CapabilityStatement-us-core-client.json create mode 100644 resources/uscore_v3.0.1/CapabilityStatement-us-core-server.json create mode 100644 resources/uscore_v3.0.1/CodeSystem-careplan-category.json create mode 100644 resources/uscore_v3.0.1/CodeSystem-cdcrec.json create mode 100644 resources/uscore_v3.0.1/CodeSystem-condition-category.json create mode 100644 resources/uscore_v3.0.1/CodeSystem-us-core-documentreference-category.json create mode 100644 resources/uscore_v3.0.1/CodeSystem-us-core-provenance-participant-type.json create mode 100644 resources/uscore_v3.0.1/ConceptMap-ndc-cvx.json create mode 100644 resources/uscore_v3.0.1/ImplementationGuide-hl7.fhir.us.core.json create mode 100644 resources/uscore_v3.0.1/OperationDefinition-docref.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-allergyintolerance-clinical-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-allergyintolerance-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-careplan-category.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-careplan-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-careplan-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-careplan-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-careteam-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-careteam-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-condition-category.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-condition-clinical-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-condition-code.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-condition-onset-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-condition-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-device-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-device-type.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-category.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-code.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-category.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-id.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-period.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-type.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-encounter-class.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-encounter-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-encounter-id.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-encounter-identifier.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-encounter-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-encounter-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-encounter-type.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-ethnicity.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-goal-lifecycle-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-goal-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-goal-target-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-immunization-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-immunization-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-immunization-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-location-address-city.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-location-address-postalcode.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-location-address-state.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-location-address.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-location-name.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-authoredon.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-encounter.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-intent.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-observation-category.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-observation-code.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-observation-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-observation-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-observation-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-organization-address.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-organization-name.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-patient-birthdate.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-patient-family.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-patient-gender.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-patient-given.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-patient-id.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-patient-identifier.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-patient-name.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-practitioner-identifier.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-practitioner-name.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-practitionerrole-practitioner.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-practitionerrole-specialty.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-procedure-code.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-procedure-date.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-procedure-patient.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-procedure-status.json create mode 100644 resources/uscore_v3.0.1/SearchParameter-us-core-race.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-pediatric-bmi-for-age.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-pediatric-weight-for-height.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-allergyintolerance.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-birthsex.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-careplan.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-careteam.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-condition.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-diagnosticreport-lab.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-diagnosticreport-note.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-direct.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-documentreference.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-encounter.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-ethnicity.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-goal.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-immunization.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-implantable-device.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-location.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-medication.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-medicationrequest.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-observation-lab.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-organization.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-patient.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-practitioner.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-practitionerrole.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-procedure.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-provenance.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-pulse-oximetry.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-race.json create mode 100644 resources/uscore_v3.0.1/StructureDefinition-us-core-smokingstatus.json create mode 100644 resources/uscore_v3.0.1/ValueSet-birthsex.json create mode 100644 resources/uscore_v3.0.1/ValueSet-detailed-ethnicity.json create mode 100644 resources/uscore_v3.0.1/ValueSet-detailed-race.json create mode 100644 resources/uscore_v3.0.1/ValueSet-omb-ethnicity-category.json create mode 100644 resources/uscore_v3.0.1/ValueSet-omb-race-category.json create mode 100644 resources/uscore_v3.0.1/ValueSet-simple-language.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-allergy-substance.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-careteam-provider-roles.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-clinical-note-type.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-condition-category.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-category.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-lab-codes.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-report-and-note-codes.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-documentreference-category.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-documentreference-type.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-encounter-type.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-medication-codes.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-narrative-status.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-ndc-vaccine-codes.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-observation-smoking-status-status.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-observation-smokingstatus.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-observation-value-codes.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-problem.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-procedure-code.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-procedure-icd10pcs.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-provenance-participant-type.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-provider-role.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-provider-specialty.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-smoking-status-observation-codes.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-usps-state.json create mode 100644 resources/uscore_v3.0.1/ValueSet-us-core-vaccines-cvx.json create mode 100644 resources/uscore_v3.0.1/ig-r4.json diff --git a/config.yml b/config.yml index 12a2e9783..91af03f9b 100644 --- a/config.yml +++ b/config.yml @@ -42,8 +42,9 @@ modules: - onc - onc_r4 - smart - - us_core_r4 - argonaut + - uscore_v3.0.0 + - uscore_v3.0.1 # preset fhir servers: optional. Minimally requires name, uri, module, optional inferno_uri, client_id, client_secret, scopes, instructions link presets: diff --git a/generator/generator_base.rb b/generator/generator_base.rb new file mode 100644 index 000000000..56d135feb --- /dev/null +++ b/generator/generator_base.rb @@ -0,0 +1,82 @@ +# frozen_string_literal: true + +require 'erb' +require 'pry' +require 'fileutils' +require 'net/http' +require 'fhir_models' + +module Inferno + module Generator + class Base + def initialize(path, extras) + @path = path + @extras = extras + load_resources + end + + def load_resources + @resource_by_path = Hash.new {} + @resources_by_type = Hash.new { |h, k| h[k] = [] } + Dir.glob("#{resource_file_path}/**/*.*") do |resource| # note one extra "*" + if File.file?(resource) && (resource.end_with?('json') || resource.end_with?('xml')) + + # We should consider using the native Ruby models instead of JSON + # There were problems with round-tripping certain SearchParameters though + new_resource_json = JSON.parse(File.read(resource)) + new_resource = FHIR.from_contents(File.read(resource)) + @resource_by_path[resource_path(new_resource)] = new_resource_json + type = new_resource.class.name.demodulize + type = 'CapabilityStatement' if type == 'Conformance' + @resources_by_type[type].push(new_resource_json) + end + end + end + + def ig_resource + @resources_by_type['ImplementationGuide'].first + end + + def capability_statement(mode) + @resources_by_type['CapabilityStatement'].find { |re| re['rest'].any? { |r| r['mode'] == mode } } + end + + def resource_path(resource) + "#{resource.class.name.demodulize}/#{resource.id}" + end + + def format_output + # system('sh', "rubocop -x --display-only-fail-level-offenses #{sequence_out_path}/") + system("rubocop -x --display-only-fail-level-offenses #{sequence_out_path}") + end + + def run + generate + format_output + end + + # subclass must implement the following: + # def generate + + # end + + def sequence_prefix + version = ig_resource['version'].delete('.') + name = ig_metadata['name'] + "#{version}#{name}" + end + + def module_yml_out_path + File.expand_path('./lib/app/modules/') + end + + def sequence_out_path + File.expand_path("./lib/app/modules/#{@path}") + end + + def resource_file_path + File.expand_path("./resources/#{@path}") + end + end + end +end diff --git a/generator/uscore/metadata_extractor.rb b/generator/uscore/metadata_extractor.rb new file mode 100644 index 000000000..735bbc9c3 --- /dev/null +++ b/generator/uscore/metadata_extractor.rb @@ -0,0 +1,251 @@ +# frozen_string_literal: true + +module Inferno + module Generator + module USCoreMetadataExtractor + PROFILE_URIS = Inferno::ValidationUtil::US_CORE_R4_URIS + + def profile_uri(profile) + "http://hl7.org/fhir/us/core/StructureDefinition/#{profile}" + end + + def profile_json_uri(profile) + "https://www.hl7.org/fhir/us/core/StructureDefinition-#{profile}.json" + end + + def search_param_path(resource, param) + param = 'id' if param == '_id' + "SearchParameter/us-core-#{resource.downcase}-#{param}" + end + + def extract_metadata + metadata = { + # The 'key' for the module is just the directory the IG is in + name: @path + } + + # Note: consider using the Ruby representation instead of JSON + # We aren't right now because some information is being scrubbed + # from SearchParameter resource + + capability_statement_json = capability_statement('server') + add_metadata_from_ig(metadata, ig_resource) + add_metadata_from_resources(metadata, capability_statement_json['rest'][0]['resource']) + add_special_cases(metadata) + end + + def add_metadata_from_ig(metadata, implementation_guide) + metadata[:title] = "#{implementation_guide['title']} v#{implementation_guide['version']}" + metadata[:description] = "#{implementation_guide['title']} v#{implementation_guide['version']}" + end + + def build_new_sequence(resource, profile) + base_path = profile.split('us/core/').last + base_name = profile.split('StructureDefinition/').last + profile_json = @resource_by_path[base_path] + reformatted_version = ig_resource['version'].delete('.') + profile_title = profile_json['title'].gsub(/US\s*Core\s*/, '').gsub(/\s*Profile/, '').strip + class_name = base_name + .split('-') + .map(&:capitalize) + .join + .gsub('UsCore', "USCore#{reformatted_version}") + 'Sequence' + + # In case the profile doesn't start with US Core + class_name = "USCore#{reformatted_version}#{class_name}" unless class_name.start_with? 'USCore' + + { + name: base_name.tr('-', '_'), + class_name: class_name, + resource: resource['type'], + profile: profile_uri(base_name), # link in capability statement is incorrect, + profile_json: profile_json_uri(base_name), + title: profile_title, + interactions: [], + searches: [], + search_param_descriptions: {}, + element_descriptions: {}, + must_supports: [], + tests: [] + } + end + + def add_metadata_from_resources(metadata, resources) + metadata[:sequences] = [] + + resources.each do |resource| + # This doesn't get ValueSet, which doesn't have a profile + # because it is to check ValueSet expansion + # We should update this to get that + resource['supportedProfile']&.each do |supported_profile| + new_sequence = build_new_sequence(resource, supported_profile) + + add_basic_searches(resource, new_sequence) + add_combo_searches(resource, new_sequence) + add_interactions(resource, new_sequence) + + base_path = new_sequence[:profile].split('us/core/').last + profile_definition = @resource_by_path[base_path] + add_must_support_elements(profile_definition, new_sequence) + add_search_param_descriptions(profile_definition, new_sequence) + add_element_definitions(profile_definition, new_sequence) + + metadata[:sequences] << new_sequence + end + end + end + + def add_basic_searches(resource, sequence) + basic_searches = resource['searchParam'] + basic_searches&.each do |search_param| + new_search_param = { + names: [search_param['name']], + expectation: search_param['extension'][0]['valueCode'] + } + sequence[:searches] << new_search_param + sequence[:search_param_descriptions][search_param['name'].to_sym] = {} + end + end + + def add_combo_searches(resource, sequence) + search_combos = resource['extension'] || [] + search_combo_url = 'http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination' + search_combos + .select { |combo| combo['url'] == search_combo_url } + .each do |combo| + combo_params = combo['extension'] + new_search_combo = { + expectation: combo_params[0]['valueCode'], + names: [] + } + combo_params.each do |param| + next unless param.key?('valueString') + + new_search_combo[:names] << param['valueString'] + sequence[:search_param_descriptions][param['valueString'].to_sym] = {} + end + sequence[:searches] << new_search_combo + end + end + + def add_interactions(resource, sequence) + interactions = resource['interaction'] + interactions&.each do |interaction| + new_interaction = { + code: interaction['code'], + expectation: interaction['extension'][0]['valueCode'] + } + sequence[:interactions] << new_interaction + end + end + + def add_must_support_elements(profile_definition, sequence) + profile_definition['snapshot']['element'].select { |el| el['mustSupport'] }.each do |element| + if element['path'].end_with? 'extension' + sequence[:must_supports] << + { + type: 'extension', + id: element['id'], + path: element['path'], + url: element['type'].first['profile'].first + } + next + end + + path = element['path'] + if path.include? '[x]' + choice_el = profile_definition['snapshot']['element'].find { |el| el['id'] == (path.split('[x]').first + '[x]') } + choice_el['type'].each do |type| + sequence[:must_supports] << + { + type: 'element', + path: path.gsub('[x]', type['code'].slice(0).capitalize + type['code'].slice(1..-1)) + } + end + else + sequence[:must_supports] << + { + type: 'element', + path: path + } + end + end + end + + def add_search_param_descriptions(profile_definition, sequence) + sequence[:search_param_descriptions].each_key do |param| + search_param_definition = @resource_by_path[search_param_path(sequence[:resource], param.to_s)] + path_parts = search_param_definition['xpath'].split('/f:') + if param.to_s != '_id' + path_parts[0] = sequence[:resource] + path = path_parts.join('.') + else + path = path_parts[0] + end + profile_element = profile_definition['snapshot']['element'].select { |el| el['id'] == path }.first + param_metadata = { + path: path, + comparators: {} + } + if !profile_element.nil? + param_metadata[:type] = profile_element['type'].first['code'] + param_metadata[:contains_multiple] = (profile_element['max'] == '*') + else + # search is a variable type eg.) Condition.onsetDateTime - element in profile def is Condition.onset[x] + param_metadata[:type] = search_param_definition['type'] + param_metadata[:contains_multiple] = false + end + search_param_definition['comparator']&.each_with_index do |comparator, index| + expectation_extension = search_param_definition['_comparator'] + expectation = 'MAY' + expectation = expectation_extension[index]['extension'].first['valueCode'] unless expectation_extension.nil? + param_metadata[:comparators][comparator.to_sym] = expectation + end + sequence[:search_param_descriptions][param] = param_metadata + end + end + + def add_element_definitions(profile_definition, sequence) + profile_definition['snapshot']['element'].each do |element| + next if element['type'].nil? # base profile + + path = element['id'] + if path.include? '[x]' + element['type'].each do |type| + sequence[:element_descriptions][path.gsub('[x]', type['code']).downcase.to_sym] = { type: type['code'], contains_multiple: element['max'] == '*' } + end + else + sequence[:element_descriptions][path.downcase.to_sym] = { type: element['type'].first['code'], contains_multiple: element['max'] == '*' } + end + end + end + + def add_special_cases(metadata) + category_first_profiles = [ + PROFILE_URIS[:diagnostic_report_lab], + PROFILE_URIS[:lab_results], + PROFILE_URIS[:diagnostic_report_note] + ] + + # search by patient first + metadata[:sequences].each do |sequence| + patient_search = sequence[:searches].select { |param| param[:names] == ['patient'] } &.first + unless patient_search.nil? + sequence[:searches].delete(patient_search) + sequence[:searches].unshift(patient_search) + end + end + + # search by patient + category first for these specific profiles + metadata[:sequences].select { |sequence| category_first_profiles.include?(sequence[:profile]) }.each do |sequence| + category_search = sequence[:searches].select { |param| param[:names] == ['patient', 'category'] } &.first + unless category_search.nil? + sequence[:searches].delete(category_search) + sequence[:searches].unshift(category_search) + end + end + metadata + end + end + end +end diff --git a/generators/uscore-r4/templates/module.yml.erb b/generator/uscore/templates/module.yml.erb similarity index 81% rename from generators/uscore-r4/templates/module.yml.erb rename to generator/uscore/templates/module.yml.erb index efe5656b7..3fce5e556 100644 --- a/generators/uscore-r4/templates/module.yml.erb +++ b/generator/uscore/templates/module.yml.erb @@ -1,6 +1,6 @@ -name: us_core_r4 -title: US Core R4 -description : US Core R4 +name: <%= name %> +title: <%= title %> +description : <%= description %> fhir_version: r4 default_test_set: ad_hoc_testing test_sets: @@ -21,7 +21,7 @@ test_sets: - name: US Core R4 Patient Based Profiles run_all: true sequences:<% non_delayed_sequences.each do |sequence| %> - - <%=sequence[:classname]%><% end %> + - <%=sequence[:class_name]%><% end %> - R4ProvenanceSequence - USCoreR4ClinicalNotesSequence<% delayed_sequences.each do |sequence| %> - - <%=sequence[:classname]%><% end %> + - <%=sequence[:class_name]%><% end %> diff --git a/generators/uscore-r4/templates/sequence.rb.erb b/generator/uscore/templates/sequence.rb.erb similarity index 74% rename from generators/uscore-r4/templates/sequence.rb.erb rename to generator/uscore/templates/sequence.rb.erb index 175db2e24..1ae33f894 100644 --- a/generators/uscore-r4/templates/sequence.rb.erb +++ b/generator/uscore/templates/sequence.rb.erb @@ -2,9 +2,7 @@ module Inferno module Sequence - class <%=classname%> < SequenceBase - group 'US Core R4 Profile Conformance' - + class <%=class_name%> < SequenceBase title '<%=title%> Tests' description 'Verify that <%=resource%> resources on the FHIR server follow the Argonaut Data Query Implementation Guide' @@ -17,8 +15,7 @@ module Inferno <%=search_validator%> details %( - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [<%= classname.gsub('USCoreR4','').gsub('Sequence','') %> Argonaut Profile](<%=profile.gsub('.json','')%>) + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. ) diff --git a/generator/uscore/uscore_generator.rb b/generator/uscore/uscore_generator.rb new file mode 100644 index 000000000..eec2bbb99 --- /dev/null +++ b/generator/uscore/uscore_generator.rb @@ -0,0 +1,476 @@ +# frozen_string_literal: true + +require_relative './metadata_extractor' +require_relative '../../lib/app/utils/validation' +require_relative '../generator_base' + +module Inferno + module Generator + class USCoreGenerator < Generator::Base + include USCoreMetadataExtractor + + PROFILE_URIS = Inferno::ValidationUtil::US_CORE_R4_URIS + + def validation_profile_uri(sequence) + profile_uri = PROFILE_URIS.key(sequence[:profile]) + "Inferno::ValidationUtil::US_CORE_R4_URIS[:#{profile_uri}]" if profile_uri + end + + def generate + metadata = extract_metadata + generate_tests(metadata) + generate_search_validators(metadata) + metadata[:sequences].each do |sequence| + generate_sequence(sequence) + end + generate_module(metadata) + end + + def generate_search_validators(metadata) + metadata[:sequences].each do |sequence| + sequence[:search_validator] = create_search_validation(sequence) + end + end + + def generate_tests(metadata) + # first isolate the profiles that don't have patient searches + mark_delayed_sequences(metadata) + + metadata[:sequences].each do |sequence| + puts "Generating test #{sequence[:name]}" + + # read reference if sequence contains no search sequences + create_read_test(sequence) if sequence[:delayed_sequence] + + # authorization test + create_authorization_test(sequence) + + # make tests for each SHALL and SHOULD search param, SHALL's first + sequence[:searches] + .select { |search_param| search_param[:expectation] == 'SHALL' } + .each { |search_param| create_search_test(sequence, search_param) } + + sequence[:searches] + .select { |search_param| search_param[:expectation] == 'SHOULD' } + .each { |search_param| create_search_test(sequence, search_param) } + + # make tests for each SHALL and SHOULD interaction + sequence[:interactions] + .select { |interaction| ['SHALL', 'SHOULD'].include? interaction[:expectation] } + .reject { |interaction| interaction[:code] == 'search-type' } + .each do |interaction| + # specific edge cases + interaction[:code] = 'history' if interaction[:code] == 'history-instance' + next if interaction[:code] == 'read' && sequence[:delayed_sequence] + + create_interaction_test(sequence, interaction) + end + + create_resource_profile_test(sequence) + create_must_support_test(sequence) + create_references_resolved_test(sequence) + end + end + + def mark_delayed_sequences(metadata) + metadata[:sequences].each do |sequence| + sequence[:delayed_sequence] = sequence[:resource] != 'Patient' && sequence[:searches].none? { |search| search[:names].include? 'patient' } + end + metadata[:delayed_sequences] = metadata[:sequences].select { |seq| seq[:delayed_sequence] } + metadata[:non_delayed_sequences] = metadata[:sequences].reject { |seq| seq[:delayed_sequence] } + end + + def find_first_search(sequence) + sequence[:searches].find { |search_param| search_param[:expectation] == 'SHALL' } || + sequence[:searches].find { |search_param| search_param[:expectation] == 'SHOULD' } + end + + def generate_sequence(sequence) + puts "Generating #{sequence[:name]}\n" + file_name = sequence_out_path + '/' + sequence[:name].downcase + '_sequence.rb' + + template = ERB.new(File.read(File.join(__dir__, 'templates/sequence.rb.erb'))) + output = template.result_with_hash(sequence) + FileUtils.mkdir_p(sequence_out_path) unless File.directory?(sequence_out_path) + File.write(file_name, output) + end + + def create_read_test(sequence) + read_test = { + tests_that: "Can read #{sequence[:resource]} from the server", + index: sequence[:tests].length + 1, + link: 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + } + + read_test[:test_code] = %( + #{sequence[:resource].downcase}_id = @instance.resource_references.find { |reference| reference.resource_type == '#{sequence[:resource]}' }&.resource_id + skip 'No #{sequence[:resource]} references found from the prior searches' if #{sequence[:resource].downcase}_id.nil? + @#{sequence[:resource].downcase} = fetch_resource('#{sequence[:resource]}', #{sequence[:resource].downcase}_id) + @resources_found = !@#{sequence[:resource].downcase}.nil?) + sequence[:tests] << read_test + end + + def create_authorization_test(sequence) + authorization_test = { + tests_that: "Server rejects #{sequence[:resource]} search without authorization", + index: sequence[:tests].length + 1, + link: 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + } + + first_search = find_first_search(sequence) + return if first_search.nil? + + authorization_test[:test_code] = %( + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + #{get_search_params(first_search[:names], sequence)} + reply = get_resource_by_params(versioned_resource_class('#{sequence[:resource]}'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply) + + sequence[:tests] << authorization_test + end + + def create_search_test(sequence, search_param) + search_test = { + tests_that: "Server returns expected results from #{sequence[:resource]} search by #{search_param[:names].join('+')}", + index: sequence[:tests].length + 1, + link: 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html', + optional: search_param[:expectation] != 'SHALL' + } + + is_first_search = search_param == find_first_search(sequence) + save_resource_ids_in_bundle_arguments = [ + "versioned_resource_class('#{sequence[:resource]}')", + 'reply', + validation_profile_uri(sequence) + ].compact.join(', ') + + search_test[:test_code] = + if is_first_search + %(#{get_search_params(search_param[:names], sequence)} + reply = get_resource_by_params(versioned_resource_class('#{sequence[:resource]}'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @#{sequence[:resource].downcase} = reply.try(:resource).try(:entry).try(:first).try(:resource) + @#{sequence[:resource].downcase}_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(#{save_resource_ids_in_bundle_arguments}) + save_delayed_sequence_references(@#{sequence[:resource].downcase}) + validate_search_reply(versioned_resource_class('#{sequence[:resource]}'), reply, search_params)) + else + %( + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@#{sequence[:resource].downcase}.nil?, 'Expected valid #{sequence[:resource]} resource to be present' + #{get_search_params(search_param[:names], sequence)} + reply = get_resource_by_params(versioned_resource_class('#{sequence[:resource]}'), search_params) + validate_search_reply(versioned_resource_class('#{sequence[:resource]}'), reply, search_params) + assert_response_ok(reply)) + end + search_test[:test_code] += get_comparator_searches(search_param[:names], sequence) + sequence[:tests] << search_test + end + + def create_interaction_test(sequence, interaction) + interaction_test = { + tests_that: "#{sequence[:resource]} #{interaction[:code]} resource supported", + index: sequence[:tests].length + 1, + link: 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + } + + interaction_test[:test_code] = %( + skip_if_not_supported(:#{sequence[:resource]}, [:#{interaction[:code]}]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_#{interaction[:code]}_reply(@#{sequence[:resource].downcase}, versioned_resource_class('#{sequence[:resource]}'))) + + sequence[:tests] << interaction_test + end + + def create_must_support_test(sequence) + test = { + tests_that: "At least one of every must support element is provided in any #{sequence[:resource]} for this patient.", + index: sequence[:tests].length + 1, + link: 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support', + test_code: '' + } + + test[:test_code] += %( + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @#{sequence[:resource].downcase}_ary&.any?) + + test[:test_code] += %( + must_support_confirmed = {}) + + extensions_list = [] + sequence[:must_supports].select { |must_support| must_support[:type] == 'extension' }.each do |extension| + extensions_list << "'#{extension[:id]}': '#{extension[:url]}'" + end + if extensions_list.any? + test[:test_code] += %( + extensions_list = { + #{extensions_list.join(",\n ")} + } + extensions_list.each do |id, url| + @#{sequence[:resource].downcase}_ary&.each do |resource| + must_support_confirmed[id] = true if resource.extension.any? { |extension| extension.url == url } + break if must_support_confirmed[id] + end + skip_notification = "Could not find \#{id} in any of the \#{@#{sequence[:resource].downcase}_ary.length} provided #{sequence[:resource]} resource(s)" + skip skip_notification unless must_support_confirmed[id] + end + ) + end + elements_list = [] + sequence[:must_supports].select { |must_support| must_support[:type] == 'element' }.each do |element| + element[:path] = element[:path].gsub('.class', '.local_class') # class is mapped to local_class in fhir_models + elements_list << "'#{element[:path]}'" + end + + if elements_list.any? + test[:test_code] += %( + must_support_elements = [ + #{elements_list.join(",\n ")} + ] + must_support_elements.each do |path| + @#{sequence[:resource].downcase}_ary&.each do |resource| + truncated_path = path.gsub('#{sequence[:resource]}.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @#{sequence[:resource].downcase}_ary.length + + skip "Could not find \#{path} in any of the \#{resource_count} provided #{sequence[:resource]} resource(s)" unless must_support_confirmed[path] + end) + end + + test[:test_code] += %( + @instance.save!) + + sequence[:tests] << test + end + + def create_resource_profile_test(sequence) + test = { + tests_that: "#{sequence[:resource]} resources associated with Patient conform to US Core R4 profiles", + index: sequence[:tests].length + 1, + link: sequence[:profile] + } + test[:test_code] = %( + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('#{sequence[:resource]}'#{', ' + validation_profile_uri(sequence) if validation_profile_uri(sequence)})) + + sequence[:tests] << test + end + + def create_references_resolved_test(sequence) + test = { + tests_that: 'All references can be resolved', + index: sequence[:tests].length + 1, + link: 'https://www.hl7.org/fhir/DSTU2/references.html' + } + + test[:test_code] = %( + skip_if_not_supported(:#{sequence[:resource]}, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@#{sequence[:resource].downcase})) + sequence[:tests] << test + end + + def resolve_element_path(search_param_description) + type = search_param_description[:type] + element_path = search_param_description[:path] + get_value_path_by_type(type) + element_path.gsub('.class', '.local_class') # match fhir_models because class is protected keyword in ruby + path_parts = element_path.split('.') + resource_val = "@#{path_parts.shift.downcase}" + "resolve_element_from_path(#{resource_val}, '#{path_parts.join('.')}')" + end + + def get_value_path_by_type(type) + case type + when 'CodeableConcept' + '.coding.code' + when 'Reference' + '.reference' + when 'Period' + '.start' + when 'Identifier' + '.value' + when 'Coding' + '.code' + when 'HumanName' + '.family' + when 'Address' + '.city' + else + '' + end + end + + def param_value_name(param) + if param == '_id' + 'id_val' + else + param.tr('-', '_') + '_val' + end + end + + def get_search_params(search_parameters, sequence) + unless search_param_constants(search_parameters, sequence).nil? + return %( + search_params = { #{search_param_constants(search_parameters, sequence)} }\n) + end + search_values = [] + search_assignments = [] + search_parameters.each do |param| + variable_name = param_value_name(param) + variable_value = + if param == 'patient' + '@instance.patient_id' + else + resolve_element_path(sequence[:search_param_descriptions][param.to_sym]) + end + search_values << "#{variable_name} = #{variable_value}" + search_assignments << "'#{param}': #{variable_name}" + end + + search_code = '' + search_values.each do |value| + search_code += %( + #{value}) + end + search_code += %( + search_params = { #{search_assignments.join(', ')} } + search_params.each { |param, value| skip "Could not resolve \#{param} in given resource" if value.nil? } + ) + search_code + end + + def get_comparator_searches(search_params, sequence) + search_code = '' + search_assignments = search_params.map do |param| + "'#{param}': #{param_value_name(param)}" + end + search_assignments_str = "{ #{search_assignments.join(', ')} }" + search_params.each do |param| + param_val_name = param_value_name(param) + param_info = sequence[:search_param_descriptions][param.to_sym] + comparators = param_info[:comparators].select { |_comparator, expectation| ['SHALL', 'SHOULD'].include? expectation } + next if comparators.empty? + + type = param_info[:type] + case type + when 'Period', 'date' + search_code += %(\n + [#{comparators.keys.map { |comparator| "'#{comparator}'" }.join(', ')}].each do |comparator| + comparator_val = date_comparator_value(comparator, #{param_val_name}) + comparator_search_params = #{search_assignments_str.gsub(param_val_name, 'comparator_val')} + reply = get_resource_by_params(versioned_resource_class('#{sequence[:resource]}'), comparator_search_params) + validate_search_reply(versioned_resource_class('#{sequence[:resource]}'), reply, comparator_search_params) + assert_response_ok(reply) + end) + end + end + search_code + end + + def search_param_constants(search_parameters, sequence) + return "patient: @instance.patient_id, category: 'assess-plan'" if search_parameters == ['patient', 'category'] && sequence[:resource] == 'CarePlan' + return "patient: @instance.patient_id, status: 'active'" if search_parameters == ['patient', 'status'] && sequence[:resource] == 'CareTeam' + return "'_id': @instance.patient_id" if search_parameters == ['_id'] && sequence[:resource] == 'Patient' + return "patient: @instance.patient_id, code: '72166-2'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:smoking_status] + return "patient: @instance.patient_id, category: 'laboratory'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:lab_results] + return "patient: @instance.patient_id, code: '77606-2'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pediatric_weight_height] + return "patient: @instance.patient_id, code: '59576-9'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pediatric_bmi_age] + return "patient: @instance.patient_id, category: 'LAB'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:diagnostic_report_lab] + return "patient: @instance.patient_id, code: 'LP29684-5'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:diagnostic_report_note] + end + + def create_search_validation(sequence) + search_validators = '' + sequence[:search_param_descriptions].each do |element, definition| + search_validators += %( + when '#{element}') + type = definition[:type] + path_parts = definition[:path].split('.') + path_parts = path_parts.map { |part| part == 'class' ? 'local_class' : part } + path_parts.shift + case type + when 'Period' + search_validators += %( + value_found = can_resolve_path(resource, '#{path_parts.join('.')}') do |period| + validate_period_search(value, period) + end + assert value_found, '#{element} on resource does not match #{element} requested' + ) + when 'date' + search_validators += %( + value_found = can_resolve_path(resource, '#{path_parts.join('.')}') do |date| + validate_date_search(value, date) + end + assert value_found, '#{element} on resource does not match #{element} requested' + ) + when 'HumanName' + # When a string search parameter refers to the types HumanName and Address, + # the search covers the elements of type string, and does not cover elements such as use and period + # https://www.hl7.org/fhir/search.html#string + search_validators += %( + value = value.downcase + value_found = can_resolve_path(resource, '#{path_parts.join('.')}') do |name| + name&.text&.start_with?(value) || + name&.family&.downcase&.include?(value) || + name&.given&.any? { |given| given.downcase.start_with?(value) } || + name&.prefix&.any? { |prefix| prefix.downcase.start_with?(value) } || + name&.suffix&.any? { |suffix| suffix.downcase.start_with?(value) } + end + assert value_found, '#{element} on resource does not match #{element} requested' + ) + else + # searching by patient requires special case because we are searching by a resource identifier + # references can also be URL's, so we made need to resolve those url's + search_validators += + if ['subject', 'patient'].include? element.to_s + %( + value_found = can_resolve_path(resource, '#{path_parts.join('.') + get_value_path_by_type(type)}') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, '#{element} on resource does not match #{element} requested' + ) + else + %( + value_found = can_resolve_path(resource, '#{path_parts.join('.') + get_value_path_by_type(type)}') { |value_in_resource| value_in_resource == value } + assert value_found, '#{element} on resource does not match #{element} requested' + ) + end + end + end + + validate_function = '' + + unless search_validators.empty? + validate_function = %( + def validate_resource_item(resource, property, value) + case property + #{search_validators} + end + end + ) + end + + validate_function + end + + def generate_module(module_info) + file_name = "#{module_yml_out_path}/#{@path}_module.yml" + + template = ERB.new(File.read(File.join(__dir__, 'templates/module.yml.erb'))) + output = template.result_with_hash(module_info) + + File.write(file_name, output) + end + end + end +end diff --git a/generators/uscore-r4/generator.rb b/generators/uscore-r4/generator.rb deleted file mode 100644 index 58637deb1..000000000 --- a/generators/uscore-r4/generator.rb +++ /dev/null @@ -1,479 +0,0 @@ -# frozen_string_literal: true - -require 'erb' -require 'pry' -require 'fileutils' -require 'net/http' -require 'fhir_models' -require_relative './metadata_extractor' -require_relative '../../lib/app/utils/validation' - -OUT_PATH = File.expand_path('../../lib/app/modules', __dir__) -RESOURCE_PATH = File.expand_path('../../resources/us_core_r4', __dir__) - -PROFILE_URIS = Inferno::ValidationUtil::US_CORE_R4_URIS - -def validation_profile_uri(sequence) - profile_uri = PROFILE_URIS.key(sequence[:profile]) - "Inferno::ValidationUtil::US_CORE_R4_URIS[:#{profile_uri}]" if profile_uri -end - -def run - redownload_files = (ARGV&.first == '-d') - FileUtils.rm Dir.glob("#{RESOURCE_PATH}*") if redownload_files - - metadata_extractor = MetadataExtractor.new - metadata = metadata_extractor.extract_metadata - generate_tests(metadata) - generate_search_validators(metadata) - metadata[:sequences].each do |sequence| - generate_sequence(sequence) - end - generate_module(metadata) -end - -def generate_search_validators(metadata) - metadata[:sequences].each do |sequence| - sequence[:search_validator] = create_search_validation(sequence) - end -end - -def generate_tests(metadata) - # first isolate the profiles that don't have patient searches - mark_delayed_sequences(metadata) - - metadata[:sequences].each do |sequence| - puts "Generating test #{sequence[:name]}" - - # read reference if sequence contains no search sequences - create_read_test(sequence) if sequence[:delayed_sequence] - - # authorization test - create_authorization_test(sequence) - - # make tests for each SHALL and SHOULD search param, SHALL's first - sequence[:searches] - .select { |search_param| search_param[:expectation] == 'SHALL' } - .each { |search_param| create_search_test(sequence, search_param) } - - sequence[:searches] - .select { |search_param| search_param[:expectation] == 'SHOULD' } - .each { |search_param| create_search_test(sequence, search_param) } - - # make tests for each SHALL and SHOULD interaction - sequence[:interactions] - .select { |interaction| ['SHALL', 'SHOULD'].include? interaction[:expectation] } - .reject { |interaction| interaction[:code] == 'search-type' } - .each do |interaction| - # specific edge cases - interaction[:code] = 'history' if interaction[:code] == 'history-instance' - next if interaction[:code] == 'read' && sequence[:delayed_sequence] - - create_interaction_test(sequence, interaction) - end - - create_resource_profile_test(sequence) - create_must_support_test(sequence) - create_references_resolved_test(sequence) - end -end - -def mark_delayed_sequences(metadata) - metadata[:sequences].each do |sequence| - sequence[:delayed_sequence] = sequence[:resource] != 'Patient' && sequence[:searches].none? { |search| search[:names].include? 'patient' } - end - metadata[:delayed_sequences] = metadata[:sequences].select { |seq| seq[:delayed_sequence] } - metadata[:non_delayed_sequences] = metadata[:sequences].reject { |seq| seq[:delayed_sequence] } -end - -def find_first_search(sequence) - sequence[:searches].find { |search_param| search_param[:expectation] == 'SHALL' } || - sequence[:searches].find { |search_param| search_param[:expectation] == 'SHOULD' } -end - -def generate_sequence(sequence) - puts "Generating #{sequence[:name]}\n" - file_name = OUT_PATH + '/us_core_r4/' + sequence[:name].downcase + '_sequence.rb' - - template = ERB.new(File.read(File.join(__dir__, 'templates/sequence.rb.erb'))) - output = template.result_with_hash(sequence) - FileUtils.mkdir_p(OUT_PATH + '/us_core_r4') unless File.directory?(OUT_PATH + '/us_core_r4') - File.write(file_name, output) -end - -def create_read_test(sequence) - read_test = { - tests_that: "Can read #{sequence[:resource]} from the server", - index: sequence[:tests].length + 1, - link: 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - } - - read_test[:test_code] = %( - #{sequence[:resource].downcase}_id = @instance.resource_references.find { |reference| reference.resource_type == '#{sequence[:resource]}' }&.resource_id - skip 'No #{sequence[:resource]} references found from the prior searches' if #{sequence[:resource].downcase}_id.nil? - @#{sequence[:resource].downcase} = fetch_resource('#{sequence[:resource]}', #{sequence[:resource].downcase}_id) - @resources_found = !@#{sequence[:resource].downcase}.nil?) - sequence[:tests] << read_test -end - -def create_authorization_test(sequence) - authorization_test = { - tests_that: "Server rejects #{sequence[:resource]} search without authorization", - index: sequence[:tests].length + 1, - link: 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - } - - first_search = find_first_search(sequence) - return if first_search.nil? - - authorization_test[:test_code] = %( - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? -#{get_search_params(first_search[:names], sequence)} - reply = get_resource_by_params(versioned_resource_class('#{sequence[:resource]}'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply) - - sequence[:tests] << authorization_test -end - -def create_search_test(sequence, search_param) - search_test = { - tests_that: "Server returns expected results from #{sequence[:resource]} search by #{search_param[:names].join('+')}", - index: sequence[:tests].length + 1, - link: 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html', - optional: search_param[:expectation] != 'SHALL' - } - - is_first_search = search_param == find_first_search(sequence) - save_resource_ids_in_bundle_arguments = [ - "versioned_resource_class('#{sequence[:resource]}')", - 'reply', - validation_profile_uri(sequence) - ].compact.join(', ') - - search_test[:test_code] = - if is_first_search - %(#{get_search_params(search_param[:names], sequence)} - reply = get_resource_by_params(versioned_resource_class('#{sequence[:resource]}'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @#{sequence[:resource].downcase} = reply.try(:resource).try(:entry).try(:first).try(:resource) - @#{sequence[:resource].downcase}_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(#{save_resource_ids_in_bundle_arguments}) - save_delayed_sequence_references(@#{sequence[:resource].downcase}) - validate_search_reply(versioned_resource_class('#{sequence[:resource]}'), reply, search_params)) - else - %( - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@#{sequence[:resource].downcase}.nil?, 'Expected valid #{sequence[:resource]} resource to be present' -#{get_search_params(search_param[:names], sequence)} - reply = get_resource_by_params(versioned_resource_class('#{sequence[:resource]}'), search_params) - validate_search_reply(versioned_resource_class('#{sequence[:resource]}'), reply, search_params) - assert_response_ok(reply)) - end - search_test[:test_code] += get_comparator_searches(search_param[:names], sequence) - sequence[:tests] << search_test -end - -def create_interaction_test(sequence, interaction) - interaction_test = { - tests_that: "#{sequence[:resource]} #{interaction[:code]} resource supported", - index: sequence[:tests].length + 1, - link: 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - } - - interaction_test[:test_code] = %( - skip_if_not_supported(:#{sequence[:resource]}, [:#{interaction[:code]}]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_#{interaction[:code]}_reply(@#{sequence[:resource].downcase}, versioned_resource_class('#{sequence[:resource]}'))) - - sequence[:tests] << interaction_test -end - -def create_must_support_test(sequence) - test = { - tests_that: "At least one of every must support element is provided in any #{sequence[:resource]} for this patient.", - index: sequence[:tests].length + 1, - link: 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support', - test_code: '' - } - - test[:test_code] += %( - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @#{sequence[:resource].downcase}_ary&.any?) - - test[:test_code] += %( - must_support_confirmed = {}) - - extensions_list = [] - sequence[:must_supports].select { |must_support| must_support[:type] == 'extension' }.each do |extension| - extensions_list << "'#{extension[:id]}': '#{extension[:url]}'" - end - if extensions_list.any? - test[:test_code] += %( - extensions_list = { - #{extensions_list.join(",\n ")} - } - extensions_list.each do |id, url| - @#{sequence[:resource].downcase}_ary&.each do |resource| - must_support_confirmed[id] = true if resource.extension.any? { |extension| extension.url == url } - break if must_support_confirmed[id] - end - skip "Could not find \#{id} in any of the \#{@#{sequence[:resource].downcase}_ary.length} provided #{sequence[:resource]} resource(s)" unless must_support_confirmed[id] - end -) - end - elements_list = [] - sequence[:must_supports].select { |must_support| must_support[:type] == 'element' }.each do |element| - element[:path] = element[:path].gsub('.class', '.local_class') # class is mapped to local_class in fhir_models - elements_list << "'#{element[:path]}'" - end - - if elements_list.any? - test[:test_code] += %( - must_support_elements = [ - #{elements_list.join(",\n ")} - ] - must_support_elements.each do |path| - @#{sequence[:resource].downcase}_ary&.each do |resource| - truncated_path = path.gsub('#{sequence[:resource]}.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @#{sequence[:resource].downcase}_ary.length - - skip "Could not find \#{path} in any of the \#{resource_count} provided #{sequence[:resource]} resource(s)" unless must_support_confirmed[path] - end) - end - - test[:test_code] += %( - @instance.save!) - - sequence[:tests] << test -end - -def create_resource_profile_test(sequence) - test = { - tests_that: "#{sequence[:resource]} resources associated with Patient conform to US Core R4 profiles", - index: sequence[:tests].length + 1, - link: sequence[:profile] - } - test[:test_code] = %( - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('#{sequence[:resource]}'#{', ' + validation_profile_uri(sequence) if validation_profile_uri(sequence)})) - - sequence[:tests] << test -end - -def create_references_resolved_test(sequence) - test = { - tests_that: 'All references can be resolved', - index: sequence[:tests].length + 1, - link: 'https://www.hl7.org/fhir/DSTU2/references.html' - } - - test[:test_code] = %( - skip_if_not_supported(:#{sequence[:resource]}, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@#{sequence[:resource].downcase})) - sequence[:tests] << test -end - -def resolve_element_path(search_param_description) - type = search_param_description[:type] - element_path = search_param_description[:path] + get_value_path_by_type(type) - element_path.gsub('.class', '.local_class') # match fhir_models because class is protected keyword in ruby - path_parts = element_path.split('.') - resource_val = "@#{path_parts.shift.downcase}" - "resolve_element_from_path(#{resource_val}, '#{path_parts.join('.')}')" -end - -def get_value_path_by_type(type) - case type - when 'CodeableConcept' - '.coding.code' - when 'Reference' - '.reference' - when 'Period' - '.start' - when 'Identifier' - '.value' - when 'Coding' - '.code' - when 'HumanName' - '.family' - when 'Address' - '.city' - else - '' - end -end - -def param_value_name(param) - if param == '_id' - 'id_val' - else - param.tr('-', '_') + '_val' - end -end - -def get_search_params(search_parameters, sequence) - unless search_param_constants(search_parameters, sequence).nil? - return %( - search_params = { #{search_param_constants(search_parameters, sequence)} }\n) - end - search_values = [] - search_assignments = [] - search_parameters.each do |param| - variable_name = param_value_name(param) - variable_value = - if param == 'patient' - '@instance.patient_id' - else - resolve_element_path(sequence[:search_param_descriptions][param.to_sym]) - end - search_values << "#{variable_name} = #{variable_value}" - search_assignments << "'#{param}': #{variable_name}" - end - - search_code = '' - search_values.each do |value| - search_code += %( - #{value}) - end - search_code += %( - search_params = { #{search_assignments.join(', ')} } - search_params.each { |param, value| skip "Could not resolve \#{param} in given resource" if value.nil? } -) - search_code -end - -def get_comparator_searches(search_params, sequence) - search_code = '' - search_assignments = search_params.map do |param| - "'#{param}': #{param_value_name(param)}" - end - search_assignments_str = "{ #{search_assignments.join(', ')} }" - search_params.each do |param| - param_val_name = param_value_name(param) - param_info = sequence[:search_param_descriptions][param.to_sym] - comparators = param_info[:comparators].select { |_comparator, expectation| ['SHALL', 'SHOULD'].include? expectation } - next if comparators.empty? - - type = param_info[:type] - case type - when 'Period', 'date' - search_code += %(\n - [#{comparators.keys.map { |comparator| "'#{comparator}'" }.join(', ')}].each do |comparator| - comparator_val = date_comparator_value(comparator, #{param_val_name}) - comparator_search_params = #{search_assignments_str.gsub(param_val_name, 'comparator_val')} - reply = get_resource_by_params(versioned_resource_class('#{sequence[:resource]}'), comparator_search_params) - validate_search_reply(versioned_resource_class('#{sequence[:resource]}'), reply, comparator_search_params) - assert_response_ok(reply) - end) - end - end - search_code -end - -def search_param_constants(search_parameters, sequence) - return "patient: @instance.patient_id, category: 'assess-plan'" if search_parameters == ['patient', 'category'] && sequence[:resource] == 'CarePlan' - return "patient: @instance.patient_id, status: 'active'" if search_parameters == ['patient', 'status'] && sequence[:resource] == 'CareTeam' - return "'_id': @instance.patient_id" if search_parameters == ['_id'] && sequence[:resource] == 'Patient' - return "patient: @instance.patient_id, code: '72166-2'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:smoking_status] - return "patient: @instance.patient_id, category: 'laboratory'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:lab_results] - return "patient: @instance.patient_id, code: '77606-2'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pediatric_weight_height] - return "patient: @instance.patient_id, code: '59576-9'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pediatric_bmi_age] - return "patient: @instance.patient_id, category: 'LAB'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:diagnostic_report_lab] - return "patient: @instance.patient_id, code: 'LP29684-5'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:diagnostic_report_note] -end - -def create_search_validation(sequence) - search_validators = '' - sequence[:search_param_descriptions].each do |element, definition| - search_validators += %( - when '#{element}') - type = definition[:type] - path_parts = definition[:path].split('.') - path_parts = path_parts.map { |part| part == 'class' ? 'local_class' : part } - path_parts.shift - case type - when 'Period' - search_validators += %( - value_found = can_resolve_path(resource, '#{path_parts.join('.')}') do |period| - validate_period_search(value, period) - end - assert value_found, '#{element} on resource does not match #{element} requested' -) - when 'date' - search_validators += %( - value_found = can_resolve_path(resource, '#{path_parts.join('.')}') do |date| - validate_date_search(value, date) - end - assert value_found, '#{element} on resource does not match #{element} requested' -) - when 'HumanName' - # When a string search parameter refers to the types HumanName and Address, the search covers the elements of type string, and does not cover elements such as use and period - # https://www.hl7.org/fhir/search.html#string - search_validators += %( - value = value.downcase - value_found = can_resolve_path(resource, '#{path_parts.join('.')}') do |name| - name&.text&.start_with?(value) || - name&.family&.downcase&.include?(value) || - name&.given&.any? { |given| given.downcase.start_with?(value) } || - name&.prefix&.any? { |prefix| prefix.downcase.start_with?(value) } || - name&.suffix&.any? { |suffix| suffix.downcase.start_with?(value) } - end - assert value_found, '#{element} on resource does not match #{element} requested' -) - else - # searching by patient requires special case because we are searching by a resource identifier - # references can also be URL's, so we made need to resolve those url's - search_validators += - if ['subject', 'patient'].include? element.to_s - %( - value_found = can_resolve_path(resource, '#{path_parts.join('.') + get_value_path_by_type(type)}') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, '#{element} on resource does not match #{element} requested' -) - else - %( - value_found = can_resolve_path(resource, '#{path_parts.join('.') + get_value_path_by_type(type)}') { |value_in_resource| value_in_resource == value } - assert value_found, '#{element} on resource does not match #{element} requested' -) - end - end - end - - validate_function = '' - - unless search_validators.empty? - validate_function = %( - def validate_resource_item(resource, property, value) - case property -#{search_validators} - end - end -) - end - - validate_function -end - -def generate_module(module_info) - file_name = OUT_PATH + '/us_core_module.yml' - - template = ERB.new(File.read(File.join(__dir__, 'templates/module.yml.erb'))) - output = template.result_with_hash(module_info) - - File.write(file_name, output) -end - -run diff --git a/generators/uscore-r4/metadata_extractor.rb b/generators/uscore-r4/metadata_extractor.rb deleted file mode 100644 index 675cbd684..000000000 --- a/generators/uscore-r4/metadata_extractor.rb +++ /dev/null @@ -1,234 +0,0 @@ -# frozen_string_literal: true - -class MetadataExtractor - CAPABILITY_STATEMENT_URI = 'https://www.hl7.org/fhir/us/core/CapabilityStatement-us-core-server.json' - - def profile_uri(profile) - "http://hl7.org/fhir/us/core/StructureDefinition/#{profile}" - end - - def profile_json_uri(profile) - "https://www.hl7.org/fhir/us/core/StructureDefinition-#{profile}.json" - end - - def search_param_uri(resource, param) - param = 'id' if param == '_id' - "https://www.hl7.org/fhir/us/core/SearchParameter-us-core-#{resource.downcase}-#{param}.json" - end - - def get_json_from_uri(uri) - filename = File.join(RESOURCE_PATH, uri.split('/').last) - unless File.exist?(filename) - puts "Downloading #{uri}\n" - json_result = Net::HTTP.get(URI(uri)) - JSON.parse(json_result) - File.write(filename, json_result) - end - - JSON.parse(File.read(filename)) - end - - def extract_metadata - capability_statement_json = get_json_from_uri(CAPABILITY_STATEMENT_URI) - @metadata = extract_metadata_from_resources(capability_statement_json['rest'][0]['resource']) - add_special_cases - @metadata - end - - def build_new_sequence(resource, profile) - base_name = profile.split('StructureDefinition/')[1] - profile_json = get_json_from_uri(profile_json_uri(base_name)) - profile_title = profile_json['title'].gsub(/US\s*Core\s*/, '').gsub(/\s*Profile/, '').strip - { - name: base_name.tr('-', '_'), - classname: base_name - .split('-') - .map(&:capitalize) - .join - .gsub('UsCore', 'USCoreR4') + 'Sequence', - resource: resource['type'], - profile: profile_uri(base_name), # link in capability statement is incorrect, - profile_json: profile_json_uri(base_name), - title: profile_title, - interactions: [], - searches: [], - search_param_descriptions: {}, - element_descriptions: {}, - must_supports: [], - tests: [] - } - end - - def extract_metadata_from_resources(resources) - data = { - sequences: [] - } - - resources.each do |resource| - resource['supportedProfile'].each do |supported_profile| - new_sequence = build_new_sequence(resource, supported_profile) - - add_basic_searches(resource, new_sequence) - add_combo_searches(resource, new_sequence) - add_interactions(resource, new_sequence) - - profile_definition = get_json_from_uri(new_sequence[:profile_json]) - add_must_support_elements(profile_definition, new_sequence) - add_search_param_descriptions(profile_definition, new_sequence) - add_element_definitions(profile_definition, new_sequence) - - data[:sequences] << new_sequence - end - end - data - end - - def add_basic_searches(resource, sequence) - basic_searches = resource['searchParam'] - basic_searches&.each do |search_param| - new_search_param = { - names: [search_param['name']], - expectation: search_param['extension'][0]['valueCode'] - } - sequence[:searches] << new_search_param - sequence[:search_param_descriptions][search_param['name'].to_sym] = {} - end - end - - def add_combo_searches(resource, sequence) - search_combos = resource['extension'] || [] - search_combo_url = 'http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination' - search_combos - .select { |combo| combo['url'] == search_combo_url } - .each do |combo| - combo_params = combo['extension'] - new_search_combo = { - expectation: combo_params[0]['valueCode'], - names: [] - } - combo_params.each do |param| - next unless param.key?('valueString') - - new_search_combo[:names] << param['valueString'] - sequence[:search_param_descriptions][param['valueString'].to_sym] = {} - end - sequence[:searches] << new_search_combo - end - end - - def add_interactions(resource, sequence) - interactions = resource['interaction'] - interactions&.each do |interaction| - new_interaction = { - code: interaction['code'], - expectation: interaction['extension'][0]['valueCode'] - } - sequence[:interactions] << new_interaction - end - end - - def add_must_support_elements(profile_definition, sequence) - profile_definition['snapshot']['element'].select { |el| el['mustSupport'] }.each do |element| - if element['path'].end_with? 'extension' - sequence[:must_supports] << - { - type: 'extension', - id: element['id'], - path: element['path'], - url: element['type'].first['profile'].first - } - next - end - - path = element['path'] - if path.include? '[x]' - choice_el = profile_definition['snapshot']['element'].find { |el| el['id'] == (path.split('[x]').first + '[x]') } - choice_el['type'].each do |type| - sequence[:must_supports] << - { - type: 'element', - path: path.gsub('[x]', type['code'].slice(0).capitalize + type['code'].slice(1..-1)) - } - end - else - sequence[:must_supports] << - { - type: 'element', - path: path - } - end - end - end - - def add_search_param_descriptions(profile_definition, sequence) - sequence[:search_param_descriptions].each_key do |param| - search_param_definition = get_json_from_uri(search_param_uri(sequence[:resource], param.to_s)) - path_parts = search_param_definition['xpath'].split('/f:') - if param.to_s != '_id' - path_parts[0] = sequence[:resource] - path = path_parts.join('.') - else - path = path_parts[0] - end - profile_element = profile_definition['snapshot']['element'].select { |el| el['id'] == path }.first - param_metadata = { - path: path, - comparators: {} - } - if !profile_element.nil? - param_metadata[:type] = profile_element['type'].first['code'] - param_metadata[:contains_multiple] = (profile_element['max'] == '*') - else - # search is a variable type eg.) Condition.onsetDateTime - element in profile def is Condition.onset[x] - param_metadata[:type] = search_param_definition['type'] - param_metadata[:contains_multiple] = false - end - search_param_definition['comparator']&.each_with_index do |comparator, index| - expectation = search_param_definition['_comparator'][index]['extension'].first['valueCode'] - param_metadata[:comparators][comparator.to_sym] = expectation - end - sequence[:search_param_descriptions][param] = param_metadata - end - end - - def add_element_definitions(profile_definition, sequence) - profile_definition['snapshot']['element'].each do |element| - next if element['type'].nil? # base profile - - path = element['id'] - if path.include? '[x]' - element['type'].each do |type| - sequence[:element_descriptions][path.gsub('[x]', type['code']).downcase.to_sym] = { type: type['code'], contains_multiple: element['max'] == '*' } - end - else - sequence[:element_descriptions][path.downcase.to_sym] = { type: element['type'].first['code'], contains_multiple: element['max'] == '*' } - end - end - end - - def add_special_cases - category_first_profiles = [ - PROFILE_URIS[:diagnostic_report_lab], - PROFILE_URIS[:lab_results], - PROFILE_URIS[:diagnostic_report_note] - ] - - # search by patient first - @metadata[:sequences].each do |sequence| - patient_search = sequence[:searches].select { |param| param[:names] == ['patient'] } &.first - unless patient_search.nil? - sequence[:searches].delete(patient_search) - sequence[:searches].unshift(patient_search) - end - end - - # search by patient + category first for these specific profiles - @metadata[:sequences].select { |sequence| category_first_profiles.include?(sequence[:profile]) }.each do |sequence| - category_search = sequence[:searches].select { |param| param[:names] == ['patient', 'category'] } &.first - unless category_search.nil? - sequence[:searches].delete(category_search) - sequence[:searches].unshift(category_search) - end - end - end -end diff --git a/lib/app/modules/onc_program_r4_module.yml b/lib/app/modules/onc_program_r4_module.yml index bf7e9e7b0..2410658b6 100644 --- a/lib/app/modules/onc_program_r4_module.yml +++ b/lib/app/modules/onc_program_r4_module.yml @@ -109,45 +109,29 @@ test_sets: - patient_id - token sequences: - - sequence: USCoreR4PatientSequence - title: Patient - - sequence: USCoreR4AllergyintoleranceSequence - title: Allergy Intolerance - - sequence: USCoreR4CareplanSequence - title: Careplan - - sequence: USCoreR4CareteamSequence - title: Careteam - - sequence: USCoreR4ConditionSequence - title: Condition - - sequence: USCoreR4DeviceSequence - title: Device - - sequence: USCoreR4DiagnosticreportNoteSequence - title: Diagnostic Report Note - - sequence: USCoreR4DiagnosticreportLabSequence - title: Diagnostic Report Lab - - sequence: USCoreR4DocumentreferenceSequence - title: Document Reference - - sequence: USCoreR4EncounterSequence - title: Encounter - - sequence: USCoreR4GoalSequence - title: Goal - - sequence: USCoreR4ImmunizationSequence - title: Immunization - - sequence: USCoreR4MedicationSequence - title: Medication - - sequence: USCoreR4MedicationrequestSequence - title: Medication Request - - sequence: USCoreR4MedicationstatementSequence - title: Medication Statement - - sequence: USCoreR4SmokingstatusSequence - title: Smoking Status - - sequence: PediatricWeightForHeightSequence - title: Pediatric Weight for Height - - sequence: USCoreR4ObservationLabSequence - title: Observation Lab - - sequence: PediatricBmiForAgeSequence - title: BMI For Age - - sequence: USCoreR4ProcedureSequence - title: Procedure - - sequence: R4ProvenanceSequence - title: Provenance + - USCore300AllergyintoleranceSequence + - USCore300CareplanSequence + - USCore300CareteamSequence + - USCore300ConditionSequence + - USCore300DeviceSequence + - USCore300DiagnosticreportNoteSequence + - USCore300DiagnosticreportLabSequence + - USCore300DocumentreferenceSequence + - USCore300EncounterSequence + - USCore300GoalSequence + - USCore300ImmunizationSequence + - USCore300MedicationrequestSequence + - USCore300MedicationstatementSequence + - USCore300SmokingstatusSequence + - USCore300PediatricWeightForHeightSequence + - USCore300ObservationLabSequence + - USCore300PediatricBmiForAgeSequence + - USCore300PatientSequence + - USCore300ProcedureSequence + - R4ProvenanceSequence + - USCoreR4ClinicalNotesSequence + - USCore300LocationSequence + - USCore300MedicationSequence + - USCore300OrganizationSequence + - USCore300PractitionerSequence + - USCore300PractitionerroleSequence \ No newline at end of file diff --git a/lib/app/modules/us_core_module.yml b/lib/app/modules/us_core_module.yml deleted file mode 100644 index cfb5e4225..000000000 --- a/lib/app/modules/us_core_module.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: us_core_r4 -title: US Core R4 -description : US Core R4 -fhir_version: r4 -default_test_set: ad_hoc_testing -test_sets: - ad_hoc_testing: - view: default - tests: - - name: Discovery - sequences: - - UsCoreR4CapabilityStatementSequence - - SMARTDiscoverySequence - run_all: true - - name: Authorization and Authentication - sequences: - - DynamicRegistrationSequence - - ManualRegistrationSequence - - StandaloneLaunchSequence - - EHRLaunchSequence - - name: US Core R4 Patient Based Profiles - run_all: true - sequences: - - USCoreR4AllergyintoleranceSequence - - USCoreR4CareplanSequence - - USCoreR4CareteamSequence - - USCoreR4ConditionSequence - - USCoreR4DeviceSequence - - USCoreR4DiagnosticreportNoteSequence - - USCoreR4DiagnosticreportLabSequence - - USCoreR4DocumentreferenceSequence - - USCoreR4EncounterSequence - - USCoreR4GoalSequence - - USCoreR4ImmunizationSequence - - USCoreR4MedicationrequestSequence - - USCoreR4MedicationstatementSequence - - USCoreR4SmokingstatusSequence - - PediatricWeightForHeightSequence - - USCoreR4ObservationLabSequence - - PediatricBmiForAgeSequence - - USCoreR4PatientSequence - - USCoreR4ProcedureSequence - - R4ProvenanceSequence - - USCoreR4ClinicalNotesSequence - - USCoreR4LocationSequence - - USCoreR4MedicationSequence - - USCoreR4OrganizationSequence - - USCoreR4PractitionerSequence - - USCoreR4PractitionerroleSequence diff --git a/lib/app/modules/uscore_v3.0.0/pediatric_bmi_for_age_sequence.rb b/lib/app/modules/uscore_v3.0.0/pediatric_bmi_for_age_sequence.rb new file mode 100644 index 000000000..32f0e6cbb --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/pediatric_bmi_for_age_sequence.rb @@ -0,0 +1,334 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300PediatricBmiForAgeSequence < SequenceBase + title 'Pediatric BMI for Age Observation Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, code: '59576-9' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, code: '59576-9' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_bmi_age]) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_bmi_age]) + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.category', + 'Observation.category', + 'Observation.category.coding', + 'Observation.category.coding.system', + 'Observation.category.coding.code', + 'Observation.subject', + 'Observation.effectiveDateTime', + 'Observation.effectivePeriod', + 'Observation.valueQuantity.value', + 'Observation.valueQuantity.unit', + 'Observation.valueQuantity.system', + 'Observation.valueQuantity.code', + 'Observation.dataAbsentReason', + 'Observation.component', + 'Observation.component.code', + 'Observation.component.valueQuantity', + 'Observation.component.valueCodeableConcept', + 'Observation.component.valueString', + 'Observation.component.valueBoolean', + 'Observation.component.valueInteger', + 'Observation.component.valueRange', + 'Observation.component.valueRatio', + 'Observation.component.valueSampledData', + 'Observation.component.valueTime', + 'Observation.component.valueDateTime', + 'Observation.component.valuePeriod', + 'Observation.component.dataAbsentReason' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/pediatric_weight_for_height_sequence.rb b/lib/app/modules/uscore_v3.0.0/pediatric_weight_for_height_sequence.rb new file mode 100644 index 000000000..9172bf676 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/pediatric_weight_for_height_sequence.rb @@ -0,0 +1,334 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300PediatricWeightForHeightSequence < SequenceBase + title 'Pediatric Weight for Height Observation Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, code: '77606-2' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, code: '77606-2' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_weight_height]) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_weight_height]) + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.category', + 'Observation.category', + 'Observation.category.coding', + 'Observation.category.coding.system', + 'Observation.category.coding.code', + 'Observation.subject', + 'Observation.effectiveDateTime', + 'Observation.effectivePeriod', + 'Observation.valueQuantity.value', + 'Observation.valueQuantity.unit', + 'Observation.valueQuantity.system', + 'Observation.valueQuantity.code', + 'Observation.dataAbsentReason', + 'Observation.component', + 'Observation.component.code', + 'Observation.component.valueQuantity', + 'Observation.component.valueCodeableConcept', + 'Observation.component.valueString', + 'Observation.component.valueBoolean', + 'Observation.component.valueInteger', + 'Observation.component.valueRange', + 'Observation.component.valueRatio', + 'Observation.component.valueSampledData', + 'Observation.component.valueTime', + 'Observation.component.valueDateTime', + 'Observation.component.valuePeriod', + 'Observation.component.dataAbsentReason' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_allergyintolerance_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_allergyintolerance_sequence.rb new file mode 100644 index 000000000..c47fd456d --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_allergyintolerance_sequence.rb @@ -0,0 +1,214 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300AllergyintoleranceSequence < SequenceBase + title 'AllergyIntolerance Tests' + + description 'Verify that AllergyIntolerance resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'AllergyIntolerance' # change me + + requires :token, :patient_id + conformance_supports :AllergyIntolerance + + def validate_resource_item(resource, property, value) + case property + + when 'clinical-status' + value_found = can_resolve_path(resource, 'clinicalStatus.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'clinical-status on resource does not match clinical-status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects AllergyIntolerance search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from AllergyIntolerance search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @allergyintolerance = reply.try(:resource).try(:entry).try(:first).try(:resource) + @allergyintolerance_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('AllergyIntolerance'), reply) + save_delayed_sequence_references(@allergyintolerance) + validate_search_reply(versioned_resource_class('AllergyIntolerance'), reply, search_params) + end + + test 'Server returns expected results from AllergyIntolerance search by patient+clinical-status' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@allergyintolerance.nil?, 'Expected valid AllergyIntolerance resource to be present' + + patient_val = @instance.patient_id + clinical_status_val = resolve_element_from_path(@allergyintolerance, 'clinicalStatus.coding.code') + search_params = { 'patient': patient_val, 'clinical-status': clinical_status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) + validate_search_reply(versioned_resource_class('AllergyIntolerance'), reply, search_params) + assert_response_ok(reply) + end + + test 'AllergyIntolerance read resource supported' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:AllergyIntolerance, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) + end + + test 'AllergyIntolerance vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:AllergyIntolerance, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) + end + + test 'AllergyIntolerance history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:AllergyIntolerance, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) + end + + test 'AllergyIntolerance resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('AllergyIntolerance') + end + + test 'At least one of every must support element is provided in any AllergyIntolerance for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @allergyintolerance_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'AllergyIntolerance.clinicalStatus', + 'AllergyIntolerance.verificationStatus', + 'AllergyIntolerance.code', + 'AllergyIntolerance.patient' + ] + must_support_elements.each do |path| + @allergyintolerance_ary&.each do |resource| + truncated_path = path.gsub('AllergyIntolerance.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @allergyintolerance_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided AllergyIntolerance resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:AllergyIntolerance, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@allergyintolerance) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_careplan_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_careplan_sequence.rb new file mode 100644 index 000000000..c85a6da1d --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_careplan_sequence.rb @@ -0,0 +1,289 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300CareplanSequence < SequenceBase + title 'CarePlan Tests' + + description 'Verify that CarePlan resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'CarePlan' # change me + + requires :token, :patient_id + conformance_supports :CarePlan + + def validate_resource_item(resource, property, value) + case property + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'date' + value_found = can_resolve_path(resource, 'period') do |period| + validate_period_search(value, period) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects CarePlan search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, category: 'assess-plan' } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from CarePlan search by patient+category' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, category: 'assess-plan' } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @careplan = reply.try(:resource).try(:entry).try(:first).try(:resource) + @careplan_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('CarePlan'), reply) + save_delayed_sequence_references(@careplan) + validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) + end + + test 'Server returns expected results from CarePlan search by patient+category+status' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@careplan, 'category.coding.code') + status_val = resolve_element_from_path(@careplan, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from CarePlan search by patient+category+status+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@careplan, 'category.coding.code') + status_val = resolve_element_from_path(@careplan, 'status') + date_val = resolve_element_from_path(@careplan, 'period.start') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('CarePlan'), comparator_search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from CarePlan search by patient+category+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@careplan, 'category.coding.code') + date_val = resolve_element_from_path(@careplan, 'period.start') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('CarePlan'), comparator_search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'CarePlan read resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CarePlan, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@careplan, versioned_resource_class('CarePlan')) + end + + test 'CarePlan vread resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CarePlan, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@careplan, versioned_resource_class('CarePlan')) + end + + test 'CarePlan history resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CarePlan, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@careplan, versioned_resource_class('CarePlan')) + end + + test 'CarePlan resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '09' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('CarePlan') + end + + test 'At least one of every must support element is provided in any CarePlan for this patient.' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @careplan_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'CarePlan.text', + 'CarePlan.text.status', + 'CarePlan.status', + 'CarePlan.intent', + 'CarePlan.category', + 'CarePlan.category', + 'CarePlan.subject' + ] + must_support_elements.each do |path| + @careplan_ary&.each do |resource| + truncated_path = path.gsub('CarePlan.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @careplan_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided CarePlan resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '11' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CarePlan, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@careplan) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_careteam_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_careteam_sequence.rb new file mode 100644 index 000000000..8cd10c4bf --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_careteam_sequence.rb @@ -0,0 +1,188 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300CareteamSequence < SequenceBase + title 'CareTeam Tests' + + description 'Verify that CareTeam resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'CareTeam' # change me + + requires :token, :patient_id + conformance_supports :CareTeam + + def validate_resource_item(resource, property, value) + case property + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects CareTeam search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, status: 'active' } + + reply = get_resource_by_params(versioned_resource_class('CareTeam'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from CareTeam search by patient+status' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, status: 'active' } + + reply = get_resource_by_params(versioned_resource_class('CareTeam'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @careteam = reply.try(:resource).try(:entry).try(:first).try(:resource) + @careteam_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('CareTeam'), reply) + save_delayed_sequence_references(@careteam) + validate_search_reply(versioned_resource_class('CareTeam'), reply, search_params) + end + + test 'CareTeam read resource supported' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CareTeam, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@careteam, versioned_resource_class('CareTeam')) + end + + test 'CareTeam vread resource supported' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CareTeam, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@careteam, versioned_resource_class('CareTeam')) + end + + test 'CareTeam history resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CareTeam, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@careteam, versioned_resource_class('CareTeam')) + end + + test 'CareTeam resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '06' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('CareTeam') + end + + test 'At least one of every must support element is provided in any CareTeam for this patient.' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @careteam_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'CareTeam.status', + 'CareTeam.subject', + 'CareTeam.participant', + 'CareTeam.participant.role', + 'CareTeam.participant.member' + ] + must_support_elements.each do |path| + @careteam_ary&.each do |resource| + truncated_path = path.gsub('CareTeam.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @careteam_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided CareTeam resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '08' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CareTeam, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@careteam) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_condition_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_condition_sequence.rb new file mode 100644 index 000000000..8793bb004 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_condition_sequence.rb @@ -0,0 +1,306 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300ConditionSequence < SequenceBase + title 'Condition Tests' + + description 'Verify that Condition resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Condition' # change me + + requires :token, :patient_id + conformance_supports :Condition + + def validate_resource_item(resource, property, value) + case property + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'clinical-status' + value_found = can_resolve_path(resource, 'clinicalStatus.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'clinical-status on resource does not match clinical-status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'onset-date' + value_found = can_resolve_path(resource, 'onsetDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'onset-date on resource does not match onset-date requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Condition search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Condition search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @condition = reply.try(:resource).try(:entry).try(:first).try(:resource) + @condition_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Condition'), reply) + save_delayed_sequence_references(@condition) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + end + + test 'Server returns expected results from Condition search by patient+onset-date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@condition.nil?, 'Expected valid Condition resource to be present' + + patient_val = @instance.patient_id + onset_date_val = resolve_element_from_path(@condition, 'onsetDateTime') + search_params = { 'patient': patient_val, 'onset-date': onset_date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, onset_date_val) + comparator_search_params = { 'patient': patient_val, 'onset-date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Condition'), comparator_search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Condition search by patient+category' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@condition.nil?, 'Expected valid Condition resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@condition, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Condition search by patient+code' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@condition.nil?, 'Expected valid Condition resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@condition, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Condition search by patient+clinical-status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@condition.nil?, 'Expected valid Condition resource to be present' + + patient_val = @instance.patient_id + clinical_status_val = resolve_element_from_path(@condition, 'clinicalStatus.coding.code') + search_params = { 'patient': patient_val, 'clinical-status': clinical_status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + assert_response_ok(reply) + end + + test 'Condition read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Condition, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@condition, versioned_resource_class('Condition')) + end + + test 'Condition vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Condition, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@condition, versioned_resource_class('Condition')) + end + + test 'Condition history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Condition, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@condition, versioned_resource_class('Condition')) + end + + test 'Condition resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Condition') + end + + test 'At least one of every must support element is provided in any Condition for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @condition_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Condition.clinicalStatus', + 'Condition.verificationStatus', + 'Condition.category', + 'Condition.code', + 'Condition.subject' + ] + must_support_elements.each do |path| + @condition_ary&.each do |resource| + truncated_path = path.gsub('Condition.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @condition_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Condition resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Condition, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@condition) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_device_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_device_sequence.rb new file mode 100644 index 000000000..d978b7e64 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_device_sequence.rb @@ -0,0 +1,215 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300DeviceSequence < SequenceBase + title 'Device Tests' + + description 'Verify that Device resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Device' # change me + + requires :token, :patient_id + conformance_supports :Device + + def validate_resource_item(resource, property, value) + case property + + when 'patient' + value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'type' + value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'type on resource does not match type requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Device search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Device'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Device search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Device'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @device = reply.try(:resource).try(:entry).try(:first).try(:resource) + @device_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Device'), reply) + save_delayed_sequence_references(@device) + validate_search_reply(versioned_resource_class('Device'), reply, search_params) + end + + test 'Server returns expected results from Device search by patient+type' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@device.nil?, 'Expected valid Device resource to be present' + + patient_val = @instance.patient_id + type_val = resolve_element_from_path(@device, 'type.coding.code') + search_params = { 'patient': patient_val, 'type': type_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Device'), search_params) + validate_search_reply(versioned_resource_class('Device'), reply, search_params) + assert_response_ok(reply) + end + + test 'Device read resource supported' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Device, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@device, versioned_resource_class('Device')) + end + + test 'Device vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Device, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@device, versioned_resource_class('Device')) + end + + test 'Device history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Device, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@device, versioned_resource_class('Device')) + end + + test 'Device resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-device' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Device') + end + + test 'At least one of every must support element is provided in any Device for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @device_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Device.udiCarrier', + 'Device.udiCarrier.carrierAIDC', + 'Device.udiCarrier.carrierHRF', + 'Device.type', + 'Device.patient' + ] + must_support_elements.each do |path| + @device_ary&.each do |resource| + truncated_path = path.gsub('Device.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @device_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Device resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Device, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@device) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_diagnosticreport_lab_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_diagnosticreport_lab_sequence.rb new file mode 100644 index 000000000..b40e8fc67 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_diagnosticreport_lab_sequence.rb @@ -0,0 +1,383 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300DiagnosticreportLabSequence < SequenceBase + title 'DiagnosticReport for Laboratory Results Reporting Tests' + + description 'Verify that DiagnosticReport resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'DiagnosticReport' # change me + + requires :token, :patient_id + conformance_supports :DiagnosticReport + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects DiagnosticReport search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, category: 'LAB' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from DiagnosticReport search by patient+category' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, category: 'LAB' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @diagnosticreport = reply.try(:resource).try(:entry).try(:first).try(:resource) + @diagnosticreport_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('DiagnosticReport'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_lab]) + save_delayed_sequence_references(@diagnosticreport) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + end + + test 'Server returns expected results from DiagnosticReport search by patient+code' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from DiagnosticReport search by patient+code+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from DiagnosticReport search by patient+status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@diagnosticreport, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + search_params = { patient: @instance.patient_id, category: 'LAB' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category+date' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'DiagnosticReport create resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:create]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_create_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport read resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport vread resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport history resource supported' do + metadata do + id '12' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '13' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('DiagnosticReport', Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_lab]) + end + + test 'At least one of every must support element is provided in any DiagnosticReport for this patient.' do + metadata do + id '14' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @diagnosticreport_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'DiagnosticReport.status', + 'DiagnosticReport.category', + 'DiagnosticReport.code', + 'DiagnosticReport.subject', + 'DiagnosticReport.effectiveDateTime', + 'DiagnosticReport.effectivePeriod', + 'DiagnosticReport.issued', + 'DiagnosticReport.performer', + 'DiagnosticReport.result', + 'DiagnosticReport.media', + 'DiagnosticReport.presentedForm' + ] + must_support_elements.each do |path| + @diagnosticreport_ary&.each do |resource| + truncated_path = path.gsub('DiagnosticReport.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @diagnosticreport_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided DiagnosticReport resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '15' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@diagnosticreport) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_diagnosticreport_note_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_diagnosticreport_note_sequence.rb new file mode 100644 index 000000000..b915e3f39 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_diagnosticreport_note_sequence.rb @@ -0,0 +1,383 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300DiagnosticreportNoteSequence < SequenceBase + title 'DiagnosticReport for Report and Note exchange Tests' + + description 'Verify that DiagnosticReport resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'DiagnosticReport' # change me + + requires :token, :patient_id + conformance_supports :DiagnosticReport + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects DiagnosticReport search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, code: 'LP29684-5' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from DiagnosticReport search by patient+category' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, code: 'LP29684-5' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @diagnosticreport = reply.try(:resource).try(:entry).try(:first).try(:resource) + @diagnosticreport_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('DiagnosticReport'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_note]) + save_delayed_sequence_references(@diagnosticreport) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + end + + test 'Server returns expected results from DiagnosticReport search by patient+code' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from DiagnosticReport search by patient+code+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from DiagnosticReport search by patient+status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@diagnosticreport, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + search_params = { patient: @instance.patient_id, code: 'LP29684-5' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category+date' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'DiagnosticReport create resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:create]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_create_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport read resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport vread resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport history resource supported' do + metadata do + id '12' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '13' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('DiagnosticReport', Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_note]) + end + + test 'At least one of every must support element is provided in any DiagnosticReport for this patient.' do + metadata do + id '14' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @diagnosticreport_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'DiagnosticReport.status', + 'DiagnosticReport.category', + 'DiagnosticReport.code', + 'DiagnosticReport.subject', + 'DiagnosticReport.encounter', + 'DiagnosticReport.effectiveDateTime', + 'DiagnosticReport.effectivePeriod', + 'DiagnosticReport.issued', + 'DiagnosticReport.performer', + 'DiagnosticReport.media', + 'DiagnosticReport.presentedForm' + ] + must_support_elements.each do |path| + @diagnosticreport_ary&.each do |resource| + truncated_path = path.gsub('DiagnosticReport.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @diagnosticreport_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided DiagnosticReport resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '15' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@diagnosticreport) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_documentreference_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_documentreference_sequence.rb new file mode 100644 index 000000000..af3bda04d --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_documentreference_sequence.rb @@ -0,0 +1,384 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300DocumentreferenceSequence < SequenceBase + title 'DocumentReference Tests' + + description 'Verify that DocumentReference resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'DocumentReference' # change me + + requires :token, :patient_id + conformance_supports :DocumentReference + + def validate_resource_item(resource, property, value) + case property + + when '_id' + value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } + assert value_found, '_id on resource does not match _id requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'type' + value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'type on resource does not match type requested' + + when 'date' + value_found = can_resolve_path(resource, 'date') { |value_in_resource| value_in_resource == value } + assert value_found, 'date on resource does not match date requested' + + when 'period' + value_found = can_resolve_path(resource, 'context.period') do |period| + validate_period_search(value, period) + end + assert value_found, 'period on resource does not match period requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects DocumentReference search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from DocumentReference search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @documentreference = reply.try(:resource).try(:entry).try(:first).try(:resource) + @documentreference_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('DocumentReference'), reply) + save_delayed_sequence_references(@documentreference) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + end + + test 'Server returns expected results from DocumentReference search by _id' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + id_val = resolve_element_from_path(@documentreference, 'id') + search_params = { '_id': id_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+category' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@documentreference, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+category+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@documentreference, 'category.coding.code') + date_val = resolve_element_from_path(@documentreference, 'date') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+type' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + type_val = resolve_element_from_path(@documentreference, 'type.coding.code') + search_params = { 'patient': patient_val, 'type': type_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+status' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@documentreference, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+type+period' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + type_val = resolve_element_from_path(@documentreference, 'type.coding.code') + period_val = resolve_element_from_path(@documentreference, 'context.period.start') + search_params = { 'patient': patient_val, 'type': type_val, 'period': period_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, period_val) + comparator_search_params = { 'patient': patient_val, 'type': type_val, 'period': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), comparator_search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'DocumentReference create resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:create]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_create_reply(@documentreference, versioned_resource_class('DocumentReference')) + end + + test 'DocumentReference read resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@documentreference, versioned_resource_class('DocumentReference')) + end + + test 'DocumentReference vread resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@documentreference, versioned_resource_class('DocumentReference')) + end + + test 'DocumentReference history resource supported' do + metadata do + id '12' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@documentreference, versioned_resource_class('DocumentReference')) + end + + test 'DocumentReference resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '13' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('DocumentReference') + end + + test 'At least one of every must support element is provided in any DocumentReference for this patient.' do + metadata do + id '14' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @documentreference_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'DocumentReference.identifier', + 'DocumentReference.status', + 'DocumentReference.type', + 'DocumentReference.category', + 'DocumentReference.subject', + 'DocumentReference.date', + 'DocumentReference.author', + 'DocumentReference.custodian', + 'DocumentReference.content', + 'DocumentReference.content.attachment', + 'DocumentReference.content.attachment.contentType', + 'DocumentReference.content.attachment.data', + 'DocumentReference.content.attachment.url', + 'DocumentReference.content.format', + 'DocumentReference.context', + 'DocumentReference.context.encounter', + 'DocumentReference.context.period' + ] + must_support_elements.each do |path| + @documentreference_ary&.each do |resource| + truncated_path = path.gsub('DocumentReference.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @documentreference_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided DocumentReference resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '15' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@documentreference) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_encounter_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_encounter_sequence.rb new file mode 100644 index 000000000..c16d21425 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_encounter_sequence.rb @@ -0,0 +1,368 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300EncounterSequence < SequenceBase + title 'Encounter Tests' + + description 'Verify that Encounter resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Encounter' # change me + + requires :token, :patient_id + conformance_supports :Encounter + + def validate_resource_item(resource, property, value) + case property + + when '_id' + value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } + assert value_found, '_id on resource does not match _id requested' + + when 'class' + value_found = can_resolve_path(resource, 'local_class.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'class on resource does not match class requested' + + when 'date' + value_found = can_resolve_path(resource, 'period') do |period| + validate_period_search(value, period) + end + assert value_found, 'date on resource does not match date requested' + + when 'identifier' + value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } + assert value_found, 'identifier on resource does not match identifier requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'type' + value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'type on resource does not match type requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Encounter search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Encounter search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @encounter = reply.try(:resource).try(:entry).try(:first).try(:resource) + @encounter_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Encounter'), reply) + save_delayed_sequence_references(@encounter) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + end + + test 'Server returns expected results from Encounter search by _id' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + id_val = resolve_element_from_path(@encounter, 'id') + search_params = { '_id': id_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Encounter search by date+patient' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + date_val = resolve_element_from_path(@encounter, 'period.start') + patient_val = @instance.patient_id + search_params = { 'date': date_val, 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'date': comparator_val, 'patient': patient_val } + reply = get_resource_by_params(versioned_resource_class('Encounter'), comparator_search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Encounter search by identifier' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + identifier_val = resolve_element_from_path(@encounter, 'identifier.value') + search_params = { 'identifier': identifier_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Encounter search by patient+status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@encounter, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Encounter search by class+patient' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + class_val = resolve_element_from_path(@encounter, 'class.code') + patient_val = @instance.patient_id + search_params = { 'class': class_val, 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Encounter search by patient+type' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + patient_val = @instance.patient_id + type_val = resolve_element_from_path(@encounter, 'type.coding.code') + search_params = { 'patient': patient_val, 'type': type_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Encounter read resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Encounter, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@encounter, versioned_resource_class('Encounter')) + end + + test 'Encounter vread resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Encounter, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@encounter, versioned_resource_class('Encounter')) + end + + test 'Encounter history resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Encounter, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@encounter, versioned_resource_class('Encounter')) + end + + test 'Encounter resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '12' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Encounter') + end + + test 'At least one of every must support element is provided in any Encounter for this patient.' do + metadata do + id '13' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @encounter_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Encounter.identifier', + 'Encounter.identifier.system', + 'Encounter.identifier.value', + 'Encounter.status', + 'Encounter.local_class', + 'Encounter.type', + 'Encounter.subject', + 'Encounter.participant', + 'Encounter.participant.type', + 'Encounter.participant.period', + 'Encounter.participant.individual', + 'Encounter.period', + 'Encounter.reasonCode', + 'Encounter.hospitalization', + 'Encounter.hospitalization.dischargeDisposition', + 'Encounter.location', + 'Encounter.location.location' + ] + must_support_elements.each do |path| + @encounter_ary&.each do |resource| + truncated_path = path.gsub('Encounter.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @encounter_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Encounter resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '14' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Encounter, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@encounter) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_goal_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_goal_sequence.rb new file mode 100644 index 000000000..31fc5f9be --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_goal_sequence.rb @@ -0,0 +1,253 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300GoalSequence < SequenceBase + title 'Goal Tests' + + description 'Verify that Goal resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Goal' # change me + + requires :token, :patient_id + conformance_supports :Goal + + def validate_resource_item(resource, property, value) + case property + + when 'lifecycle-status' + value_found = can_resolve_path(resource, 'lifecycleStatus') { |value_in_resource| value_in_resource == value } + assert value_found, 'lifecycle-status on resource does not match lifecycle-status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'target-date' + value_found = can_resolve_path(resource, 'target.dueDate') do |date| + validate_date_search(value, date) + end + assert value_found, 'target-date on resource does not match target-date requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Goal search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Goal search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @goal = reply.try(:resource).try(:entry).try(:first).try(:resource) + @goal_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Goal'), reply) + save_delayed_sequence_references(@goal) + validate_search_reply(versioned_resource_class('Goal'), reply, search_params) + end + + test 'Server returns expected results from Goal search by patient+target-date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@goal.nil?, 'Expected valid Goal resource to be present' + + patient_val = @instance.patient_id + target_date_val = resolve_element_from_path(@goal, 'target.dueDate') + search_params = { 'patient': patient_val, 'target-date': target_date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) + validate_search_reply(versioned_resource_class('Goal'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, target_date_val) + comparator_search_params = { 'patient': patient_val, 'target-date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Goal'), comparator_search_params) + validate_search_reply(versioned_resource_class('Goal'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Goal search by patient+lifecycle-status' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@goal.nil?, 'Expected valid Goal resource to be present' + + patient_val = @instance.patient_id + lifecycle_status_val = resolve_element_from_path(@goal, 'lifecycleStatus') + search_params = { 'patient': patient_val, 'lifecycle-status': lifecycle_status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) + validate_search_reply(versioned_resource_class('Goal'), reply, search_params) + assert_response_ok(reply) + end + + test 'Goal read resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Goal, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@goal, versioned_resource_class('Goal')) + end + + test 'Goal vread resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Goal, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@goal, versioned_resource_class('Goal')) + end + + test 'Goal history resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Goal, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@goal, versioned_resource_class('Goal')) + end + + test 'Goal resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '08' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Goal') + end + + test 'At least one of every must support element is provided in any Goal for this patient.' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @goal_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Goal.lifecycleStatus', + 'Goal.description', + 'Goal.subject', + 'Goal.target', + 'Goal.target.dueDate', + 'Goal.target.dueDuration' + ] + must_support_elements.each do |path| + @goal_ary&.each do |resource| + truncated_path = path.gsub('Goal.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @goal_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Goal resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '10' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Goal, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@goal) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_immunization_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_immunization_sequence.rb new file mode 100644 index 000000000..4e63d44c9 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_immunization_sequence.rb @@ -0,0 +1,254 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300ImmunizationSequence < SequenceBase + title 'Immunization Tests' + + description 'Verify that Immunization resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Immunization' # change me + + requires :token, :patient_id + conformance_supports :Immunization + + def validate_resource_item(resource, property, value) + case property + + when 'patient' + value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'date' + value_found = can_resolve_path(resource, 'occurrenceDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Immunization search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Immunization search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @immunization = reply.try(:resource).try(:entry).try(:first).try(:resource) + @immunization_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Immunization'), reply) + save_delayed_sequence_references(@immunization) + validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) + end + + test 'Server returns expected results from Immunization search by patient+date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@immunization.nil?, 'Expected valid Immunization resource to be present' + + patient_val = @instance.patient_id + date_val = resolve_element_from_path(@immunization, 'occurrenceDateTime') + search_params = { 'patient': patient_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) + validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Immunization'), comparator_search_params) + validate_search_reply(versioned_resource_class('Immunization'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Immunization search by patient+status' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@immunization.nil?, 'Expected valid Immunization resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@immunization, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) + validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) + assert_response_ok(reply) + end + + test 'Immunization read resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Immunization, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@immunization, versioned_resource_class('Immunization')) + end + + test 'Immunization vread resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Immunization, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@immunization, versioned_resource_class('Immunization')) + end + + test 'Immunization history resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Immunization, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@immunization, versioned_resource_class('Immunization')) + end + + test 'Immunization resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '08' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Immunization') + end + + test 'At least one of every must support element is provided in any Immunization for this patient.' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @immunization_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Immunization.status', + 'Immunization.statusReason', + 'Immunization.vaccineCode', + 'Immunization.patient', + 'Immunization.occurrenceDateTime', + 'Immunization.occurrenceString', + 'Immunization.primarySource' + ] + must_support_elements.each do |path| + @immunization_ary&.each do |resource| + truncated_path = path.gsub('Immunization.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @immunization_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Immunization resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '10' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Immunization, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@immunization) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_location_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_location_sequence.rb new file mode 100644 index 000000000..b74c10abc --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_location_sequence.rb @@ -0,0 +1,296 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300LocationSequence < SequenceBase + title 'Location Tests' + + description 'Verify that Location resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Location' # change me + + requires :token + conformance_supports :Location + delayed_sequence + + def validate_resource_item(resource, property, value) + case property + + when 'name' + value_found = can_resolve_path(resource, 'name') { |value_in_resource| value_in_resource == value } + assert value_found, 'name on resource does not match name requested' + + when 'address' + value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } + assert value_found, 'address on resource does not match address requested' + + when 'address-city' + value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } + assert value_found, 'address-city on resource does not match address-city requested' + + when 'address-state' + value_found = can_resolve_path(resource, 'address.state') { |value_in_resource| value_in_resource == value } + assert value_found, 'address-state on resource does not match address-state requested' + + when 'address-postalcode' + value_found = can_resolve_path(resource, 'address.postalCode') { |value_in_resource| value_in_resource == value } + assert value_found, 'address-postalcode on resource does not match address-postalcode requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Location from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + location_id = @instance.resource_references.find { |reference| reference.resource_type == 'Location' }&.resource_id + skip 'No Location references found from the prior searches' if location_id.nil? + @location = fetch_resource('Location', location_id) + @resources_found = !@location.nil? + end + + test 'Server rejects Location search without authorization' do + metadata do + id '02' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + name_val = resolve_element_from_path(@location, 'name') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Location search by name' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + name_val = resolve_element_from_path(@location, 'name') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @location = reply.try(:resource).try(:entry).try(:first).try(:resource) + @location_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Location'), reply) + save_delayed_sequence_references(@location) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + end + + test 'Server returns expected results from Location search by address' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@location.nil?, 'Expected valid Location resource to be present' + + address_val = resolve_element_from_path(@location, 'address.city') + search_params = { 'address': address_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Location search by address-city' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@location.nil?, 'Expected valid Location resource to be present' + + address_city_val = resolve_element_from_path(@location, 'address.city') + search_params = { 'address-city': address_city_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Location search by address-state' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@location.nil?, 'Expected valid Location resource to be present' + + address_state_val = resolve_element_from_path(@location, 'address.state') + search_params = { 'address-state': address_state_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Location search by address-postalcode' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@location.nil?, 'Expected valid Location resource to be present' + + address_postalcode_val = resolve_element_from_path(@location, 'address.postalCode') + search_params = { 'address-postalcode': address_postalcode_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + assert_response_ok(reply) + end + + test 'Location vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Location, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@location, versioned_resource_class('Location')) + end + + test 'Location history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Location, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@location, versioned_resource_class('Location')) + end + + test 'Location resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-location' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Location') + end + + test 'At least one of every must support element is provided in any Location for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @location_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Location.status', + 'Location.name', + 'Location.telecom', + 'Location.address', + 'Location.address.line', + 'Location.address.city', + 'Location.address.state', + 'Location.address.postalCode', + 'Location.managingOrganization' + ] + must_support_elements.each do |path| + @location_ary&.each do |resource| + truncated_path = path.gsub('Location.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @location_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Location resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Location, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@location) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_medication_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_medication_sequence.rb new file mode 100644 index 000000000..dafce7b17 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_medication_sequence.rb @@ -0,0 +1,125 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300MedicationSequence < SequenceBase + title 'Medication Tests' + + description 'Verify that Medication resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Medication' # change me + + requires :token + conformance_supports :Medication + delayed_sequence + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Medication from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + medication_id = @instance.resource_references.find { |reference| reference.resource_type == 'Medication' }&.resource_id + skip 'No Medication references found from the prior searches' if medication_id.nil? + @medication = fetch_resource('Medication', medication_id) + @resources_found = !@medication.nil? + end + + test 'Medication vread resource supported' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Medication, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@medication, versioned_resource_class('Medication')) + end + + test 'Medication history resource supported' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Medication, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@medication, versioned_resource_class('Medication')) + end + + test 'Medication resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '04' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Medication') + end + + test 'At least one of every must support element is provided in any Medication for this patient.' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @medication_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Medication.code' + ] + must_support_elements.each do |path| + @medication_ary&.each do |resource| + truncated_path = path.gsub('Medication.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @medication_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Medication resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '06' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Medication, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@medication) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_medicationrequest_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_medicationrequest_sequence.rb new file mode 100644 index 000000000..dfe9a0067 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_medicationrequest_sequence.rb @@ -0,0 +1,244 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300MedicationrequestSequence < SequenceBase + title 'MedicationRequest Tests' + + description 'Verify that MedicationRequest resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'MedicationRequest' # change me + + requires :token, :patient_id + conformance_supports :MedicationRequest + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'authoredon' + value_found = can_resolve_path(resource, 'authoredOn') { |value_in_resource| value_in_resource == value } + assert value_found, 'authoredon on resource does not match authoredon requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects MedicationRequest search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from MedicationRequest search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @medicationrequest = reply.try(:resource).try(:entry).try(:first).try(:resource) + @medicationrequest_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('MedicationRequest'), reply) + save_delayed_sequence_references(@medicationrequest) + validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) + end + + test 'Server returns expected results from MedicationRequest search by patient+status' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@medicationrequest.nil?, 'Expected valid MedicationRequest resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@medicationrequest, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from MedicationRequest search by patient+authoredon' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@medicationrequest.nil?, 'Expected valid MedicationRequest resource to be present' + + patient_val = @instance.patient_id + authoredon_val = resolve_element_from_path(@medicationrequest, 'authoredOn') + search_params = { 'patient': patient_val, 'authoredon': authoredon_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) + assert_response_ok(reply) + end + + test 'MedicationRequest read resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationRequest, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) + end + + test 'MedicationRequest vread resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationRequest, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) + end + + test 'MedicationRequest history resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationRequest, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) + end + + test 'MedicationRequest resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '08' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('MedicationRequest') + end + + test 'At least one of every must support element is provided in any MedicationRequest for this patient.' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @medicationrequest_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'MedicationRequest.status', + 'MedicationRequest.medicationCodeableConcept', + 'MedicationRequest.medicationReference', + 'MedicationRequest.subject', + 'MedicationRequest.authoredOn', + 'MedicationRequest.requester', + 'MedicationRequest.dosageInstruction', + 'MedicationRequest.dosageInstruction.text' + ] + must_support_elements.each do |path| + @medicationrequest_ary&.each do |resource| + truncated_path = path.gsub('MedicationRequest.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @medicationrequest_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided MedicationRequest resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '10' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationRequest, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@medicationrequest) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_medicationstatement_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_medicationstatement_sequence.rb new file mode 100644 index 000000000..0b57b6e86 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_medicationstatement_sequence.rb @@ -0,0 +1,255 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300MedicationstatementSequence < SequenceBase + title 'MedicationStatement Tests' + + description 'Verify that MedicationStatement resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'MedicationStatement' # change me + + requires :token, :patient_id + conformance_supports :MedicationStatement + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'effective' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'effective on resource does not match effective requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects MedicationStatement search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from MedicationStatement search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @medicationstatement = reply.try(:resource).try(:entry).try(:first).try(:resource) + @medicationstatement_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('MedicationStatement'), reply) + save_delayed_sequence_references(@medicationstatement) + validate_search_reply(versioned_resource_class('MedicationStatement'), reply, search_params) + end + + test 'Server returns expected results from MedicationStatement search by patient+effective' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@medicationstatement.nil?, 'Expected valid MedicationStatement resource to be present' + + patient_val = @instance.patient_id + effective_val = resolve_element_from_path(@medicationstatement, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'effective': effective_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), search_params) + validate_search_reply(versioned_resource_class('MedicationStatement'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, effective_val) + comparator_search_params = { 'patient': patient_val, 'effective': comparator_val } + reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), comparator_search_params) + validate_search_reply(versioned_resource_class('MedicationStatement'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from MedicationStatement search by patient+status' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@medicationstatement.nil?, 'Expected valid MedicationStatement resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@medicationstatement, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), search_params) + validate_search_reply(versioned_resource_class('MedicationStatement'), reply, search_params) + assert_response_ok(reply) + end + + test 'MedicationStatement read resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationStatement, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@medicationstatement, versioned_resource_class('MedicationStatement')) + end + + test 'MedicationStatement vread resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationStatement, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@medicationstatement, versioned_resource_class('MedicationStatement')) + end + + test 'MedicationStatement history resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationStatement, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@medicationstatement, versioned_resource_class('MedicationStatement')) + end + + test 'MedicationStatement resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '08' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('MedicationStatement') + end + + test 'At least one of every must support element is provided in any MedicationStatement for this patient.' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @medicationstatement_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'MedicationStatement.status', + 'MedicationStatement.medicationCodeableConcept', + 'MedicationStatement.medicationReference', + 'MedicationStatement.subject', + 'MedicationStatement.effectiveDateTime', + 'MedicationStatement.effectivePeriod', + 'MedicationStatement.dateAsserted', + 'MedicationStatement.derivedFrom' + ] + must_support_elements.each do |path| + @medicationstatement_ary&.each do |resource| + truncated_path = path.gsub('MedicationStatement.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @medicationstatement_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided MedicationStatement resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '10' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationStatement, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@medicationstatement) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_observation_lab_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_observation_lab_sequence.rb new file mode 100644 index 000000000..f6d3a5d11 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_observation_lab_sequence.rb @@ -0,0 +1,324 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300ObservationLabSequence < SequenceBase + title 'Laboratory Result Observation Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, category: 'laboratory' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, category: 'laboratory' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:lab_results]) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:lab_results]) + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.category', + 'Observation.code', + 'Observation.subject', + 'Observation.effectiveDateTime', + 'Observation.effectivePeriod', + 'Observation.valueQuantity', + 'Observation.valueCodeableConcept', + 'Observation.valueString', + 'Observation.valueBoolean', + 'Observation.valueInteger', + 'Observation.valueRange', + 'Observation.valueRatio', + 'Observation.valueSampledData', + 'Observation.valueTime', + 'Observation.valueDateTime', + 'Observation.valuePeriod', + 'Observation.dataAbsentReason' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_organization_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_organization_sequence.rb new file mode 100644 index 000000000..4db74965f --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_organization_sequence.rb @@ -0,0 +1,221 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300OrganizationSequence < SequenceBase + title 'Organization Tests' + + description 'Verify that Organization resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Organization' # change me + + requires :token + conformance_supports :Organization + delayed_sequence + + def validate_resource_item(resource, property, value) + case property + + when 'name' + value_found = can_resolve_path(resource, 'name') { |value_in_resource| value_in_resource == value } + assert value_found, 'name on resource does not match name requested' + + when 'address' + value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } + assert value_found, 'address on resource does not match address requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Organization from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + organization_id = @instance.resource_references.find { |reference| reference.resource_type == 'Organization' }&.resource_id + skip 'No Organization references found from the prior searches' if organization_id.nil? + @organization = fetch_resource('Organization', organization_id) + @resources_found = !@organization.nil? + end + + test 'Server rejects Organization search without authorization' do + metadata do + id '02' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + name_val = resolve_element_from_path(@organization, 'name') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Organization search by name' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + name_val = resolve_element_from_path(@organization, 'name') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @organization = reply.try(:resource).try(:entry).try(:first).try(:resource) + @organization_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Organization'), reply) + save_delayed_sequence_references(@organization) + validate_search_reply(versioned_resource_class('Organization'), reply, search_params) + end + + test 'Server returns expected results from Organization search by address' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@organization.nil?, 'Expected valid Organization resource to be present' + + address_val = resolve_element_from_path(@organization, 'address.city') + search_params = { 'address': address_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) + validate_search_reply(versioned_resource_class('Organization'), reply, search_params) + assert_response_ok(reply) + end + + test 'Organization vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Organization, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@organization, versioned_resource_class('Organization')) + end + + test 'Organization history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Organization, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@organization, versioned_resource_class('Organization')) + end + + test 'Organization resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Organization') + end + + test 'At least one of every must support element is provided in any Organization for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @organization_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Organization.identifier', + 'Organization.identifier.system', + 'Organization.active', + 'Organization.name', + 'Organization.telecom', + 'Organization.address', + 'Organization.address.line', + 'Organization.address.city', + 'Organization.address.state', + 'Organization.address.postalCode', + 'Organization.address.country', + 'Organization.endpoint' + ] + must_support_elements.each do |path| + @organization_ary&.each do |resource| + truncated_path = path.gsub('Organization.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @organization_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Organization resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Organization, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@organization) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_patient_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_patient_sequence.rb new file mode 100644 index 000000000..8f8188bb3 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_patient_sequence.rb @@ -0,0 +1,376 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300PatientSequence < SequenceBase + title 'Patient Tests' + + description 'Verify that Patient resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Patient' # change me + + requires :token, :patient_id + conformance_supports :Patient + + def validate_resource_item(resource, property, value) + case property + + when '_id' + value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } + assert value_found, '_id on resource does not match _id requested' + + when 'birthdate' + value_found = can_resolve_path(resource, 'birthDate') do |date| + validate_date_search(value, date) + end + assert value_found, 'birthdate on resource does not match birthdate requested' + + when 'family' + value_found = can_resolve_path(resource, 'name.family') { |value_in_resource| value_in_resource == value } + assert value_found, 'family on resource does not match family requested' + + when 'gender' + value_found = can_resolve_path(resource, 'gender') { |value_in_resource| value_in_resource == value } + assert value_found, 'gender on resource does not match gender requested' + + when 'given' + value_found = can_resolve_path(resource, 'name.given') { |value_in_resource| value_in_resource == value } + assert value_found, 'given on resource does not match given requested' + + when 'identifier' + value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } + assert value_found, 'identifier on resource does not match identifier requested' + + when 'name' + value = value.downcase + value_found = can_resolve_path(resource, 'name') do |name| + name&.text&.start_with?(value) || + name&.family&.downcase&.include?(value) || + name&.given&.any? { |given| given.downcase.start_with?(value) } || + name&.prefix&.any? { |prefix| prefix.downcase.start_with?(value) } || + name&.suffix&.any? { |suffix| suffix.downcase.start_with?(value) } + end + assert value_found, 'name on resource does not match name requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Patient search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { '_id': @instance.patient_id } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Patient search by _id' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { '_id': @instance.patient_id } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @patient = reply.try(:resource).try(:entry).try(:first).try(:resource) + @patient_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Patient'), reply) + save_delayed_sequence_references(@patient) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + end + + test 'Server returns expected results from Patient search by identifier' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + identifier_val = resolve_element_from_path(@patient, 'identifier.value') + search_params = { 'identifier': identifier_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by name' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + name_val = resolve_element_from_path(@patient, 'name.family') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by birthdate+name' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + birthdate_val = resolve_element_from_path(@patient, 'birthDate') + name_val = resolve_element_from_path(@patient, 'name.family') + search_params = { 'birthdate': birthdate_val, 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by gender+name' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + gender_val = resolve_element_from_path(@patient, 'gender') + name_val = resolve_element_from_path(@patient, 'name.family') + search_params = { 'gender': gender_val, 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by family+gender' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + family_val = resolve_element_from_path(@patient, 'name.family') + gender_val = resolve_element_from_path(@patient, 'gender') + search_params = { 'family': family_val, 'gender': gender_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by birthdate+family' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + birthdate_val = resolve_element_from_path(@patient, 'birthDate') + family_val = resolve_element_from_path(@patient, 'name.family') + search_params = { 'birthdate': birthdate_val, 'family': family_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Patient read resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Patient, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@patient, versioned_resource_class('Patient')) + end + + test 'Patient vread resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Patient, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@patient, versioned_resource_class('Patient')) + end + + test 'Patient history resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Patient, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@patient, versioned_resource_class('Patient')) + end + + test 'Patient resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '12' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Patient') + end + + test 'At least one of every must support element is provided in any Patient for this patient.' do + metadata do + id '13' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @patient_ary&.any? + must_support_confirmed = {} + extensions_list = { + 'Patient.extension:race': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race', + 'Patient.extension:ethnicity': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity', + 'Patient.extension:birthsex': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex' + } + extensions_list.each do |id, url| + @patient_ary&.each do |resource| + must_support_confirmed[id] = true if resource.extension.any? { |extension| extension.url == url } + break if must_support_confirmed[id] + end + skip_notification = "Could not find #{id} in any of the #{@patient_ary.length} provided Patient resource(s)" + skip skip_notification unless must_support_confirmed[id] + end + + must_support_elements = [ + 'Patient.identifier', + 'Patient.identifier.system', + 'Patient.identifier.value', + 'Patient.name', + 'Patient.name.family', + 'Patient.name.given', + 'Patient.telecom', + 'Patient.telecom.system', + 'Patient.telecom.value', + 'Patient.gender', + 'Patient.birthDate', + 'Patient.address', + 'Patient.address.line', + 'Patient.address.city', + 'Patient.address.state', + 'Patient.address.postalCode', + 'Patient.communication', + 'Patient.communication.language' + ] + must_support_elements.each do |path| + @patient_ary&.each do |resource| + truncated_path = path.gsub('Patient.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @patient_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Patient resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '14' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Patient, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@patient) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_practitioner_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_practitioner_sequence.rb new file mode 100644 index 000000000..aba4bf148 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_practitioner_sequence.rb @@ -0,0 +1,223 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300PractitionerSequence < SequenceBase + title 'Practitioner Tests' + + description 'Verify that Practitioner resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Practitioner' # change me + + requires :token + conformance_supports :Practitioner + delayed_sequence + + def validate_resource_item(resource, property, value) + case property + + when 'name' + value = value.downcase + value_found = can_resolve_path(resource, 'name') do |name| + name&.text&.start_with?(value) || + name&.family&.downcase&.include?(value) || + name&.given&.any? { |given| given.downcase.start_with?(value) } || + name&.prefix&.any? { |prefix| prefix.downcase.start_with?(value) } || + name&.suffix&.any? { |suffix| suffix.downcase.start_with?(value) } + end + assert value_found, 'name on resource does not match name requested' + + when 'identifier' + value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } + assert value_found, 'identifier on resource does not match identifier requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Practitioner from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + practitioner_id = @instance.resource_references.find { |reference| reference.resource_type == 'Practitioner' }&.resource_id + skip 'No Practitioner references found from the prior searches' if practitioner_id.nil? + @practitioner = fetch_resource('Practitioner', practitioner_id) + @resources_found = !@practitioner.nil? + end + + test 'Server rejects Practitioner search without authorization' do + metadata do + id '02' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + name_val = resolve_element_from_path(@practitioner, 'name.family') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Practitioner search by name' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + name_val = resolve_element_from_path(@practitioner, 'name.family') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @practitioner = reply.try(:resource).try(:entry).try(:first).try(:resource) + @practitioner_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Practitioner'), reply) + save_delayed_sequence_references(@practitioner) + validate_search_reply(versioned_resource_class('Practitioner'), reply, search_params) + end + + test 'Server returns expected results from Practitioner search by identifier' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@practitioner.nil?, 'Expected valid Practitioner resource to be present' + + identifier_val = resolve_element_from_path(@practitioner, 'identifier.value') + search_params = { 'identifier': identifier_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) + validate_search_reply(versioned_resource_class('Practitioner'), reply, search_params) + assert_response_ok(reply) + end + + test 'Practitioner vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Practitioner, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@practitioner, versioned_resource_class('Practitioner')) + end + + test 'Practitioner history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Practitioner, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@practitioner, versioned_resource_class('Practitioner')) + end + + test 'Practitioner resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Practitioner') + end + + test 'At least one of every must support element is provided in any Practitioner for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @practitioner_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Practitioner.identifier', + 'Practitioner.identifier.system', + 'Practitioner.identifier.value', + 'Practitioner.identifier', + 'Practitioner.identifier.system', + 'Practitioner.name', + 'Practitioner.name.family' + ] + must_support_elements.each do |path| + @practitioner_ary&.each do |resource| + truncated_path = path.gsub('Practitioner.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @practitioner_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Practitioner resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Practitioner, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@practitioner) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_practitionerrole_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_practitionerrole_sequence.rb new file mode 100644 index 000000000..d588182fc --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_practitionerrole_sequence.rb @@ -0,0 +1,218 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300PractitionerroleSequence < SequenceBase + title 'PractitionerRole Tests' + + description 'Verify that PractitionerRole resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'PractitionerRole' # change me + + requires :token + conformance_supports :PractitionerRole + delayed_sequence + + def validate_resource_item(resource, property, value) + case property + + when 'specialty' + value_found = can_resolve_path(resource, 'specialty.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'specialty on resource does not match specialty requested' + + when 'practitioner' + value_found = can_resolve_path(resource, 'practitioner.reference') { |value_in_resource| value_in_resource == value } + assert value_found, 'practitioner on resource does not match practitioner requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read PractitionerRole from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + practitionerrole_id = @instance.resource_references.find { |reference| reference.resource_type == 'PractitionerRole' }&.resource_id + skip 'No PractitionerRole references found from the prior searches' if practitionerrole_id.nil? + @practitionerrole = fetch_resource('PractitionerRole', practitionerrole_id) + @resources_found = !@practitionerrole.nil? + end + + test 'Server rejects PractitionerRole search without authorization' do + metadata do + id '02' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + specialty_val = resolve_element_from_path(@practitionerrole, 'specialty.coding.code') + search_params = { 'specialty': specialty_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from PractitionerRole search by specialty' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + specialty_val = resolve_element_from_path(@practitionerrole, 'specialty.coding.code') + search_params = { 'specialty': specialty_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @practitionerrole = reply.try(:resource).try(:entry).try(:first).try(:resource) + @practitionerrole_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('PractitionerRole'), reply) + save_delayed_sequence_references(@practitionerrole) + validate_search_reply(versioned_resource_class('PractitionerRole'), reply, search_params) + end + + test 'Server returns expected results from PractitionerRole search by practitioner' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@practitionerrole.nil?, 'Expected valid PractitionerRole resource to be present' + + practitioner_val = resolve_element_from_path(@practitionerrole, 'practitioner.reference') + search_params = { 'practitioner': practitioner_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) + validate_search_reply(versioned_resource_class('PractitionerRole'), reply, search_params) + assert_response_ok(reply) + end + + test 'PractitionerRole vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:PractitionerRole, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@practitionerrole, versioned_resource_class('PractitionerRole')) + end + + test 'PractitionerRole history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:PractitionerRole, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@practitionerrole, versioned_resource_class('PractitionerRole')) + end + + test 'PractitionerRole resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('PractitionerRole') + end + + test 'At least one of every must support element is provided in any PractitionerRole for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @practitionerrole_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'PractitionerRole.practitioner', + 'PractitionerRole.organization', + 'PractitionerRole.code', + 'PractitionerRole.specialty', + 'PractitionerRole.location', + 'PractitionerRole.telecom', + 'PractitionerRole.telecom.system', + 'PractitionerRole.telecom.value', + 'PractitionerRole.endpoint' + ] + must_support_elements.each do |path| + @practitionerrole_ary&.each do |resource| + truncated_path = path.gsub('PractitionerRole.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @practitionerrole_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided PractitionerRole resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:PractitionerRole, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@practitionerrole) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_procedure_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_procedure_sequence.rb new file mode 100644 index 000000000..88034c2a0 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_procedure_sequence.rb @@ -0,0 +1,287 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300ProcedureSequence < SequenceBase + title 'Procedure Tests' + + description 'Verify that Procedure resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Procedure' # change me + + requires :token, :patient_id + conformance_supports :Procedure + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'date' + value_found = can_resolve_path(resource, 'occurrenceDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Procedure search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Procedure search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @procedure = reply.try(:resource).try(:entry).try(:first).try(:resource) + @procedure_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Procedure'), reply) + save_delayed_sequence_references(@procedure) + validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) + end + + test 'Server returns expected results from Procedure search by patient+date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@procedure.nil?, 'Expected valid Procedure resource to be present' + + patient_val = @instance.patient_id + date_val = resolve_element_from_path(@procedure, 'occurrenceDateTime') + search_params = { 'patient': patient_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Procedure'), comparator_search_params) + validate_search_reply(versioned_resource_class('Procedure'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Procedure search by patient+code+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@procedure.nil?, 'Expected valid Procedure resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@procedure, 'code.coding.code') + date_val = resolve_element_from_path(@procedure, 'occurrenceDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Procedure'), comparator_search_params) + validate_search_reply(versioned_resource_class('Procedure'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Procedure search by patient+status' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@procedure.nil?, 'Expected valid Procedure resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@procedure, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) + assert_response_ok(reply) + end + + test 'Procedure read resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Procedure, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@procedure, versioned_resource_class('Procedure')) + end + + test 'Procedure vread resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Procedure, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@procedure, versioned_resource_class('Procedure')) + end + + test 'Procedure history resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Procedure, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@procedure, versioned_resource_class('Procedure')) + end + + test 'Procedure resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '09' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Procedure') + end + + test 'At least one of every must support element is provided in any Procedure for this patient.' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @procedure_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Procedure.status', + 'Procedure.code', + 'Procedure.subject', + 'Procedure.performedDateTime', + 'Procedure.performedPeriod' + ] + must_support_elements.each do |path| + @procedure_ary&.each do |resource| + truncated_path = path.gsub('Procedure.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @procedure_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Procedure resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '11' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Procedure, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@procedure) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0/us_core_smokingstatus_sequence.rb b/lib/app/modules/uscore_v3.0.0/us_core_smokingstatus_sequence.rb new file mode 100644 index 000000000..20875a61a --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0/us_core_smokingstatus_sequence.rb @@ -0,0 +1,311 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore300SmokingstatusSequence < SequenceBase + title 'Smoking Status Observation Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, code: '72166-2' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, code: '72166-2' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:smoking_status]) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:smoking_status]) + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.code', + 'Observation.subject', + 'Observation.issued', + 'Observation.valueCodeableConcept' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.0_module.yml b/lib/app/modules/uscore_v3.0.0_module.yml new file mode 100644 index 000000000..672e59439 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.0_module.yml @@ -0,0 +1,49 @@ +name: uscore_v3.0.0 +title: US Core R4 v3.0.0 +description : US Core R4 v3.0.0 +fhir_version: r4 +default_test_set: ad_hoc_testing +test_sets: + ad_hoc_testing: + view: default + tests: + - name: Discovery + sequences: + - UsCoreR4CapabilityStatementSequence + - SMARTDiscoverySequence + run_all: true + - name: Authorization and Authentication + sequences: + - DynamicRegistrationSequence + - ManualRegistrationSequence + - StandaloneLaunchSequence + - EHRLaunchSequence + - name: US Core R4 Patient Based Profiles + run_all: true + sequences: + - USCore300AllergyintoleranceSequence + - USCore300CareplanSequence + - USCore300CareteamSequence + - USCore300ConditionSequence + - USCore300DeviceSequence + - USCore300DiagnosticreportNoteSequence + - USCore300DiagnosticreportLabSequence + - USCore300DocumentreferenceSequence + - USCore300EncounterSequence + - USCore300GoalSequence + - USCore300ImmunizationSequence + - USCore300MedicationrequestSequence + - USCore300MedicationstatementSequence + - USCore300SmokingstatusSequence + - USCore300PediatricWeightForHeightSequence + - USCore300ObservationLabSequence + - USCore300PediatricBmiForAgeSequence + - USCore300PatientSequence + - USCore300ProcedureSequence + - R4ProvenanceSequence + - USCoreR4ClinicalNotesSequence + - USCore300LocationSequence + - USCore300MedicationSequence + - USCore300OrganizationSequence + - USCore300PractitionerSequence + - USCore300PractitionerroleSequence diff --git a/lib/app/modules/uscore_v3.0.1/pediatric_bmi_for_age_sequence.rb b/lib/app/modules/uscore_v3.0.1/pediatric_bmi_for_age_sequence.rb new file mode 100644 index 000000000..05fb05587 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/pediatric_bmi_for_age_sequence.rb @@ -0,0 +1,319 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301PediatricBmiForAgeSequence < SequenceBase + title 'Pediatric BMI for Age Observation Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, code: '59576-9' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, code: '59576-9' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_bmi_age]) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_bmi_age]) + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.category', + 'Observation.category', + 'Observation.category.coding', + 'Observation.category.coding.system', + 'Observation.category.coding.code', + 'Observation.subject', + 'Observation.effectiveDateTime', + 'Observation.effectivePeriod', + 'Observation.valueQuantity', + 'Observation.valueQuantity.value', + 'Observation.valueQuantity.unit', + 'Observation.valueQuantity.system', + 'Observation.valueQuantity.code', + 'Observation.dataAbsentReason', + 'Observation.component', + 'Observation.component.code', + 'Observation.component.valueQuantity', + 'Observation.component.valueCodeableConcept', + 'Observation.component.valueString', + 'Observation.component.valueBoolean', + 'Observation.component.valueInteger', + 'Observation.component.valueRange', + 'Observation.component.valueRatio', + 'Observation.component.valueSampledData', + 'Observation.component.valueTime', + 'Observation.component.valueDateTime', + 'Observation.component.valuePeriod', + 'Observation.component.dataAbsentReason' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/pediatric_weight_for_height_sequence.rb b/lib/app/modules/uscore_v3.0.1/pediatric_weight_for_height_sequence.rb new file mode 100644 index 000000000..595ac8223 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/pediatric_weight_for_height_sequence.rb @@ -0,0 +1,319 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301PediatricWeightForHeightSequence < SequenceBase + title 'Pediatric Weight for Height Observation Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, code: '77606-2' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, code: '77606-2' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_weight_height]) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_weight_height]) + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.category', + 'Observation.category', + 'Observation.category.coding', + 'Observation.category.coding.system', + 'Observation.category.coding.code', + 'Observation.subject', + 'Observation.effectiveDateTime', + 'Observation.effectivePeriod', + 'Observation.valueQuantity', + 'Observation.valueQuantity.value', + 'Observation.valueQuantity.unit', + 'Observation.valueQuantity.system', + 'Observation.valueQuantity.code', + 'Observation.dataAbsentReason', + 'Observation.component', + 'Observation.component.code', + 'Observation.component.valueQuantity', + 'Observation.component.valueCodeableConcept', + 'Observation.component.valueString', + 'Observation.component.valueBoolean', + 'Observation.component.valueInteger', + 'Observation.component.valueRange', + 'Observation.component.valueRatio', + 'Observation.component.valueSampledData', + 'Observation.component.valueTime', + 'Observation.component.valueDateTime', + 'Observation.component.valuePeriod', + 'Observation.component.dataAbsentReason' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_allergyintolerance_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_allergyintolerance_sequence.rb new file mode 100644 index 000000000..8c3c8f3f5 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_allergyintolerance_sequence.rb @@ -0,0 +1,214 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301AllergyintoleranceSequence < SequenceBase + title 'AllergyIntolerance Tests' + + description 'Verify that AllergyIntolerance resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'AllergyIntolerance' # change me + + requires :token, :patient_id + conformance_supports :AllergyIntolerance + + def validate_resource_item(resource, property, value) + case property + + when 'clinical-status' + value_found = can_resolve_path(resource, 'clinicalStatus.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'clinical-status on resource does not match clinical-status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects AllergyIntolerance search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from AllergyIntolerance search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @allergyintolerance = reply.try(:resource).try(:entry).try(:first).try(:resource) + @allergyintolerance_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('AllergyIntolerance'), reply) + save_delayed_sequence_references(@allergyintolerance) + validate_search_reply(versioned_resource_class('AllergyIntolerance'), reply, search_params) + end + + test 'Server returns expected results from AllergyIntolerance search by patient+clinical-status' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@allergyintolerance.nil?, 'Expected valid AllergyIntolerance resource to be present' + + patient_val = @instance.patient_id + clinical_status_val = resolve_element_from_path(@allergyintolerance, 'clinicalStatus.coding.code') + search_params = { 'patient': patient_val, 'clinical-status': clinical_status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) + validate_search_reply(versioned_resource_class('AllergyIntolerance'), reply, search_params) + assert_response_ok(reply) + end + + test 'AllergyIntolerance read resource supported' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:AllergyIntolerance, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) + end + + test 'AllergyIntolerance vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:AllergyIntolerance, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) + end + + test 'AllergyIntolerance history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:AllergyIntolerance, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) + end + + test 'AllergyIntolerance resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('AllergyIntolerance') + end + + test 'At least one of every must support element is provided in any AllergyIntolerance for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @allergyintolerance_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'AllergyIntolerance.clinicalStatus', + 'AllergyIntolerance.verificationStatus', + 'AllergyIntolerance.code', + 'AllergyIntolerance.patient' + ] + must_support_elements.each do |path| + @allergyintolerance_ary&.each do |resource| + truncated_path = path.gsub('AllergyIntolerance.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @allergyintolerance_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided AllergyIntolerance resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:AllergyIntolerance, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@allergyintolerance) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_careplan_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_careplan_sequence.rb new file mode 100644 index 000000000..65887370a --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_careplan_sequence.rb @@ -0,0 +1,289 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301CareplanSequence < SequenceBase + title 'CarePlan Tests' + + description 'Verify that CarePlan resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'CarePlan' # change me + + requires :token, :patient_id + conformance_supports :CarePlan + + def validate_resource_item(resource, property, value) + case property + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'date' + value_found = can_resolve_path(resource, 'period') do |period| + validate_period_search(value, period) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects CarePlan search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, category: 'assess-plan' } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from CarePlan search by patient+category' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, category: 'assess-plan' } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @careplan = reply.try(:resource).try(:entry).try(:first).try(:resource) + @careplan_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('CarePlan'), reply) + save_delayed_sequence_references(@careplan) + validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) + end + + test 'Server returns expected results from CarePlan search by patient+category+status' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@careplan, 'category.coding.code') + status_val = resolve_element_from_path(@careplan, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from CarePlan search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@careplan, 'category.coding.code') + date_val = resolve_element_from_path(@careplan, 'period.start') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('CarePlan'), comparator_search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from CarePlan search by patient+category+status+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@careplan, 'category.coding.code') + status_val = resolve_element_from_path(@careplan, 'status') + date_val = resolve_element_from_path(@careplan, 'period.start') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('CarePlan'), comparator_search_params) + validate_search_reply(versioned_resource_class('CarePlan'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'CarePlan read resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CarePlan, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@careplan, versioned_resource_class('CarePlan')) + end + + test 'CarePlan vread resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CarePlan, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@careplan, versioned_resource_class('CarePlan')) + end + + test 'CarePlan history resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CarePlan, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@careplan, versioned_resource_class('CarePlan')) + end + + test 'CarePlan resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '09' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('CarePlan') + end + + test 'At least one of every must support element is provided in any CarePlan for this patient.' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @careplan_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'CarePlan.text', + 'CarePlan.text.status', + 'CarePlan.status', + 'CarePlan.intent', + 'CarePlan.category', + 'CarePlan.category', + 'CarePlan.subject' + ] + must_support_elements.each do |path| + @careplan_ary&.each do |resource| + truncated_path = path.gsub('CarePlan.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @careplan_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided CarePlan resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '11' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CarePlan, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@careplan) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_careteam_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_careteam_sequence.rb new file mode 100644 index 000000000..f327f9a72 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_careteam_sequence.rb @@ -0,0 +1,188 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301CareteamSequence < SequenceBase + title 'CareTeam Tests' + + description 'Verify that CareTeam resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'CareTeam' # change me + + requires :token, :patient_id + conformance_supports :CareTeam + + def validate_resource_item(resource, property, value) + case property + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects CareTeam search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, status: 'active' } + + reply = get_resource_by_params(versioned_resource_class('CareTeam'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from CareTeam search by patient+status' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, status: 'active' } + + reply = get_resource_by_params(versioned_resource_class('CareTeam'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @careteam = reply.try(:resource).try(:entry).try(:first).try(:resource) + @careteam_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('CareTeam'), reply) + save_delayed_sequence_references(@careteam) + validate_search_reply(versioned_resource_class('CareTeam'), reply, search_params) + end + + test 'CareTeam read resource supported' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CareTeam, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@careteam, versioned_resource_class('CareTeam')) + end + + test 'CareTeam vread resource supported' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CareTeam, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@careteam, versioned_resource_class('CareTeam')) + end + + test 'CareTeam history resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CareTeam, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@careteam, versioned_resource_class('CareTeam')) + end + + test 'CareTeam resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '06' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('CareTeam') + end + + test 'At least one of every must support element is provided in any CareTeam for this patient.' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @careteam_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'CareTeam.status', + 'CareTeam.subject', + 'CareTeam.participant', + 'CareTeam.participant.role', + 'CareTeam.participant.member' + ] + must_support_elements.each do |path| + @careteam_ary&.each do |resource| + truncated_path = path.gsub('CareTeam.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @careteam_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided CareTeam resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '08' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:CareTeam, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@careteam) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_condition_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_condition_sequence.rb new file mode 100644 index 000000000..95c65a39f --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_condition_sequence.rb @@ -0,0 +1,306 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301ConditionSequence < SequenceBase + title 'Condition Tests' + + description 'Verify that Condition resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Condition' # change me + + requires :token, :patient_id + conformance_supports :Condition + + def validate_resource_item(resource, property, value) + case property + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'clinical-status' + value_found = can_resolve_path(resource, 'clinicalStatus.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'clinical-status on resource does not match clinical-status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'onset-date' + value_found = can_resolve_path(resource, 'onsetDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'onset-date on resource does not match onset-date requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Condition search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Condition search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @condition = reply.try(:resource).try(:entry).try(:first).try(:resource) + @condition_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Condition'), reply) + save_delayed_sequence_references(@condition) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + end + + test 'Server returns expected results from Condition search by patient+clinical-status' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@condition.nil?, 'Expected valid Condition resource to be present' + + patient_val = @instance.patient_id + clinical_status_val = resolve_element_from_path(@condition, 'clinicalStatus.coding.code') + search_params = { 'patient': patient_val, 'clinical-status': clinical_status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Condition search by patient+onset-date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@condition.nil?, 'Expected valid Condition resource to be present' + + patient_val = @instance.patient_id + onset_date_val = resolve_element_from_path(@condition, 'onsetDateTime') + search_params = { 'patient': patient_val, 'onset-date': onset_date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, onset_date_val) + comparator_search_params = { 'patient': patient_val, 'onset-date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Condition'), comparator_search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Condition search by patient+code' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@condition.nil?, 'Expected valid Condition resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@condition, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Condition search by patient+category' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@condition.nil?, 'Expected valid Condition resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@condition, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) + validate_search_reply(versioned_resource_class('Condition'), reply, search_params) + assert_response_ok(reply) + end + + test 'Condition read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Condition, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@condition, versioned_resource_class('Condition')) + end + + test 'Condition vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Condition, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@condition, versioned_resource_class('Condition')) + end + + test 'Condition history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Condition, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@condition, versioned_resource_class('Condition')) + end + + test 'Condition resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Condition') + end + + test 'At least one of every must support element is provided in any Condition for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @condition_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Condition.clinicalStatus', + 'Condition.verificationStatus', + 'Condition.category', + 'Condition.code', + 'Condition.subject' + ] + must_support_elements.each do |path| + @condition_ary&.each do |resource| + truncated_path = path.gsub('Condition.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @condition_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Condition resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Condition, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@condition) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_diagnosticreport_lab_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_diagnosticreport_lab_sequence.rb new file mode 100644 index 000000000..9899a01af --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_diagnosticreport_lab_sequence.rb @@ -0,0 +1,405 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301DiagnosticreportLabSequence < SequenceBase + title 'DiagnosticReport for Laboratory Results Reporting Tests' + + description 'Verify that DiagnosticReport resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'DiagnosticReport' # change me + + requires :token, :patient_id + conformance_supports :DiagnosticReport + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects DiagnosticReport search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, category: 'LAB' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from DiagnosticReport search by patient+category' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, category: 'LAB' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @diagnosticreport = reply.try(:resource).try(:entry).try(:first).try(:resource) + @diagnosticreport_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('DiagnosticReport'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_lab]) + save_delayed_sequence_references(@diagnosticreport) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + end + + test 'Server returns expected results from DiagnosticReport search by patient' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+code' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from DiagnosticReport search by patient+code+date' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from DiagnosticReport search by patient+status' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@diagnosticreport, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + search_params = { patient: @instance.patient_id, category: 'LAB' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category+date' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'DiagnosticReport create resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:create]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_create_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport read resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport vread resource supported' do + metadata do + id '12' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport history resource supported' do + metadata do + id '13' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '14' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('DiagnosticReport', Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_lab]) + end + + test 'At least one of every must support element is provided in any DiagnosticReport for this patient.' do + metadata do + id '15' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @diagnosticreport_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'DiagnosticReport.status', + 'DiagnosticReport.category', + 'DiagnosticReport.category', + 'DiagnosticReport.code', + 'DiagnosticReport.subject', + 'DiagnosticReport.effectiveDateTime', + 'DiagnosticReport.effectivePeriod', + 'DiagnosticReport.issued', + 'DiagnosticReport.performer', + 'DiagnosticReport.result', + 'DiagnosticReport.media', + 'DiagnosticReport.presentedForm' + ] + must_support_elements.each do |path| + @diagnosticreport_ary&.each do |resource| + truncated_path = path.gsub('DiagnosticReport.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @diagnosticreport_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided DiagnosticReport resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '16' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@diagnosticreport) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_diagnosticreport_note_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_diagnosticreport_note_sequence.rb new file mode 100644 index 000000000..26dc9b21e --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_diagnosticreport_note_sequence.rb @@ -0,0 +1,404 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301DiagnosticreportNoteSequence < SequenceBase + title 'DiagnosticReport for Report and Note exchange Tests' + + description 'Verify that DiagnosticReport resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'DiagnosticReport' # change me + + requires :token, :patient_id + conformance_supports :DiagnosticReport + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects DiagnosticReport search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, code: 'LP29684-5' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from DiagnosticReport search by patient+category' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, code: 'LP29684-5' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @diagnosticreport = reply.try(:resource).try(:entry).try(:first).try(:resource) + @diagnosticreport_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('DiagnosticReport'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_note]) + save_delayed_sequence_references(@diagnosticreport) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + end + + test 'Server returns expected results from DiagnosticReport search by patient' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+code' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category+date' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from DiagnosticReport search by patient+code+date' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from DiagnosticReport search by patient+status' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@diagnosticreport, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + search_params = { patient: @instance.patient_id, code: 'LP29684-5' } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DiagnosticReport search by patient+category+date' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') + date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) + validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'DiagnosticReport create resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:create]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_create_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport read resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport vread resource supported' do + metadata do + id '12' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport history resource supported' do + metadata do + id '13' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) + end + + test 'DiagnosticReport resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '14' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('DiagnosticReport', Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_note]) + end + + test 'At least one of every must support element is provided in any DiagnosticReport for this patient.' do + metadata do + id '15' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @diagnosticreport_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'DiagnosticReport.status', + 'DiagnosticReport.category', + 'DiagnosticReport.code', + 'DiagnosticReport.subject', + 'DiagnosticReport.encounter', + 'DiagnosticReport.effectiveDateTime', + 'DiagnosticReport.effectivePeriod', + 'DiagnosticReport.issued', + 'DiagnosticReport.performer', + 'DiagnosticReport.media', + 'DiagnosticReport.presentedForm' + ] + must_support_elements.each do |path| + @diagnosticreport_ary&.each do |resource| + truncated_path = path.gsub('DiagnosticReport.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @diagnosticreport_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided DiagnosticReport resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '16' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DiagnosticReport, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@diagnosticreport) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_documentreference_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_documentreference_sequence.rb new file mode 100644 index 000000000..7969db507 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_documentreference_sequence.rb @@ -0,0 +1,376 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301DocumentreferenceSequence < SequenceBase + title 'DocumentReference Tests' + + description 'Verify that DocumentReference resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'DocumentReference' # change me + + requires :token, :patient_id + conformance_supports :DocumentReference + + def validate_resource_item(resource, property, value) + case property + + when '_id' + value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } + assert value_found, '_id on resource does not match _id requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'type' + value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'type on resource does not match type requested' + + when 'date' + value_found = can_resolve_path(resource, 'date') { |value_in_resource| value_in_resource == value } + assert value_found, 'date on resource does not match date requested' + + when 'period' + value_found = can_resolve_path(resource, 'context.period') do |period| + validate_period_search(value, period) + end + assert value_found, 'period on resource does not match period requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects DocumentReference search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from DocumentReference search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @documentreference = reply.try(:resource).try(:entry).try(:first).try(:resource) + @documentreference_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('DocumentReference'), reply) + save_delayed_sequence_references(@documentreference) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + end + + test 'Server returns expected results from DocumentReference search by _id' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + id_val = resolve_element_from_path(@documentreference, 'id') + search_params = { '_id': id_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@documentreference, 'category.coding.code') + date_val = resolve_element_from_path(@documentreference, 'date') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+category' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@documentreference, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+type' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + type_val = resolve_element_from_path(@documentreference, 'type.coding.code') + search_params = { 'patient': patient_val, 'type': type_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+status' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@documentreference, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from DocumentReference search by patient+type+period' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' + + patient_val = @instance.patient_id + type_val = resolve_element_from_path(@documentreference, 'type.coding.code') + period_val = resolve_element_from_path(@documentreference, 'context.period.start') + search_params = { 'patient': patient_val, 'type': type_val, 'period': period_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) + validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) + assert_response_ok(reply) + end + + test 'DocumentReference create resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:create]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_create_reply(@documentreference, versioned_resource_class('DocumentReference')) + end + + test 'DocumentReference read resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@documentreference, versioned_resource_class('DocumentReference')) + end + + test 'DocumentReference vread resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@documentreference, versioned_resource_class('DocumentReference')) + end + + test 'DocumentReference history resource supported' do + metadata do + id '12' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@documentreference, versioned_resource_class('DocumentReference')) + end + + test 'DocumentReference resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '13' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('DocumentReference') + end + + test 'At least one of every must support element is provided in any DocumentReference for this patient.' do + metadata do + id '14' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @documentreference_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'DocumentReference.identifier', + 'DocumentReference.status', + 'DocumentReference.type', + 'DocumentReference.category', + 'DocumentReference.subject', + 'DocumentReference.date', + 'DocumentReference.author', + 'DocumentReference.custodian', + 'DocumentReference.content', + 'DocumentReference.content.attachment', + 'DocumentReference.content.attachment.contentType', + 'DocumentReference.content.attachment.data', + 'DocumentReference.content.attachment.url', + 'DocumentReference.content.format', + 'DocumentReference.context', + 'DocumentReference.context.encounter', + 'DocumentReference.context.period' + ] + must_support_elements.each do |path| + @documentreference_ary&.each do |resource| + truncated_path = path.gsub('DocumentReference.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @documentreference_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided DocumentReference resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '15' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:DocumentReference, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@documentreference) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_encounter_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_encounter_sequence.rb new file mode 100644 index 000000000..ee0ee1a4e --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_encounter_sequence.rb @@ -0,0 +1,368 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301EncounterSequence < SequenceBase + title 'Encounter Tests' + + description 'Verify that Encounter resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Encounter' # change me + + requires :token, :patient_id + conformance_supports :Encounter + + def validate_resource_item(resource, property, value) + case property + + when '_id' + value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } + assert value_found, '_id on resource does not match _id requested' + + when 'class' + value_found = can_resolve_path(resource, 'local_class.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'class on resource does not match class requested' + + when 'date' + value_found = can_resolve_path(resource, 'period') do |period| + validate_period_search(value, period) + end + assert value_found, 'date on resource does not match date requested' + + when 'identifier' + value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } + assert value_found, 'identifier on resource does not match identifier requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'type' + value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'type on resource does not match type requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Encounter search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Encounter search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @encounter = reply.try(:resource).try(:entry).try(:first).try(:resource) + @encounter_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Encounter'), reply) + save_delayed_sequence_references(@encounter) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + end + + test 'Server returns expected results from Encounter search by _id' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + id_val = resolve_element_from_path(@encounter, 'id') + search_params = { '_id': id_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Encounter search by date+patient' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + date_val = resolve_element_from_path(@encounter, 'period.start') + patient_val = @instance.patient_id + search_params = { 'date': date_val, 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'date': comparator_val, 'patient': patient_val } + reply = get_resource_by_params(versioned_resource_class('Encounter'), comparator_search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Encounter search by identifier' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + identifier_val = resolve_element_from_path(@encounter, 'identifier.value') + search_params = { 'identifier': identifier_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Encounter search by patient+status' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@encounter, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Encounter search by patient+type' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + patient_val = @instance.patient_id + type_val = resolve_element_from_path(@encounter, 'type.coding.code') + search_params = { 'patient': patient_val, 'type': type_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Encounter search by class+patient' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@encounter.nil?, 'Expected valid Encounter resource to be present' + + class_val = resolve_element_from_path(@encounter, 'class.code') + patient_val = @instance.patient_id + search_params = { 'class': class_val, 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) + validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) + assert_response_ok(reply) + end + + test 'Encounter read resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Encounter, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@encounter, versioned_resource_class('Encounter')) + end + + test 'Encounter vread resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Encounter, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@encounter, versioned_resource_class('Encounter')) + end + + test 'Encounter history resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Encounter, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@encounter, versioned_resource_class('Encounter')) + end + + test 'Encounter resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '12' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Encounter') + end + + test 'At least one of every must support element is provided in any Encounter for this patient.' do + metadata do + id '13' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @encounter_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Encounter.identifier', + 'Encounter.identifier.system', + 'Encounter.identifier.value', + 'Encounter.status', + 'Encounter.local_class', + 'Encounter.type', + 'Encounter.subject', + 'Encounter.participant', + 'Encounter.participant.type', + 'Encounter.participant.period', + 'Encounter.participant.individual', + 'Encounter.period', + 'Encounter.reasonCode', + 'Encounter.hospitalization', + 'Encounter.hospitalization.dischargeDisposition', + 'Encounter.location', + 'Encounter.location.location' + ] + must_support_elements.each do |path| + @encounter_ary&.each do |resource| + truncated_path = path.gsub('Encounter.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @encounter_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Encounter resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '14' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Encounter, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@encounter) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_goal_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_goal_sequence.rb new file mode 100644 index 000000000..5541f1c45 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_goal_sequence.rb @@ -0,0 +1,252 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301GoalSequence < SequenceBase + title 'Goal Tests' + + description 'Verify that Goal resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Goal' # change me + + requires :token, :patient_id + conformance_supports :Goal + + def validate_resource_item(resource, property, value) + case property + + when 'lifecycle-status' + value_found = can_resolve_path(resource, 'lifecycleStatus') { |value_in_resource| value_in_resource == value } + assert value_found, 'lifecycle-status on resource does not match lifecycle-status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'target-date' + value_found = can_resolve_path(resource, 'target.dueDate') do |date| + validate_date_search(value, date) + end + assert value_found, 'target-date on resource does not match target-date requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Goal search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Goal search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @goal = reply.try(:resource).try(:entry).try(:first).try(:resource) + @goal_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Goal'), reply) + save_delayed_sequence_references(@goal) + validate_search_reply(versioned_resource_class('Goal'), reply, search_params) + end + + test 'Server returns expected results from Goal search by patient+target-date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@goal.nil?, 'Expected valid Goal resource to be present' + + patient_val = @instance.patient_id + target_date_val = resolve_element_from_path(@goal, 'target.dueDate') + search_params = { 'patient': patient_val, 'target-date': target_date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) + validate_search_reply(versioned_resource_class('Goal'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, target_date_val) + comparator_search_params = { 'patient': patient_val, 'target-date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Goal'), comparator_search_params) + validate_search_reply(versioned_resource_class('Goal'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Server returns expected results from Goal search by patient+lifecycle-status' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@goal.nil?, 'Expected valid Goal resource to be present' + + patient_val = @instance.patient_id + lifecycle_status_val = resolve_element_from_path(@goal, 'lifecycleStatus') + search_params = { 'patient': patient_val, 'lifecycle-status': lifecycle_status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) + validate_search_reply(versioned_resource_class('Goal'), reply, search_params) + assert_response_ok(reply) + end + + test 'Goal read resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Goal, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@goal, versioned_resource_class('Goal')) + end + + test 'Goal vread resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Goal, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@goal, versioned_resource_class('Goal')) + end + + test 'Goal history resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Goal, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@goal, versioned_resource_class('Goal')) + end + + test 'Goal resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '08' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Goal') + end + + test 'At least one of every must support element is provided in any Goal for this patient.' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @goal_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Goal.lifecycleStatus', + 'Goal.description', + 'Goal.subject', + 'Goal.target', + 'Goal.target.dueDate' + ] + must_support_elements.each do |path| + @goal_ary&.each do |resource| + truncated_path = path.gsub('Goal.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @goal_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Goal resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '10' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Goal, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@goal) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_immunization_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_immunization_sequence.rb new file mode 100644 index 000000000..02e5d3dd4 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_immunization_sequence.rb @@ -0,0 +1,254 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301ImmunizationSequence < SequenceBase + title 'Immunization Tests' + + description 'Verify that Immunization resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Immunization' # change me + + requires :token, :patient_id + conformance_supports :Immunization + + def validate_resource_item(resource, property, value) + case property + + when 'patient' + value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'date' + value_found = can_resolve_path(resource, 'occurrenceDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Immunization search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Immunization search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @immunization = reply.try(:resource).try(:entry).try(:first).try(:resource) + @immunization_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Immunization'), reply) + save_delayed_sequence_references(@immunization) + validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) + end + + test 'Server returns expected results from Immunization search by patient+status' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@immunization.nil?, 'Expected valid Immunization resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@immunization, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) + validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Immunization search by patient+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@immunization.nil?, 'Expected valid Immunization resource to be present' + + patient_val = @instance.patient_id + date_val = resolve_element_from_path(@immunization, 'occurrenceDateTime') + search_params = { 'patient': patient_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) + validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) + assert_response_ok(reply) + + ['gt', 'lt', 'le'].each do |comparator| + comparator_val = date_comparator_value(comparator, date_val) + comparator_search_params = { 'patient': patient_val, 'date': comparator_val } + reply = get_resource_by_params(versioned_resource_class('Immunization'), comparator_search_params) + validate_search_reply(versioned_resource_class('Immunization'), reply, comparator_search_params) + assert_response_ok(reply) + end + end + + test 'Immunization read resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Immunization, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@immunization, versioned_resource_class('Immunization')) + end + + test 'Immunization vread resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Immunization, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@immunization, versioned_resource_class('Immunization')) + end + + test 'Immunization history resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Immunization, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@immunization, versioned_resource_class('Immunization')) + end + + test 'Immunization resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '08' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Immunization') + end + + test 'At least one of every must support element is provided in any Immunization for this patient.' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @immunization_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Immunization.status', + 'Immunization.statusReason', + 'Immunization.vaccineCode', + 'Immunization.patient', + 'Immunization.occurrenceDateTime', + 'Immunization.occurrenceString', + 'Immunization.primarySource' + ] + must_support_elements.each do |path| + @immunization_ary&.each do |resource| + truncated_path = path.gsub('Immunization.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @immunization_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Immunization resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '10' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Immunization, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@immunization) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_implantable_device_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_implantable_device_sequence.rb new file mode 100644 index 000000000..408920c26 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_implantable_device_sequence.rb @@ -0,0 +1,221 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301ImplantableDeviceSequence < SequenceBase + title 'Implantable Device Tests' + + description 'Verify that Device resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Device' # change me + + requires :token, :patient_id + conformance_supports :Device + + def validate_resource_item(resource, property, value) + case property + + when 'patient' + value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'type' + value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'type on resource does not match type requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Device search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Device'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Device search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Device'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @device = reply.try(:resource).try(:entry).try(:first).try(:resource) + @device_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Device'), reply) + save_delayed_sequence_references(@device) + validate_search_reply(versioned_resource_class('Device'), reply, search_params) + end + + test 'Server returns expected results from Device search by patient+type' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@device.nil?, 'Expected valid Device resource to be present' + + patient_val = @instance.patient_id + type_val = resolve_element_from_path(@device, 'type.coding.code') + search_params = { 'patient': patient_val, 'type': type_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Device'), search_params) + validate_search_reply(versioned_resource_class('Device'), reply, search_params) + assert_response_ok(reply) + end + + test 'Device read resource supported' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Device, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@device, versioned_resource_class('Device')) + end + + test 'Device vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Device, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@device, versioned_resource_class('Device')) + end + + test 'Device history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Device, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@device, versioned_resource_class('Device')) + end + + test 'Device resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Device') + end + + test 'At least one of every must support element is provided in any Device for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @device_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Device.udiCarrier', + 'Device.udiCarrier.deviceIdentifier', + 'Device.udiCarrier.carrierAIDC', + 'Device.udiCarrier.carrierHRF', + 'Device.distinctIdentifier', + 'Device.manufactureDate', + 'Device.expirationDate', + 'Device.lotNumber', + 'Device.serialNumber', + 'Device.type', + 'Device.patient' + ] + must_support_elements.each do |path| + @device_ary&.each do |resource| + truncated_path = path.gsub('Device.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @device_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Device resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Device, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@device) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_location_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_location_sequence.rb new file mode 100644 index 000000000..843301f5c --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_location_sequence.rb @@ -0,0 +1,296 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301LocationSequence < SequenceBase + title 'Location Tests' + + description 'Verify that Location resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Location' # change me + + requires :token + conformance_supports :Location + delayed_sequence + + def validate_resource_item(resource, property, value) + case property + + when 'name' + value_found = can_resolve_path(resource, 'name') { |value_in_resource| value_in_resource == value } + assert value_found, 'name on resource does not match name requested' + + when 'address' + value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } + assert value_found, 'address on resource does not match address requested' + + when 'address-city' + value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } + assert value_found, 'address-city on resource does not match address-city requested' + + when 'address-state' + value_found = can_resolve_path(resource, 'address.state') { |value_in_resource| value_in_resource == value } + assert value_found, 'address-state on resource does not match address-state requested' + + when 'address-postalcode' + value_found = can_resolve_path(resource, 'address.postalCode') { |value_in_resource| value_in_resource == value } + assert value_found, 'address-postalcode on resource does not match address-postalcode requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Location from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + location_id = @instance.resource_references.find { |reference| reference.resource_type == 'Location' }&.resource_id + skip 'No Location references found from the prior searches' if location_id.nil? + @location = fetch_resource('Location', location_id) + @resources_found = !@location.nil? + end + + test 'Server rejects Location search without authorization' do + metadata do + id '02' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + name_val = resolve_element_from_path(@location, 'name') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Location search by name' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + name_val = resolve_element_from_path(@location, 'name') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @location = reply.try(:resource).try(:entry).try(:first).try(:resource) + @location_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Location'), reply) + save_delayed_sequence_references(@location) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + end + + test 'Server returns expected results from Location search by address' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@location.nil?, 'Expected valid Location resource to be present' + + address_val = resolve_element_from_path(@location, 'address.city') + search_params = { 'address': address_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Location search by address-city' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@location.nil?, 'Expected valid Location resource to be present' + + address_city_val = resolve_element_from_path(@location, 'address.city') + search_params = { 'address-city': address_city_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Location search by address-state' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@location.nil?, 'Expected valid Location resource to be present' + + address_state_val = resolve_element_from_path(@location, 'address.state') + search_params = { 'address-state': address_state_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Location search by address-postalcode' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@location.nil?, 'Expected valid Location resource to be present' + + address_postalcode_val = resolve_element_from_path(@location, 'address.postalCode') + search_params = { 'address-postalcode': address_postalcode_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Location'), search_params) + validate_search_reply(versioned_resource_class('Location'), reply, search_params) + assert_response_ok(reply) + end + + test 'Location vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Location, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@location, versioned_resource_class('Location')) + end + + test 'Location history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Location, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@location, versioned_resource_class('Location')) + end + + test 'Location resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-location' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Location') + end + + test 'At least one of every must support element is provided in any Location for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @location_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Location.status', + 'Location.name', + 'Location.telecom', + 'Location.address', + 'Location.address.line', + 'Location.address.city', + 'Location.address.state', + 'Location.address.postalCode', + 'Location.managingOrganization' + ] + must_support_elements.each do |path| + @location_ary&.each do |resource| + truncated_path = path.gsub('Location.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @location_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Location resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Location, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@location) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_medication_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_medication_sequence.rb new file mode 100644 index 000000000..2b6e89e9d --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_medication_sequence.rb @@ -0,0 +1,125 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301MedicationSequence < SequenceBase + title 'Medication Tests' + + description 'Verify that Medication resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Medication' # change me + + requires :token + conformance_supports :Medication + delayed_sequence + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Medication from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + medication_id = @instance.resource_references.find { |reference| reference.resource_type == 'Medication' }&.resource_id + skip 'No Medication references found from the prior searches' if medication_id.nil? + @medication = fetch_resource('Medication', medication_id) + @resources_found = !@medication.nil? + end + + test 'Medication vread resource supported' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Medication, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@medication, versioned_resource_class('Medication')) + end + + test 'Medication history resource supported' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Medication, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@medication, versioned_resource_class('Medication')) + end + + test 'Medication resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '04' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Medication') + end + + test 'At least one of every must support element is provided in any Medication for this patient.' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @medication_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Medication.code' + ] + must_support_elements.each do |path| + @medication_ary&.each do |resource| + truncated_path = path.gsub('Medication.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @medication_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Medication resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '06' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Medication, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@medication) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_medicationrequest_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_medicationrequest_sequence.rb new file mode 100644 index 000000000..1b6de38c2 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_medicationrequest_sequence.rb @@ -0,0 +1,284 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301MedicationrequestSequence < SequenceBase + title 'MedicationRequest Tests' + + description 'Verify that MedicationRequest resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'MedicationRequest' # change me + + requires :token, :patient_id + conformance_supports :MedicationRequest + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'intent' + value_found = can_resolve_path(resource, 'intent') { |value_in_resource| value_in_resource == value } + assert value_found, 'intent on resource does not match intent requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'encounter' + value_found = can_resolve_path(resource, 'encounter.reference') { |value_in_resource| value_in_resource == value } + assert value_found, 'encounter on resource does not match encounter requested' + + when 'authoredon' + value_found = can_resolve_path(resource, 'authoredOn') { |value_in_resource| value_in_resource == value } + assert value_found, 'authoredon on resource does not match authoredon requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects MedicationRequest search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + intent_val = resolve_element_from_path(@medicationrequest, 'intent') + search_params = { 'patient': patient_val, 'intent': intent_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from MedicationRequest search by patient+intent' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + intent_val = resolve_element_from_path(@medicationrequest, 'intent') + search_params = { 'patient': patient_val, 'intent': intent_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @medicationrequest = reply.try(:resource).try(:entry).try(:first).try(:resource) + @medicationrequest_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('MedicationRequest'), reply) + save_delayed_sequence_references(@medicationrequest) + validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) + end + + test 'Server returns expected results from MedicationRequest search by patient+intent+status' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@medicationrequest.nil?, 'Expected valid MedicationRequest resource to be present' + + patient_val = @instance.patient_id + intent_val = resolve_element_from_path(@medicationrequest, 'intent') + status_val = resolve_element_from_path(@medicationrequest, 'status') + search_params = { 'patient': patient_val, 'intent': intent_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from MedicationRequest search by patient+intent+encounter' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@medicationrequest.nil?, 'Expected valid MedicationRequest resource to be present' + + patient_val = @instance.patient_id + intent_val = resolve_element_from_path(@medicationrequest, 'intent') + encounter_val = resolve_element_from_path(@medicationrequest, 'encounter.reference') + search_params = { 'patient': patient_val, 'intent': intent_val, 'encounter': encounter_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from MedicationRequest search by patient+intent+authoredon' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@medicationrequest.nil?, 'Expected valid MedicationRequest resource to be present' + + patient_val = @instance.patient_id + intent_val = resolve_element_from_path(@medicationrequest, 'intent') + authoredon_val = resolve_element_from_path(@medicationrequest, 'authoredOn') + search_params = { 'patient': patient_val, 'intent': intent_val, 'authoredon': authoredon_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) + validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) + assert_response_ok(reply) + end + + test 'MedicationRequest read resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationRequest, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) + end + + test 'MedicationRequest vread resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationRequest, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) + end + + test 'MedicationRequest history resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationRequest, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) + end + + test 'MedicationRequest resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '09' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('MedicationRequest') + end + + test 'At least one of every must support element is provided in any MedicationRequest for this patient.' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @medicationrequest_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'MedicationRequest.status', + 'MedicationRequest.intent', + 'MedicationRequest.reportedBoolean', + 'MedicationRequest.reportedReference', + 'MedicationRequest.medicationCodeableConcept', + 'MedicationRequest.medicationReference', + 'MedicationRequest.subject', + 'MedicationRequest.encounter', + 'MedicationRequest.authoredOn', + 'MedicationRequest.requester', + 'MedicationRequest.dosageInstruction', + 'MedicationRequest.dosageInstruction.text' + ] + must_support_elements.each do |path| + @medicationrequest_ary&.each do |resource| + truncated_path = path.gsub('MedicationRequest.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @medicationrequest_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided MedicationRequest resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '11' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:MedicationRequest, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@medicationrequest) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_observation_lab_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_observation_lab_sequence.rb new file mode 100644 index 000000000..f03aa26a8 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_observation_lab_sequence.rb @@ -0,0 +1,309 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301ObservationLabSequence < SequenceBase + title 'Laboratory Result Observation Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, category: 'laboratory' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, category: 'laboratory' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:lab_results]) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:lab_results]) + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.category', + 'Observation.category', + 'Observation.code', + 'Observation.subject', + 'Observation.effectiveDateTime', + 'Observation.effectivePeriod', + 'Observation.valueQuantity', + 'Observation.valueCodeableConcept', + 'Observation.valueString', + 'Observation.valueBoolean', + 'Observation.valueInteger', + 'Observation.valueRange', + 'Observation.valueRatio', + 'Observation.valueSampledData', + 'Observation.valueTime', + 'Observation.valueDateTime', + 'Observation.valuePeriod', + 'Observation.dataAbsentReason' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_organization_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_organization_sequence.rb new file mode 100644 index 000000000..0bc656f9a --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_organization_sequence.rb @@ -0,0 +1,224 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301OrganizationSequence < SequenceBase + title 'Organization Tests' + + description 'Verify that Organization resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Organization' # change me + + requires :token + conformance_supports :Organization + delayed_sequence + + def validate_resource_item(resource, property, value) + case property + + when 'name' + value_found = can_resolve_path(resource, 'name') { |value_in_resource| value_in_resource == value } + assert value_found, 'name on resource does not match name requested' + + when 'address' + value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } + assert value_found, 'address on resource does not match address requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Organization from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + organization_id = @instance.resource_references.find { |reference| reference.resource_type == 'Organization' }&.resource_id + skip 'No Organization references found from the prior searches' if organization_id.nil? + @organization = fetch_resource('Organization', organization_id) + @resources_found = !@organization.nil? + end + + test 'Server rejects Organization search without authorization' do + metadata do + id '02' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + name_val = resolve_element_from_path(@organization, 'name') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Organization search by name' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + name_val = resolve_element_from_path(@organization, 'name') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @organization = reply.try(:resource).try(:entry).try(:first).try(:resource) + @organization_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Organization'), reply) + save_delayed_sequence_references(@organization) + validate_search_reply(versioned_resource_class('Organization'), reply, search_params) + end + + test 'Server returns expected results from Organization search by address' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@organization.nil?, 'Expected valid Organization resource to be present' + + address_val = resolve_element_from_path(@organization, 'address.city') + search_params = { 'address': address_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) + validate_search_reply(versioned_resource_class('Organization'), reply, search_params) + assert_response_ok(reply) + end + + test 'Organization vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Organization, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@organization, versioned_resource_class('Organization')) + end + + test 'Organization history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Organization, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@organization, versioned_resource_class('Organization')) + end + + test 'Organization resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Organization') + end + + test 'At least one of every must support element is provided in any Organization for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @organization_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Organization.identifier', + 'Organization.identifier.system', + 'Organization.identifier.value', + 'Organization.identifier', + 'Organization.identifier', + 'Organization.active', + 'Organization.name', + 'Organization.telecom', + 'Organization.address', + 'Organization.address.line', + 'Organization.address.city', + 'Organization.address.state', + 'Organization.address.postalCode', + 'Organization.address.country', + 'Organization.endpoint' + ] + must_support_elements.each do |path| + @organization_ary&.each do |resource| + truncated_path = path.gsub('Organization.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @organization_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Organization resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Organization, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@organization) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_patient_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_patient_sequence.rb new file mode 100644 index 000000000..ded1f1f32 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_patient_sequence.rb @@ -0,0 +1,378 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301PatientSequence < SequenceBase + title 'Patient Tests' + + description 'Verify that Patient resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Patient' # change me + + requires :token, :patient_id + conformance_supports :Patient + + def validate_resource_item(resource, property, value) + case property + + when '_id' + value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } + assert value_found, '_id on resource does not match _id requested' + + when 'birthdate' + value_found = can_resolve_path(resource, 'birthDate') do |date| + validate_date_search(value, date) + end + assert value_found, 'birthdate on resource does not match birthdate requested' + + when 'family' + value_found = can_resolve_path(resource, 'name.family') { |value_in_resource| value_in_resource == value } + assert value_found, 'family on resource does not match family requested' + + when 'gender' + value_found = can_resolve_path(resource, 'gender') { |value_in_resource| value_in_resource == value } + assert value_found, 'gender on resource does not match gender requested' + + when 'given' + value_found = can_resolve_path(resource, 'name.given') { |value_in_resource| value_in_resource == value } + assert value_found, 'given on resource does not match given requested' + + when 'identifier' + value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } + assert value_found, 'identifier on resource does not match identifier requested' + + when 'name' + value = value.downcase + value_found = can_resolve_path(resource, 'name') do |name| + name&.text&.start_with?(value) || + name&.family&.downcase&.include?(value) || + name&.given&.any? { |given| given.downcase.start_with?(value) } || + name&.prefix&.any? { |prefix| prefix.downcase.start_with?(value) } || + name&.suffix&.any? { |suffix| suffix.downcase.start_with?(value) } + end + assert value_found, 'name on resource does not match name requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Patient search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { '_id': @instance.patient_id } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Patient search by _id' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { '_id': @instance.patient_id } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @patient = reply.try(:resource).try(:entry).try(:first).try(:resource) + @patient_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Patient'), reply) + save_delayed_sequence_references(@patient) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + end + + test 'Server returns expected results from Patient search by identifier' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + identifier_val = resolve_element_from_path(@patient, 'identifier.value') + search_params = { 'identifier': identifier_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by name' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + name_val = resolve_element_from_path(@patient, 'name.family') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by birthdate+name' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + birthdate_val = resolve_element_from_path(@patient, 'birthDate') + name_val = resolve_element_from_path(@patient, 'name.family') + search_params = { 'birthdate': birthdate_val, 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by gender+name' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + gender_val = resolve_element_from_path(@patient, 'gender') + name_val = resolve_element_from_path(@patient, 'name.family') + search_params = { 'gender': gender_val, 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by family+gender' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + family_val = resolve_element_from_path(@patient, 'name.family') + gender_val = resolve_element_from_path(@patient, 'gender') + search_params = { 'family': family_val, 'gender': gender_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Patient search by birthdate+family' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@patient.nil?, 'Expected valid Patient resource to be present' + + birthdate_val = resolve_element_from_path(@patient, 'birthDate') + family_val = resolve_element_from_path(@patient, 'name.family') + search_params = { 'birthdate': birthdate_val, 'family': family_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) + validate_search_reply(versioned_resource_class('Patient'), reply, search_params) + assert_response_ok(reply) + end + + test 'Patient read resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Patient, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@patient, versioned_resource_class('Patient')) + end + + test 'Patient vread resource supported' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Patient, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@patient, versioned_resource_class('Patient')) + end + + test 'Patient history resource supported' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Patient, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@patient, versioned_resource_class('Patient')) + end + + test 'Patient resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '12' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Patient') + end + + test 'At least one of every must support element is provided in any Patient for this patient.' do + metadata do + id '13' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @patient_ary&.any? + must_support_confirmed = {} + extensions_list = { + 'Patient.extension:race': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race', + 'Patient.extension:ethnicity': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity', + 'Patient.extension:birthsex': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex' + } + extensions_list.each do |id, url| + @patient_ary&.each do |resource| + must_support_confirmed[id] = true if resource.extension.any? { |extension| extension.url == url } + break if must_support_confirmed[id] + end + skip_notification = "Could not find #{id} in any of the #{@patient_ary.length} provided Patient resource(s)" + skip skip_notification unless must_support_confirmed[id] + end + + must_support_elements = [ + 'Patient.identifier', + 'Patient.identifier.system', + 'Patient.identifier.value', + 'Patient.name', + 'Patient.name.family', + 'Patient.name.given', + 'Patient.telecom', + 'Patient.telecom.system', + 'Patient.telecom.value', + 'Patient.telecom.use', + 'Patient.gender', + 'Patient.birthDate', + 'Patient.address', + 'Patient.address.line', + 'Patient.address.city', + 'Patient.address.state', + 'Patient.address.postalCode', + 'Patient.address.period', + 'Patient.communication', + 'Patient.communication.language' + ] + must_support_elements.each do |path| + @patient_ary&.each do |resource| + truncated_path = path.gsub('Patient.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @patient_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Patient resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '14' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Patient, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@patient) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_practitioner_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_practitioner_sequence.rb new file mode 100644 index 000000000..cb7818423 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_practitioner_sequence.rb @@ -0,0 +1,222 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301PractitionerSequence < SequenceBase + title 'Practitioner Tests' + + description 'Verify that Practitioner resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Practitioner' # change me + + requires :token + conformance_supports :Practitioner + delayed_sequence + + def validate_resource_item(resource, property, value) + case property + + when 'name' + value = value.downcase + value_found = can_resolve_path(resource, 'name') do |name| + name&.text&.start_with?(value) || + name&.family&.downcase&.include?(value) || + name&.given&.any? { |given| given.downcase.start_with?(value) } || + name&.prefix&.any? { |prefix| prefix.downcase.start_with?(value) } || + name&.suffix&.any? { |suffix| suffix.downcase.start_with?(value) } + end + assert value_found, 'name on resource does not match name requested' + + when 'identifier' + value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } + assert value_found, 'identifier on resource does not match identifier requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Practitioner from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + practitioner_id = @instance.resource_references.find { |reference| reference.resource_type == 'Practitioner' }&.resource_id + skip 'No Practitioner references found from the prior searches' if practitioner_id.nil? + @practitioner = fetch_resource('Practitioner', practitioner_id) + @resources_found = !@practitioner.nil? + end + + test 'Server rejects Practitioner search without authorization' do + metadata do + id '02' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + name_val = resolve_element_from_path(@practitioner, 'name.family') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Practitioner search by name' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + name_val = resolve_element_from_path(@practitioner, 'name.family') + search_params = { 'name': name_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @practitioner = reply.try(:resource).try(:entry).try(:first).try(:resource) + @practitioner_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Practitioner'), reply) + save_delayed_sequence_references(@practitioner) + validate_search_reply(versioned_resource_class('Practitioner'), reply, search_params) + end + + test 'Server returns expected results from Practitioner search by identifier' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@practitioner.nil?, 'Expected valid Practitioner resource to be present' + + identifier_val = resolve_element_from_path(@practitioner, 'identifier.value') + search_params = { 'identifier': identifier_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) + validate_search_reply(versioned_resource_class('Practitioner'), reply, search_params) + assert_response_ok(reply) + end + + test 'Practitioner vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Practitioner, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@practitioner, versioned_resource_class('Practitioner')) + end + + test 'Practitioner history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Practitioner, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@practitioner, versioned_resource_class('Practitioner')) + end + + test 'Practitioner resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Practitioner') + end + + test 'At least one of every must support element is provided in any Practitioner for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @practitioner_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Practitioner.identifier', + 'Practitioner.identifier.system', + 'Practitioner.identifier.value', + 'Practitioner.identifier', + 'Practitioner.name', + 'Practitioner.name.family' + ] + must_support_elements.each do |path| + @practitioner_ary&.each do |resource| + truncated_path = path.gsub('Practitioner.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @practitioner_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Practitioner resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Practitioner, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@practitioner) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_practitionerrole_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_practitionerrole_sequence.rb new file mode 100644 index 000000000..53ac64cb2 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_practitionerrole_sequence.rb @@ -0,0 +1,218 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301PractitionerroleSequence < SequenceBase + title 'PractitionerRole Tests' + + description 'Verify that PractitionerRole resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'PractitionerRole' # change me + + requires :token + conformance_supports :PractitionerRole + delayed_sequence + + def validate_resource_item(resource, property, value) + case property + + when 'specialty' + value_found = can_resolve_path(resource, 'specialty.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'specialty on resource does not match specialty requested' + + when 'practitioner' + value_found = can_resolve_path(resource, 'practitioner.reference') { |value_in_resource| value_in_resource == value } + assert value_found, 'practitioner on resource does not match practitioner requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read PractitionerRole from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + practitionerrole_id = @instance.resource_references.find { |reference| reference.resource_type == 'PractitionerRole' }&.resource_id + skip 'No PractitionerRole references found from the prior searches' if practitionerrole_id.nil? + @practitionerrole = fetch_resource('PractitionerRole', practitionerrole_id) + @resources_found = !@practitionerrole.nil? + end + + test 'Server rejects PractitionerRole search without authorization' do + metadata do + id '02' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + specialty_val = resolve_element_from_path(@practitionerrole, 'specialty.coding.code') + search_params = { 'specialty': specialty_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from PractitionerRole search by specialty' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + specialty_val = resolve_element_from_path(@practitionerrole, 'specialty.coding.code') + search_params = { 'specialty': specialty_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @practitionerrole = reply.try(:resource).try(:entry).try(:first).try(:resource) + @practitionerrole_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('PractitionerRole'), reply) + save_delayed_sequence_references(@practitionerrole) + validate_search_reply(versioned_resource_class('PractitionerRole'), reply, search_params) + end + + test 'Server returns expected results from PractitionerRole search by practitioner' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@practitionerrole.nil?, 'Expected valid PractitionerRole resource to be present' + + practitioner_val = resolve_element_from_path(@practitionerrole, 'practitioner.reference') + search_params = { 'practitioner': practitioner_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) + validate_search_reply(versioned_resource_class('PractitionerRole'), reply, search_params) + assert_response_ok(reply) + end + + test 'PractitionerRole vread resource supported' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:PractitionerRole, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@practitionerrole, versioned_resource_class('PractitionerRole')) + end + + test 'PractitionerRole history resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:PractitionerRole, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@practitionerrole, versioned_resource_class('PractitionerRole')) + end + + test 'PractitionerRole resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '07' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('PractitionerRole') + end + + test 'At least one of every must support element is provided in any PractitionerRole for this patient.' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @practitionerrole_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'PractitionerRole.practitioner', + 'PractitionerRole.organization', + 'PractitionerRole.code', + 'PractitionerRole.specialty', + 'PractitionerRole.location', + 'PractitionerRole.telecom', + 'PractitionerRole.telecom.system', + 'PractitionerRole.telecom.value', + 'PractitionerRole.endpoint' + ] + must_support_elements.each do |path| + @practitionerrole_ary&.each do |resource| + truncated_path = path.gsub('PractitionerRole.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @practitionerrole_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided PractitionerRole resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '09' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:PractitionerRole, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@practitionerrole) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_procedure_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_procedure_sequence.rb new file mode 100644 index 000000000..9f5acd718 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_procedure_sequence.rb @@ -0,0 +1,271 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301ProcedureSequence < SequenceBase + title 'Procedure Tests' + + description 'Verify that Procedure resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Procedure' # change me + + requires :token, :patient_id + conformance_supports :Procedure + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + when 'date' + value_found = can_resolve_path(resource, 'occurrenceDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Procedure search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Procedure search by patient' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + search_params = { 'patient': patient_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @procedure = reply.try(:resource).try(:entry).try(:first).try(:resource) + @procedure_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Procedure'), reply) + save_delayed_sequence_references(@procedure) + validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) + end + + test 'Server returns expected results from Procedure search by patient+date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@procedure.nil?, 'Expected valid Procedure resource to be present' + + patient_val = @instance.patient_id + date_val = resolve_element_from_path(@procedure, 'occurrenceDateTime') + search_params = { 'patient': patient_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Procedure search by patient+code+date' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@procedure.nil?, 'Expected valid Procedure resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@procedure, 'code.coding.code') + date_val = resolve_element_from_path(@procedure, 'occurrenceDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Procedure search by patient+status' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@procedure.nil?, 'Expected valid Procedure resource to be present' + + patient_val = @instance.patient_id + status_val = resolve_element_from_path(@procedure, 'status') + search_params = { 'patient': patient_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) + validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) + assert_response_ok(reply) + end + + test 'Procedure read resource supported' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Procedure, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@procedure, versioned_resource_class('Procedure')) + end + + test 'Procedure vread resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Procedure, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@procedure, versioned_resource_class('Procedure')) + end + + test 'Procedure history resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Procedure, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@procedure, versioned_resource_class('Procedure')) + end + + test 'Procedure resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '09' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Procedure') + end + + test 'At least one of every must support element is provided in any Procedure for this patient.' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @procedure_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Procedure.status', + 'Procedure.code', + 'Procedure.subject', + 'Procedure.performedDateTime', + 'Procedure.performedPeriod' + ] + must_support_elements.each do |path| + @procedure_ary&.each do |resource| + truncated_path = path.gsub('Procedure.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @procedure_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Procedure resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '11' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Procedure, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@procedure) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_provenance_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_provenance_sequence.rb new file mode 100644 index 000000000..750c2032e --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_provenance_sequence.rb @@ -0,0 +1,134 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301ProvenanceSequence < SequenceBase + title 'Provenance Tests' + + description 'Verify that Provenance resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Provenance' # change me + + requires :token + conformance_supports :Provenance + delayed_sequence + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Can read Provenance from the server' do + metadata do + id '01' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + provenance_id = @instance.resource_references.find { |reference| reference.resource_type == 'Provenance' }&.resource_id + skip 'No Provenance references found from the prior searches' if provenance_id.nil? + @provenance = fetch_resource('Provenance', provenance_id) + @resources_found = !@provenance.nil? + end + + test 'Provenance vread resource supported' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Provenance, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@provenance, versioned_resource_class('Provenance')) + end + + test 'Provenance history resource supported' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Provenance, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@provenance, versioned_resource_class('Provenance')) + end + + test 'Provenance resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '04' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Provenance') + end + + test 'At least one of every must support element is provided in any Provenance for this patient.' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @provenance_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Provenance.target', + 'Provenance.recorded', + 'Provenance.agent', + 'Provenance.agent.type', + 'Provenance.agent.who', + 'Provenance.agent.onBehalfOf', + 'Provenance.agent', + 'Provenance.agent.type', + 'Provenance.agent', + 'Provenance.agent.type' + ] + must_support_elements.each do |path| + @provenance_ary&.each do |resource| + truncated_path = path.gsub('Provenance.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @provenance_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Provenance resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '06' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Provenance, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@provenance) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb new file mode 100644 index 000000000..d67a48838 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb @@ -0,0 +1,446 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301PulseOximetrySequence < SequenceBase + title 'Pulse Oximetry Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + search_params = { 'patient': patient_val, 'code': code_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation') + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.category', + 'Observation.category', + 'Observation.category.coding', + 'Observation.category.coding.system', + 'Observation.category.coding.code', + 'Observation.code', + 'Observation.code.coding', + 'Observation.code.coding', + 'Observation.code.coding.system', + 'Observation.code.coding.code', + 'Observation.subject', + 'Observation.effectiveDateTime', + 'Observation.effectivePeriod', + 'Observation.valueQuantity', + 'Observation.valueQuantity.value', + 'Observation.valueQuantity.unit', + 'Observation.valueQuantity.system', + 'Observation.valueQuantity.code', + 'Observation.dataAbsentReason', + 'Observation.component', + 'Observation.component.code', + 'Observation.component.valueQuantity', + 'Observation.component.valueCodeableConcept', + 'Observation.component.valueString', + 'Observation.component.valueBoolean', + 'Observation.component.valueInteger', + 'Observation.component.valueRange', + 'Observation.component.valueRatio', + 'Observation.component.valueSampledData', + 'Observation.component.valueTime', + 'Observation.component.valueDateTime', + 'Observation.component.valuePeriod', + 'Observation.component.dataAbsentReason', + 'Observation.component', + 'Observation.component.code', + 'Observation.component.valueQuantity', + 'Observation.component.valueCodeableConcept', + 'Observation.component.valueString', + 'Observation.component.valueBoolean', + 'Observation.component.valueInteger', + 'Observation.component.valueRange', + 'Observation.component.valueRatio', + 'Observation.component.valueSampledData', + 'Observation.component.valueTime', + 'Observation.component.valueDateTime', + 'Observation.component.valuePeriod', + 'Observation.component.valueQuantity.value', + 'Observation.component.valueCodeableConcept.value', + 'Observation.component.valueString.value', + 'Observation.component.valueBoolean.value', + 'Observation.component.valueInteger.value', + 'Observation.component.valueRange.value', + 'Observation.component.valueRatio.value', + 'Observation.component.valueSampledData.value', + 'Observation.component.valueTime.value', + 'Observation.component.valueDateTime.value', + 'Observation.component.valuePeriod.value', + 'Observation.component.valueQuantity.unit', + 'Observation.component.valueCodeableConcept.unit', + 'Observation.component.valueString.unit', + 'Observation.component.valueBoolean.unit', + 'Observation.component.valueInteger.unit', + 'Observation.component.valueRange.unit', + 'Observation.component.valueRatio.unit', + 'Observation.component.valueSampledData.unit', + 'Observation.component.valueTime.unit', + 'Observation.component.valueDateTime.unit', + 'Observation.component.valuePeriod.unit', + 'Observation.component.valueQuantity.system', + 'Observation.component.valueCodeableConcept.system', + 'Observation.component.valueString.system', + 'Observation.component.valueBoolean.system', + 'Observation.component.valueInteger.system', + 'Observation.component.valueRange.system', + 'Observation.component.valueRatio.system', + 'Observation.component.valueSampledData.system', + 'Observation.component.valueTime.system', + 'Observation.component.valueDateTime.system', + 'Observation.component.valuePeriod.system', + 'Observation.component.valueQuantity.code', + 'Observation.component.valueCodeableConcept.code', + 'Observation.component.valueString.code', + 'Observation.component.valueBoolean.code', + 'Observation.component.valueInteger.code', + 'Observation.component.valueRange.code', + 'Observation.component.valueRatio.code', + 'Observation.component.valueSampledData.code', + 'Observation.component.valueTime.code', + 'Observation.component.valueDateTime.code', + 'Observation.component.valuePeriod.code', + 'Observation.component.dataAbsentReason', + 'Observation.component', + 'Observation.component.code', + 'Observation.component.valueQuantity', + 'Observation.component.valueCodeableConcept', + 'Observation.component.valueString', + 'Observation.component.valueBoolean', + 'Observation.component.valueInteger', + 'Observation.component.valueRange', + 'Observation.component.valueRatio', + 'Observation.component.valueSampledData', + 'Observation.component.valueTime', + 'Observation.component.valueDateTime', + 'Observation.component.valuePeriod', + 'Observation.component.valueQuantity.value', + 'Observation.component.valueCodeableConcept.value', + 'Observation.component.valueString.value', + 'Observation.component.valueBoolean.value', + 'Observation.component.valueInteger.value', + 'Observation.component.valueRange.value', + 'Observation.component.valueRatio.value', + 'Observation.component.valueSampledData.value', + 'Observation.component.valueTime.value', + 'Observation.component.valueDateTime.value', + 'Observation.component.valuePeriod.value', + 'Observation.component.valueQuantity.unit', + 'Observation.component.valueCodeableConcept.unit', + 'Observation.component.valueString.unit', + 'Observation.component.valueBoolean.unit', + 'Observation.component.valueInteger.unit', + 'Observation.component.valueRange.unit', + 'Observation.component.valueRatio.unit', + 'Observation.component.valueSampledData.unit', + 'Observation.component.valueTime.unit', + 'Observation.component.valueDateTime.unit', + 'Observation.component.valuePeriod.unit', + 'Observation.component.valueQuantity.system', + 'Observation.component.valueCodeableConcept.system', + 'Observation.component.valueString.system', + 'Observation.component.valueBoolean.system', + 'Observation.component.valueInteger.system', + 'Observation.component.valueRange.system', + 'Observation.component.valueRatio.system', + 'Observation.component.valueSampledData.system', + 'Observation.component.valueTime.system', + 'Observation.component.valueDateTime.system', + 'Observation.component.valuePeriod.system', + 'Observation.component.valueQuantity.code', + 'Observation.component.valueCodeableConcept.code', + 'Observation.component.valueString.code', + 'Observation.component.valueBoolean.code', + 'Observation.component.valueInteger.code', + 'Observation.component.valueRange.code', + 'Observation.component.valueRatio.code', + 'Observation.component.valueSampledData.code', + 'Observation.component.valueTime.code', + 'Observation.component.valueDateTime.code', + 'Observation.component.valuePeriod.code', + 'Observation.component.dataAbsentReason' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1/us_core_smokingstatus_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_smokingstatus_sequence.rb new file mode 100644 index 000000000..be10d54ed --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1/us_core_smokingstatus_sequence.rb @@ -0,0 +1,295 @@ +# frozen_string_literal: true + +module Inferno + module Sequence + class USCore301SmokingstatusSequence < SequenceBase + title 'Smoking Status Observation Tests' + + description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' + + test_id_prefix 'Observation' # change me + + requires :token, :patient_id + conformance_supports :Observation + + def validate_resource_item(resource, property, value) + case property + + when 'status' + value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } + assert value_found, 'status on resource does not match status requested' + + when 'category' + value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'category on resource does not match category requested' + + when 'code' + value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } + assert value_found, 'code on resource does not match code requested' + + when 'date' + value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| + validate_date_search(value, date) + end + assert value_found, 'date on resource does not match date requested' + + when 'patient' + value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } + assert value_found, 'patient on resource does not match patient requested' + + end + end + + details %( + + The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. + + ) + + @resources_found = false + + test 'Server rejects Observation search without authorization' do + metadata do + id '01' + link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' + desc %( + ) + versions :r4 + end + + @client.set_no_auth + skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? + + search_params = { patient: @instance.patient_id, code: '72166-2' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + @client.set_bearer_token(@instance.token) + assert_response_unauthorized reply + end + + test 'Server returns expected results from Observation search by patient+code' do + metadata do + id '02' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + search_params = { patient: @instance.patient_id, code: '72166-2' } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + assert_response_ok(reply) + assert_bundle_response(reply) + + resource_count = reply&.resource&.entry&.length || 0 + @resources_found = true if resource_count.positive? + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) + @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:smoking_status]) + save_delayed_sequence_references(@observation) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + end + + test 'Server returns expected results from Observation search by patient+category+date' do + metadata do + id '03' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category' do + metadata do + id '04' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + search_params = { 'patient': patient_val, 'category': category_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+category+status' do + metadata do + id '05' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + category_val = resolve_element_from_path(@observation, 'category.coding.code') + status_val = resolve_element_from_path(@observation, 'status') + search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Server returns expected results from Observation search by patient+code+date' do + metadata do + id '06' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + optional + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + assert !@observation.nil?, 'Expected valid Observation resource to be present' + + patient_val = @instance.patient_id + code_val = resolve_element_from_path(@observation, 'code.coding.code') + date_val = resolve_element_from_path(@observation, 'effectiveDateTime') + search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } + search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + + reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) + validate_search_reply(versioned_resource_class('Observation'), reply, search_params) + assert_response_ok(reply) + end + + test 'Observation read resource supported' do + metadata do + id '07' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_read_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation vread resource supported' do + metadata do + id '08' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:vread]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_vread_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation history resource supported' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:history]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_history_reply(@observation, versioned_resource_class('Observation')) + end + + test 'Observation resources associated with Patient conform to US Core R4 profiles' do + metadata do + id '10' + link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:smoking_status]) + end + + test 'At least one of every must support element is provided in any Observation for this patient.' do + metadata do + id '11' + link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' + desc %( + ) + versions :r4 + end + + skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? + must_support_confirmed = {} + must_support_elements = [ + 'Observation.status', + 'Observation.code', + 'Observation.subject', + 'Observation.issued', + 'Observation.valueCodeableConcept' + ] + must_support_elements.each do |path| + @observation_ary&.each do |resource| + truncated_path = path.gsub('Observation.', '') + must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) + break if must_support_confirmed[path] + end + resource_count = @observation_ary.length + + skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] + end + @instance.save! + end + + test 'All references can be resolved' do + metadata do + id '12' + link 'https://www.hl7.org/fhir/DSTU2/references.html' + desc %( + ) + versions :r4 + end + + skip_if_not_supported(:Observation, [:search, :read]) + skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found + + validate_reference_resolutions(@observation) + end + end + end +end diff --git a/lib/app/modules/uscore_v3.0.1_module.yml b/lib/app/modules/uscore_v3.0.1_module.yml new file mode 100644 index 000000000..12d2b3821 --- /dev/null +++ b/lib/app/modules/uscore_v3.0.1_module.yml @@ -0,0 +1,50 @@ +name: uscore_v3.0.1 +title: US Core v3.0.1 +description : US Core v3.0.1 +fhir_version: r4 +default_test_set: ad_hoc_testing +test_sets: + ad_hoc_testing: + view: default + tests: + - name: Discovery + sequences: + - UsCoreR4CapabilityStatementSequence + - SMARTDiscoverySequence + run_all: true + - name: Authorization and Authentication + sequences: + - DynamicRegistrationSequence + - ManualRegistrationSequence + - StandaloneLaunchSequence + - EHRLaunchSequence + - name: US Core R4 Patient Based Profiles + run_all: true + sequences: + - USCore301AllergyintoleranceSequence + - USCore301CareplanSequence + - USCore301CareteamSequence + - USCore301ConditionSequence + - USCore301ImplantableDeviceSequence + - USCore301DiagnosticreportNoteSequence + - USCore301DiagnosticreportLabSequence + - USCore301DocumentreferenceSequence + - USCore301EncounterSequence + - USCore301GoalSequence + - USCore301ImmunizationSequence + - USCore301MedicationrequestSequence + - USCore301SmokingstatusSequence + - USCore301PediatricWeightForHeightSequence + - USCore301ObservationLabSequence + - USCore301PediatricBmiForAgeSequence + - USCore301PulseOximetrySequence + - USCore301PatientSequence + - USCore301ProcedureSequence + - R4ProvenanceSequence + - USCoreR4ClinicalNotesSequence + - USCore301LocationSequence + - USCore301MedicationSequence + - USCore301OrganizationSequence + - USCore301PractitionerSequence + - USCore301PractitionerroleSequence + - USCore301ProvenanceSequence diff --git a/lib/tasks/tasks.rake b/lib/tasks/tasks.rake index 5299eba62..6b2a869e3 100644 --- a/lib/tasks/tasks.rake +++ b/lib/tasks/tasks.rake @@ -7,6 +7,7 @@ require 'dm-core' require 'csv' require 'colorize' require 'optparse' +require 'rubocop/rake_task' require_relative '../app' require_relative '../app/endpoint' @@ -369,6 +370,17 @@ namespace :inferno do |_argv| exit execute(instance, sequences) end + + desc 'Generate Tests' + task :generate, [:generator, :path] do |_t, args| + require_relative("../../generator/#{args.generator}/#{args.generator}_generator") + generator_class = Inferno::Generator::Base.subclasses.first do |c| + c.name.demodulize.downcase.start_with?(args.generator) + end + + generator = generator_class.new(args.path, args.extras) + generator.run + end end namespace :terminology do |_argv| @@ -789,10 +801,6 @@ namespace :terminology do |_argv| end end -namespace :generator do |_argv| - desc 'Generate US Core R4 Tests' - task :us_core_r4 do - path = File.expand_path('../../generators/uscore-r4/generator.rb', __dir__) - system('ruby', path) - end +RuboCop::RakeTask.new(:rubocop) do |t| + t.options = ['--display-cop-names'] end diff --git a/resources/us_core_r4/CapabilityStatement-us-core-server.json b/resources/uscore_v3.0.0/CapabilityStatement-us-core-server.json similarity index 100% rename from resources/us_core_r4/CapabilityStatement-us-core-server.json rename to resources/uscore_v3.0.0/CapabilityStatement-us-core-server.json diff --git a/resources/uscore_v3.0.0/ImplementationGuide-hl7.fhir.us.core-3.0.0.json b/resources/uscore_v3.0.0/ImplementationGuide-hl7.fhir.us.core-3.0.0.json new file mode 100644 index 000000000..a82cd484a --- /dev/null +++ b/resources/uscore_v3.0.0/ImplementationGuide-hl7.fhir.us.core-3.0.0.json @@ -0,0 +1 @@ +{"resourceType":"ImplementationGuide","id":"hl7.fhir.us.core-3.0.0","text":{"status":"generated","div":"

USCoreR4

The official URL for this implementation guide is:

http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core-3.0.0
"},"url":"http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core-3.0.0","version":"3.0.0","name":"USCoreR4","title":"US Core R4","status":"active","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"copyright":"Used by permission of HL7 International - US Realm Steering Committee, all rights reserved Creative Commons License","packageId":"hl7.fhir.us.core","license":"CC0-1.0","fhirVersion":["4.0.0"],"definition":{"grouping":[{"name":"base"},{"id":"medicationrequest-us-core-profile-spreadsheet.xml","name":"USCoreMedicationRequestProfile"},{"id":"goal-us-core-profile-spreadsheet.xml","name":"USCoreGoalProfile"},{"id":"observation-us-core-pediatric-weight-for-height-spreadsheet.xml","name":"USCorePediatricWeightForHeightObservationProfile"},{"id":"condition-us-core-profile-spreadsheet.xml","name":"USCoreCondition"},{"id":"organization-us-core-profile-spreadsheet.xml","name":"USCoreOrganizationProfile"},{"id":"observation-us-core-smokingstatus-profile-spreadsheet.xml","name":"USCoreSmokingStatusProfile"},{"id":"careplan-us-core-profile-spreadsheet.xml","name":"USCoreCarePlanProfile"},{"id":"careteam-us-core-profile-spreadsheet.xml","name":"USCoreCareTeam"},{"id":"device-us-core-profile-spreadsheet.xml","name":"USCoreDeviceProfile"},{"id":"documentreference-us-core-profile-spreadsheet.xml","name":"USCoreDocumentReferenceProfile"},{"id":"medication-us-core-profile-spreadsheet.xml","name":"USCoreMedicationProfile"},{"id":"procedure-us-core-profile-spreadsheet.xml","name":"USCoreProcedureProfile"},{"id":"location-us-core-profile-spreadsheet.xml","name":"USCoreLocation"},{"id":"medicationstatement-us-core-profile-spreadsheet.xml","name":"USCoreMedicationStatementProfile"},{"id":"patient-us-core-profile-spreadsheet.xml","name":"USCorePatientProfile"},{"id":"encounter-us-core-profile-spreadsheet.xml","name":"C:\\Users\\lynn\\Documents\\GitHub\\hl7.fhir.us.core#3.0.0\\source\\resources\\encounter-us-core-profile-spreadsheet"},{"id":"practitioner-us-core-profile-spreadsheet.xml","name":"USCorePractitionerProfile"},{"id":"allergyintolerance-us-core-profile-spreadsheet.xml","name":"USCoreAllergyIntolerance"},{"id":"observation-us-core-pediatric-bmi-for age-spreadsheet.xml","name":"USCorePediatricBMIforAgeObservationProfile"},{"id":"us-core-observation-lab-profile-spreadsheet.xml","name":"USCoreLaboratoryResultObservationProfile"},{"id":"practitionerrole-us-core-profile-spreadsheet.xml","name":"C:\\Users\\lynn\\Documents\\GitHub\\hl7.fhir.us.core#3.0.0\\source\\resources\\practitionerrole-us-core-profile-spreadsheet"},{"id":"immunization-us-core-profile-spreadsheet.xml","name":"USCoreImmunizationProfile"}],"resource":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-glucose.html"}],"reference":{"reference":"Observation/urine-glucose"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Procedure-rehab.html"}],"reference":{"reference":"Procedure/rehab"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CareTeam-example.html"}],"reference":{"reference":"CareTeam/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-leukocyte-esterase.html"}],"reference":{"reference":"Observation/urine-leukocyte-esterase"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-66c8856b-ba11-4876-8aa8-467aad8c11a2.html"}],"reference":{"reference":"Bundle/66c8856b-ba11-4876-8aa8-467aad8c11a2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-bilirubin.html"}],"reference":{"reference":"Observation/urine-bilirubin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Condition-hc1.html"}],"reference":{"reference":"Condition/hc1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-sediment.html"}],"reference":{"reference":"Observation/urine-sediment"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Immunization-imm-1.html"}],"reference":{"reference":"Immunization/imm-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-pediatric-wt-example.html"}],"reference":{"reference":"Observation/pediatric-wt-example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-saint-luke-w-endpoint.html"}],"reference":{"reference":"Organization/saint-luke-w-endpoint"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-ph.html"}],"reference":{"reference":"Observation/urine-ph"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Encounter-example-1.html"}],"reference":{"reference":"Encounter/example-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-chest-xray-report.html"}],"reference":{"reference":"DiagnosticReport/chest-xray-report"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-sodium.html"}],"reference":{"reference":"Observation/serum-sodium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-cbc.html"}],"reference":{"reference":"DiagnosticReport/cbc"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-potassium.html"}],"reference":{"reference":"Observation/serum-potassium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Encounter-1036.html"}],"reference":{"reference":"Encounter/1036"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-some-day-smoker.html"}],"reference":{"reference":"Observation/some-day-smoker"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Location-hl7east.html"}],"reference":{"reference":"Location/hl7east"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-co2.html"}],"reference":{"reference":"Observation/serum-co2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-protein.html"}],"reference":{"reference":"Observation/urine-protein"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Procedure-defib-implant.html"}],"reference":{"reference":"Procedure/defib-implant"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-usg.html"}],"reference":{"reference":"Observation/usg"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-chloride.html"}],"reference":{"reference":"Observation/serum-chloride"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-calcium.html"}],"reference":{"reference":"Observation/serum-calcium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-color.html"}],"reference":{"reference":"Observation/urine-color"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bp-data-absent.html"}],"reference":{"reference":"Observation/bp-data-absent"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Patient-example.html"}],"reference":{"reference":"Patient/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-temperature.html"}],"reference":{"reference":"Observation/temperature"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bmi.html"}],"reference":{"reference":"Observation/bmi"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Medication-uscore-med2.html"}],"reference":{"reference":"Medication/uscore-med2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-cells.html"}],"reference":{"reference":"Observation/urine-cells"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-length.html"}],"reference":{"reference":"Observation/length"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Device-udi-2.html"}],"reference":{"reference":"Device/udi-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationRequest-uscore-mo1.html"}],"reference":{"reference":"MedicationRequest/uscore-mo1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Practitioner-practitioner-2.html"}],"reference":{"reference":"Practitioner/practitioner-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Goal-goal-1.html"}],"reference":{"reference":"Goal/goal-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-rbcs.html"}],"reference":{"reference":"Observation/urine-rbcs"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urobilinogen.html"}],"reference":{"reference":"Observation/urobilinogen"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Medication-uscore-med1.html"}],"reference":{"reference":"Medication/uscore-med1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-bacteria.html"}],"reference":{"reference":"Observation/urine-bacteria"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-uscore-mo3.html"}],"reference":{"reference":"Bundle/uscore-mo3"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-head-circumference.html"}],"reference":{"reference":"Observation/head-circumference"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-metabolic-panel.html"}],"reference":{"reference":"DiagnosticReport/metabolic-panel"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationRequest-uscore-mo2.html"}],"reference":{"reference":"MedicationRequest/uscore-mo2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bun.html"}],"reference":{"reference":"Observation/bun"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Practitioner-practitioner-1.html"}],"reference":{"reference":"Practitioner/practitioner-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-neutrophils.html"}],"reference":{"reference":"Observation/neutrophils"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-nitrite.html"}],"reference":{"reference":"Observation/urine-nitrite"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-oxygen-saturation.html"}],"reference":{"reference":"Observation/oxygen-saturation"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-cardiology-report.html"}],"reference":{"reference":"DiagnosticReport/cardiology-report"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-vitals-panel.html"}],"reference":{"reference":"Observation/vitals-panel"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-blood-pressure.html"}],"reference":{"reference":"Observation/blood-pressure"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-wbcs.html"}],"reference":{"reference":"Observation/urine-wbcs"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-height.html"}],"reference":{"reference":"Observation/height"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-acme-lab.html"}],"reference":{"reference":"Organization/acme-lab"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Device-udi-1.html"}],"reference":{"reference":"Device/udi-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-hemoglobin.html"}],"reference":{"reference":"Observation/hemoglobin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DocumentReference-episode-summary.html"}],"reference":{"reference":"DocumentReference/episode-summary"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-hemoglobin.html"}],"reference":{"reference":"Observation/urine-hemoglobin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-heart-rate.html"}],"reference":{"reference":"Observation/heart-rate"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-epi-cells.html"}],"reference":{"reference":"Observation/urine-epi-cells"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"AllergyIntolerance-example.html"}],"reference":{"reference":"AllergyIntolerance/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-blood-glucose.html"}],"reference":{"reference":"Observation/blood-glucose"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-urinalysis.html"}],"reference":{"reference":"DiagnosticReport/urinalysis"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Condition-example.html"}],"reference":{"reference":"Condition/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationStatement-uscore-ms2.html"}],"reference":{"reference":"MedicationStatement/uscore-ms2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-creatinine.html"}],"reference":{"reference":"Observation/serum-creatinine"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-uscore-ms3.html"}],"reference":{"reference":"Bundle/uscore-ms3"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-total-bilirubin.html"}],"reference":{"reference":"Observation/serum-total-bilirubin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationStatement-uscore-ms1.html"}],"reference":{"reference":"MedicationStatement/uscore-ms1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-pediatric-bmi-example.html"}],"reference":{"reference":"Observation/pediatric-bmi-example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-example-organization-2.html"}],"reference":{"reference":"Organization/example-organization-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-weight.html"}],"reference":{"reference":"Observation/weight"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-mchc.html"}],"reference":{"reference":"Observation/mchc"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-clarity.html"}],"reference":{"reference":"Observation/urine-clarity"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CarePlan-colonoscopy.html"}],"reference":{"reference":"CarePlan/colonoscopy"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-erythrocytes.html"}],"reference":{"reference":"Observation/erythrocytes"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-ketone.html"}],"reference":{"reference":"Observation/urine-ketone"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-respiratory-rate.html"}],"reference":{"reference":"Observation/respiratory-rate"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-medication-codes.html"}],"reference":{"reference":"ValueSet/us-core-medication-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-immunization.html"}],"reference":{"reference":"StructureDefinition/us-core-immunization"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-state.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-state"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitionerrole-practitioner.html"}],"reference":{"reference":"SearchParameter/us-core-practitionerrole-practitioner"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-smokingstatus.html"}],"reference":{"reference":"ValueSet/us-core-observation-smokingstatus"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationstatement-status.html"}],"reference":{"reference":"SearchParameter/us-core-medicationstatement-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-omb-race-category.html"}],"reference":{"reference":"ValueSet/omb-race-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-practitionerrole.html"}],"reference":{"reference":"StructureDefinition/us-core-practitionerrole"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-allergy-substance.html"}],"reference":{"reference":"ValueSet/us-core-allergy-substance"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-narrative-status.html"}],"reference":{"reference":"ValueSet/us-core-narrative-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-cdcrec.html"}],"reference":{"reference":"CodeSystem/cdcrec"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-organization-name.html"}],"reference":{"reference":"SearchParameter/us-core-organization-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-observation-lab.html"}],"reference":{"reference":"StructureDefinition/us-core-observation-lab"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-code.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-pediatric-bmi-for-age.html"}],"reference":{"reference":"StructureDefinition/pediatric-bmi-for-age"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-allergyintolerance.html"}],"reference":{"reference":"StructureDefinition/us-core-allergyintolerance"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-lifecycle-status.html"}],"reference":{"reference":"SearchParameter/us-core-goal-lifecycle-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-code.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-documentreference-type.html"}],"reference":{"reference":"ValueSet/us-core-documentreference-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-gender.html"}],"reference":{"reference":"SearchParameter/us-core-patient-gender"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-practitioner.html"}],"reference":{"reference":"StructureDefinition/us-core-practitioner"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-diagnosticreport-note.html"}],"reference":{"reference":"StructureDefinition/us-core-diagnosticreport-note"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-omb-ethnicity-category.html"}],"reference":{"reference":"ValueSet/omb-ethnicity-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"OperationDefinition-docref.html"}],"reference":{"reference":"OperationDefinition/docref"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-clinical-status.html"}],"reference":{"reference":"SearchParameter/us-core-condition-clinical-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-birthsex.html"}],"reference":{"reference":"StructureDefinition/us-core-birthsex"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-id.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-category.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-class.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-class"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-patient.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CapabilityStatement-us-core-server.html"}],"reference":{"reference":"CapabilityStatement/us-core-server"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-condition-category.html"}],"reference":{"reference":"ValueSet/us-core-condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-detailed-ethnicity.html"}],"reference":{"reference":"ValueSet/detailed-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-patient.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-encounter.html"}],"reference":{"reference":"StructureDefinition/us-core-encounter"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-ndc-vaccine-codes.html"}],"reference":{"reference":"ValueSet/us-core-ndc-vaccine-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-patient.html"}],"reference":{"reference":"StructureDefinition/us-core-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-date.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-medicationstatement.html"}],"reference":{"reference":"StructureDefinition/us-core-medicationstatement"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-procedure-icd10pcs.html"}],"reference":{"reference":"ValueSet/us-core-procedure-icd10pcs"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-provider-specialty.html"}],"reference":{"reference":"ValueSet/us-core-provider-specialty"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-date.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-vaccines-cvx.html"}],"reference":{"reference":"ValueSet/us-core-vaccines-cvx"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-allergyintolerance-clinical-status.html"}],"reference":{"reference":"SearchParameter/us-core-allergyintolerance-clinical-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-date.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-location.html"}],"reference":{"reference":"StructureDefinition/us-core-location"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address.html"}],"reference":{"reference":"SearchParameter/us-core-location-address"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-smoking-status-status.html"}],"reference":{"reference":"ValueSet/us-core-observation-smoking-status-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-usps-state.html"}],"reference":{"reference":"ValueSet/us-core-usps-state"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitioner-name.html"}],"reference":{"reference":"SearchParameter/us-core-practitioner-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-encounter-type.html"}],"reference":{"reference":"ValueSet/us-core-encounter-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-period.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-period"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-code.html"}],"reference":{"reference":"SearchParameter/us-core-observation-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-name.html"}],"reference":{"reference":"SearchParameter/us-core-location-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-onset-date.html"}],"reference":{"reference":"SearchParameter/us-core-condition-onset-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-given.html"}],"reference":{"reference":"SearchParameter/us-core-patient-given"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-procedure.html"}],"reference":{"reference":"StructureDefinition/us-core-procedure"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-type.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-problem.html"}],"reference":{"reference":"ValueSet/us-core-problem"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-condition-category.html"}],"reference":{"reference":"CodeSystem/condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-patient.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-organization-address.html"}],"reference":{"reference":"SearchParameter/us-core-organization-address"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-category.html"}],"reference":{"reference":"SearchParameter/us-core-observation-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-medication.html"}],"reference":{"reference":"StructureDefinition/us-core-medication"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-status.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-date.html"}],"reference":{"reference":"SearchParameter/us-core-observation-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-birthsex.html"}],"reference":{"reference":"ValueSet/birthsex"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-category.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-status.html"}],"reference":{"reference":"SearchParameter/us-core-observation-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-report-and-note-codes.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-report-and-note-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-provider-role.html"}],"reference":{"reference":"ValueSet/us-core-provider-role"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-ethnicity.html"}],"reference":{"reference":"SearchParameter/us-core-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-documentreference.html"}],"reference":{"reference":"StructureDefinition/us-core-documentreference"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-direct.html"}],"reference":{"reference":"StructureDefinition/us-core-direct"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-smoking-status-observation-codes.html"}],"reference":{"reference":"ValueSet/us-core-smoking-status-observation-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-careteam-provider-roles.html"}],"reference":{"reference":"ValueSet/us-core-careteam-provider-roles"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-type.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-date.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-category.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-device.html"}],"reference":{"reference":"StructureDefinition/us-core-device"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-birthdate.html"}],"reference":{"reference":"SearchParameter/us-core-patient-birthdate"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-careteam.html"}],"reference":{"reference":"StructureDefinition/us-core-careteam"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-status.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-clinical-note-type.html"}],"reference":{"reference":"ValueSet/us-core-clinical-note-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-status.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ConceptMap-ndc-cvx.html"}],"reference":{"reference":"ConceptMap/ndc-cvx"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-ethnicity.html"}],"reference":{"reference":"StructureDefinition/us-core-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-status.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-careplan.html"}],"reference":{"reference":"StructureDefinition/us-core-careplan"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-patient.html"}],"reference":{"reference":"SearchParameter/us-core-condition-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-allergyintolerance-patient.html"}],"reference":{"reference":"SearchParameter/us-core-allergyintolerance-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-device-patient.html"}],"reference":{"reference":"SearchParameter/us-core-device-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-code.html"}],"reference":{"reference":"SearchParameter/us-core-condition-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-patient.html"}],"reference":{"reference":"SearchParameter/us-core-observation-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-race.html"}],"reference":{"reference":"SearchParameter/us-core-race"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-patient.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-family.html"}],"reference":{"reference":"SearchParameter/us-core-patient-family"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-smokingstatus.html"}],"reference":{"reference":"StructureDefinition/us-core-smokingstatus"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-status.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationstatement-effective.html"}],"reference":{"reference":"SearchParameter/us-core-medicationstatement-effective"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-race.html"}],"reference":{"reference":"StructureDefinition/us-core-race"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationstatement-patient.html"}],"reference":{"reference":"SearchParameter/us-core-medicationstatement-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-postalcode.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-postalcode"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-id.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-authoredon.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-authoredon"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-status.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-documentreference-category.html"}],"reference":{"reference":"ValueSet/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-patient.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-target-date.html"}],"reference":{"reference":"SearchParameter/us-core-goal-target-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-patient.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-date.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careteam-patient.html"}],"reference":{"reference":"SearchParameter/us-core-careteam-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-organization.html"}],"reference":{"reference":"StructureDefinition/us-core-organization"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-date.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitionerrole-specialty.html"}],"reference":{"reference":"SearchParameter/us-core-practitionerrole-specialty"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-name.html"}],"reference":{"reference":"SearchParameter/us-core-patient-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-device-type.html"}],"reference":{"reference":"SearchParameter/us-core-device-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-procedure-code.html"}],"reference":{"reference":"ValueSet/us-core-procedure-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-diagnosticreport-lab.html"}],"reference":{"reference":"StructureDefinition/us-core-diagnosticreport-lab"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-patient.html"}],"reference":{"reference":"SearchParameter/us-core-goal-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-simple-language.html"}],"reference":{"reference":"ValueSet/simple-language"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-patient.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-condition.html"}],"reference":{"reference":"StructureDefinition/us-core-condition"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-pediatric-weight-for-height.html"}],"reference":{"reference":"StructureDefinition/pediatric-weight-for-height"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-value-codes.html"}],"reference":{"reference":"ValueSet/us-core-observation-value-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-id.html"}],"reference":{"reference":"SearchParameter/us-core-patient-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-city.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-city"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-goal.html"}],"reference":{"reference":"StructureDefinition/us-core-goal"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careteam-status.html"}],"reference":{"reference":"SearchParameter/us-core-careteam-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-us-core-documentreference-category.html"}],"reference":{"reference":"CodeSystem/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-lab-codes.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-lab-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-careplan-category.html"}],"reference":{"reference":"CodeSystem/careplan-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-category.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CapabilityStatement-us-core-client.html"}],"reference":{"reference":"CapabilityStatement/us-core-client"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitioner-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-practitioner-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-patient-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-category.html"}],"reference":{"reference":"SearchParameter/us-core-condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-status.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-medicationrequest.html"}],"reference":{"reference":"StructureDefinition/us-core-medicationrequest"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-detailed-race.html"}],"reference":{"reference":"ValueSet/detailed-race"},"exampleBoolean":false}],"page":{"nameUrl":"index.html","title":"Home","generation":"markdown","page":[{"nameUrl":"guidance.html","title":"Guidance","generation":"markdown","page":[{"nameUrl":"general-guidance.html","title":"General Guidance","generation":"markdown"},{"nameUrl":"clinical-notes-guidance.html","title":"Clinical Notes Guidance","generation":"markdown"},{"nameUrl":"future-of-us-core.html","title":"Future of US Core","generation":"markdown"}]},{"nameUrl":"profiles.html","title":"Profiles and Extensions","generation":"markdown","page":[{"nameUrl":"StructureDefinition-us-core-immunization.html","title":"StructureDefinition US Core Immunization","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-practitionerrole.html","title":"StructureDefinition US Core PractitionerRole","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-observation-lab.html","title":"StructureDefinition US Core Observation Lab","generation":"generated"},{"nameUrl":"StructureDefinition-pediatric-bmi-for-age.html","title":"StructureDefinition Pediatric Bmi For Age","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-allergyintolerance.html","title":"StructureDefinition US Core AllergyIntolerance","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-practitioner.html","title":"StructureDefinition US Core Practitioner","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-diagnosticreport-note.html","title":"StructureDefinition US Core DiagnosticReport Note","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-birthsex.html","title":"StructureDefinition US Core Birthsex","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-encounter.html","title":"StructureDefinition US Core Encounter","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-patient.html","title":"StructureDefinition US Core Patient","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-medicationstatement.html","title":"StructureDefinition US Core MedicationStatement","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-location.html","title":"StructureDefinition US Core Location","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-procedure.html","title":"StructureDefinition US Core Procedure","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-medication.html","title":"StructureDefinition US Core Medication","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-documentreference.html","title":"StructureDefinition US Core DocumentReference","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-direct.html","title":"StructureDefinition US Core Direct","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-device.html","title":"StructureDefinition US Core Device","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-careteam.html","title":"StructureDefinition US Core CareTeam","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-ethnicity.html","title":"StructureDefinition US Core Ethnicity","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-careplan.html","title":"StructureDefinition US Core CarePlan","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-smokingstatus.html","title":"StructureDefinition US Core Smokingstatus","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-race.html","title":"StructureDefinition US Core Race","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-organization.html","title":"StructureDefinition US Core Organization","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-diagnosticreport-lab.html","title":"StructureDefinition US Core DiagnosticReport Lab","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-condition.html","title":"StructureDefinition US Core Condition","generation":"generated"},{"nameUrl":"StructureDefinition-pediatric-weight-for-height.html","title":"StructureDefinition Pediatric Weight For Height","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-goal.html","title":"StructureDefinition US Core Goal","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-medicationrequest.html","title":"StructureDefinition US Core MedicationRequest","generation":"generated"}]},{"nameUrl":"operations.html","title":"Operations","generation":"markdown","page":[{"nameUrl":"OperationDefinition-docref.html","title":"OperationDefinition Docref","generation":"generated"}]},{"nameUrl":"terminology.html","title":"Terminology","generation":"markdown","page":[{"nameUrl":"ValueSet-us-core-medication-codes.html","title":"ValueSet US Core Medication Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-smokingstatus.html","title":"ValueSet US Core Observation Smokingstatus","generation":"generated"},{"nameUrl":"ValueSet-omb-race-category.html","title":"ValueSet Omb Race Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-allergy-substance.html","title":"ValueSet US Core Allergy Substance","generation":"generated"},{"nameUrl":"ValueSet-us-core-narrative-status.html","title":"ValueSet US Core Narrative Status","generation":"generated"},{"nameUrl":"ValueSet-us-core-documentreference-type.html","title":"ValueSet US Core DocumentReference Type","generation":"generated"},{"nameUrl":"ValueSet-omb-ethnicity-category.html","title":"ValueSet Omb Ethnicity Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-condition-category.html","title":"ValueSet US Core Condition Category","generation":"generated"},{"nameUrl":"ValueSet-detailed-ethnicity.html","title":"ValueSet Detailed Ethnicity","generation":"generated"},{"nameUrl":"ValueSet-us-core-ndc-vaccine-codes.html","title":"ValueSet US Core Ndc Vaccine Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-procedure-icd10pcs.html","title":"ValueSet US Core Procedure Icd10pcs","generation":"generated"},{"nameUrl":"ValueSet-us-core-provider-specialty.html","title":"ValueSet US Core Provider Specialty","generation":"generated"},{"nameUrl":"ValueSet-us-core-vaccines-cvx.html","title":"ValueSet US Core Vaccines Cvx","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-smoking-status-status.html","title":"ValueSet US Core Observation Smoking Status Status","generation":"generated"},{"nameUrl":"ValueSet-us-core-usps-state.html","title":"ValueSet US Core Usps State","generation":"generated"},{"nameUrl":"ValueSet-us-core-encounter-type.html","title":"ValueSet US Core Encounter Type","generation":"generated"},{"nameUrl":"ValueSet-us-core-problem.html","title":"ValueSet US Core Problem","generation":"generated"},{"nameUrl":"ValueSet-birthsex.html","title":"ValueSet Birthsex","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-report-and-note-codes.html","title":"ValueSet US Core DiagnosticReport Report And Note Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-provider-role.html","title":"ValueSet US Core Provider Role","generation":"generated"},{"nameUrl":"ValueSet-us-core-smoking-status-observation-codes.html","title":"ValueSet US Core Smoking Status Observation Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-careteam-provider-roles.html","title":"ValueSet US Core CareTeam Provider Roles","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-category.html","title":"ValueSet US Core DiagnosticReport Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-clinical-note-type.html","title":"ValueSet US Core Clinical Note Type","generation":"generated"},{"nameUrl":"ValueSet-us-core-documentreference-category.html","title":"ValueSet US Core DocumentReference Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-procedure-code.html","title":"ValueSet US Core Procedure Code","generation":"generated"},{"nameUrl":"ValueSet-simple-language.html","title":"ValueSet Simple Language","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-value-codes.html","title":"ValueSet US Core Observation Value Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-lab-codes.html","title":"ValueSet US Core DiagnosticReport Lab Codes","generation":"generated"},{"nameUrl":"ValueSet-detailed-race.html","title":"ValueSet Detailed Race","generation":"generated"},{"nameUrl":"CodeSystem-cdcrec.html","title":"CodeSystem Cdcrec","generation":"generated"},{"nameUrl":"CodeSystem-condition-category.html","title":"CodeSystem Condition Category","generation":"generated"},{"nameUrl":"CodeSystem-us-core-documentreference-category.html","title":"CodeSystem US Core DocumentReference Category","generation":"generated"},{"nameUrl":"CodeSystem-careplan-category.html","title":"CodeSystem CarePlan Category","generation":"generated"},{"nameUrl":"ConceptMap-ndc-cvx.html","title":"ConceptMap Ndc Cvx","generation":"generated"}]},{"nameUrl":"searchparameters.html","title":"Search Parameters","generation":"markdown","page":[{"nameUrl":"SearchParameter-us-core-location-address-state.html","title":"SearchParameter US Core Location Address State","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitionerrole-practitioner.html","title":"SearchParameter US Core PractitionerRole Practitioner","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationstatement-status.html","title":"SearchParameter US Core MedicationStatement Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-organization-name.html","title":"SearchParameter US Core Organization Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-code.html","title":"SearchParameter US Core DiagnosticReport Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-lifecycle-status.html","title":"SearchParameter US Core Goal Lifecycle Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-code.html","title":"SearchParameter US Core Procedure Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-gender.html","title":"SearchParameter US Core Patient Gender","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-clinical-status.html","title":"SearchParameter US Core Condition Clinical Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-id.html","title":"SearchParameter US Core DocumentReference Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-category.html","title":"SearchParameter US Core CarePlan Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-class.html","title":"SearchParameter US Core Encounter Class","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-patient.html","title":"SearchParameter US Core MedicationRequest Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-patient.html","title":"SearchParameter US Core DocumentReference Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-date.html","title":"SearchParameter US Core DiagnosticReport Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-date.html","title":"SearchParameter US Core Procedure Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-allergyintolerance-clinical-status.html","title":"SearchParameter US Core AllergyIntolerance Clinical Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-date.html","title":"SearchParameter US Core DocumentReference Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address.html","title":"SearchParameter US Core Location Address","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitioner-name.html","title":"SearchParameter US Core Practitioner Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-period.html","title":"SearchParameter US Core DocumentReference Period","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-code.html","title":"SearchParameter US Core Observation Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-name.html","title":"SearchParameter US Core Location Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-onset-date.html","title":"SearchParameter US Core Condition Onset Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-given.html","title":"SearchParameter US Core Patient Given","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-type.html","title":"SearchParameter US Core Encounter Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-patient.html","title":"SearchParameter US Core Encounter Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-organization-address.html","title":"SearchParameter US Core Organization Address","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-category.html","title":"SearchParameter US Core Observation Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-status.html","title":"SearchParameter US Core DiagnosticReport Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-date.html","title":"SearchParameter US Core Observation Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-category.html","title":"SearchParameter US Core DiagnosticReport Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-status.html","title":"SearchParameter US Core Observation Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-ethnicity.html","title":"SearchParameter US Core Ethnicity","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-type.html","title":"SearchParameter US Core DocumentReference Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-date.html","title":"SearchParameter US Core Encounter Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-birthdate.html","title":"SearchParameter US Core Patient Birthdate","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-status.html","title":"SearchParameter US Core Procedure Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-status.html","title":"SearchParameter US Core Encounter Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-status.html","title":"SearchParameter US Core CarePlan Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-patient.html","title":"SearchParameter US Core Condition Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-allergyintolerance-patient.html","title":"SearchParameter US Core AllergyIntolerance Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-device-patient.html","title":"SearchParameter US Core Device Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-code.html","title":"SearchParameter US Core Condition Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-patient.html","title":"SearchParameter US Core Observation Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-race.html","title":"SearchParameter US Core Race","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-patient.html","title":"SearchParameter US Core CarePlan Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-family.html","title":"SearchParameter US Core Patient Family","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-status.html","title":"SearchParameter US Core MedicationRequest Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationstatement-effective.html","title":"SearchParameter US Core MedicationStatement Effective","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationstatement-patient.html","title":"SearchParameter US Core MedicationStatement Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address-postalcode.html","title":"SearchParameter US Core Location Address Postalcode","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-id.html","title":"SearchParameter US Core Encounter Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-authoredon.html","title":"SearchParameter US Core MedicationRequest Authoredon","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-status.html","title":"SearchParameter US Core DocumentReference Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-patient.html","title":"SearchParameter US Core Procedure Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-target-date.html","title":"SearchParameter US Core Goal Target Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-patient.html","title":"SearchParameter US Core DiagnosticReport Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-date.html","title":"SearchParameter US Core CarePlan Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careteam-patient.html","title":"SearchParameter US Core CareTeam Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-date.html","title":"SearchParameter US Core Immunization Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-identifier.html","title":"SearchParameter US Core Encounter Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitionerrole-specialty.html","title":"SearchParameter US Core PractitionerRole Specialty","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-name.html","title":"SearchParameter US Core Patient Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-device-type.html","title":"SearchParameter US Core Device Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-patient.html","title":"SearchParameter US Core Goal Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-patient.html","title":"SearchParameter US Core Immunization Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-id.html","title":"SearchParameter US Core Patient Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address-city.html","title":"SearchParameter US Core Location Address City","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careteam-status.html","title":"SearchParameter US Core CareTeam Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-category.html","title":"SearchParameter US Core DocumentReference Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitioner-identifier.html","title":"SearchParameter US Core Practitioner Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-identifier.html","title":"SearchParameter US Core Patient Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-category.html","title":"SearchParameter US Core Condition Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-status.html","title":"SearchParameter US Core Immunization Status","generation":"generated"}]},{"nameUrl":"capstatements.html","title":"Capability Statements","generation":"markdown","page":[{"nameUrl":"CapabilityStatement-us-core-server.html","title":"CapabilityStatement US Core Server","generation":"generated"},{"nameUrl":"CapabilityStatement-us-core-client.html","title":"CapabilityStatement US Core Client","generation":"generated"}]},{"nameUrl":"security.html","title":"Security","generation":"markdown"},{"nameUrl":"downloads.html","title":"Downloads","generation":"markdown"},{"nameUrl":"all-examples.html","title":"All Examples","generation":"markdown"},{"nameUrl":"toc.html","title":"Table of Contents","generation":"html"}]}}} \ No newline at end of file diff --git a/resources/us_core_r4/SearchParameter-us-core-allergyintolerance-clinical-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-allergyintolerance-clinical-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-allergyintolerance-clinical-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-allergyintolerance-clinical-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-allergyintolerance-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-allergyintolerance-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-allergyintolerance-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-allergyintolerance-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-careplan-category.json b/resources/uscore_v3.0.0/SearchParameter-us-core-careplan-category.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-careplan-category.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-careplan-category.json diff --git a/resources/us_core_r4/SearchParameter-us-core-careplan-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-careplan-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-careplan-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-careplan-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-careplan-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-careplan-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-careplan-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-careplan-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-careplan-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-careplan-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-careplan-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-careplan-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-careteam-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-careteam-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-careteam-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-careteam-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-careteam-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-careteam-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-careteam-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-careteam-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-condition-category.json b/resources/uscore_v3.0.0/SearchParameter-us-core-condition-category.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-condition-category.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-condition-category.json diff --git a/resources/us_core_r4/SearchParameter-us-core-condition-clinical-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-condition-clinical-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-condition-clinical-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-condition-clinical-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-condition-code.json b/resources/uscore_v3.0.0/SearchParameter-us-core-condition-code.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-condition-code.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-condition-code.json diff --git a/resources/us_core_r4/SearchParameter-us-core-condition-onset-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-condition-onset-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-condition-onset-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-condition-onset-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-condition-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-condition-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-condition-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-condition-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-device-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-device-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-device-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-device-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-device-type.json b/resources/uscore_v3.0.0/SearchParameter-us-core-device-type.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-device-type.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-device-type.json diff --git a/resources/us_core_r4/SearchParameter-us-core-diagnosticreport-category.json b/resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-category.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-diagnosticreport-category.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-category.json diff --git a/resources/us_core_r4/SearchParameter-us-core-diagnosticreport-code.json b/resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-code.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-diagnosticreport-code.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-code.json diff --git a/resources/us_core_r4/SearchParameter-us-core-diagnosticreport-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-diagnosticreport-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-diagnosticreport-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-diagnosticreport-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-diagnosticreport-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-diagnosticreport-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-diagnosticreport-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-documentreference-category.json b/resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-category.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-documentreference-category.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-category.json diff --git a/resources/us_core_r4/SearchParameter-us-core-documentreference-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-documentreference-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-documentreference-id.json b/resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-id.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-documentreference-id.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-id.json diff --git a/resources/us_core_r4/SearchParameter-us-core-documentreference-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-documentreference-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-documentreference-period.json b/resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-period.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-documentreference-period.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-period.json diff --git a/resources/us_core_r4/SearchParameter-us-core-documentreference-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-documentreference-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-documentreference-type.json b/resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-type.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-documentreference-type.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-documentreference-type.json diff --git a/resources/us_core_r4/SearchParameter-us-core-encounter-class.json b/resources/uscore_v3.0.0/SearchParameter-us-core-encounter-class.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-encounter-class.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-encounter-class.json diff --git a/resources/us_core_r4/SearchParameter-us-core-encounter-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-encounter-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-encounter-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-encounter-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-encounter-id.json b/resources/uscore_v3.0.0/SearchParameter-us-core-encounter-id.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-encounter-id.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-encounter-id.json diff --git a/resources/us_core_r4/SearchParameter-us-core-encounter-identifier.json b/resources/uscore_v3.0.0/SearchParameter-us-core-encounter-identifier.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-encounter-identifier.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-encounter-identifier.json diff --git a/resources/us_core_r4/SearchParameter-us-core-encounter-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-encounter-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-encounter-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-encounter-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-encounter-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-encounter-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-encounter-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-encounter-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-encounter-type.json b/resources/uscore_v3.0.0/SearchParameter-us-core-encounter-type.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-encounter-type.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-encounter-type.json diff --git a/resources/us_core_r4/SearchParameter-us-core-goal-lifecycle-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-goal-lifecycle-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-goal-lifecycle-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-goal-lifecycle-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-goal-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-goal-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-goal-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-goal-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-goal-target-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-goal-target-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-goal-target-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-goal-target-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-immunization-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-immunization-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-immunization-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-immunization-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-immunization-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-immunization-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-immunization-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-immunization-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-immunization-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-immunization-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-immunization-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-immunization-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-location-address-city.json b/resources/uscore_v3.0.0/SearchParameter-us-core-location-address-city.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-location-address-city.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-location-address-city.json diff --git a/resources/us_core_r4/SearchParameter-us-core-location-address-postalcode.json b/resources/uscore_v3.0.0/SearchParameter-us-core-location-address-postalcode.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-location-address-postalcode.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-location-address-postalcode.json diff --git a/resources/us_core_r4/SearchParameter-us-core-location-address-state.json b/resources/uscore_v3.0.0/SearchParameter-us-core-location-address-state.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-location-address-state.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-location-address-state.json diff --git a/resources/us_core_r4/SearchParameter-us-core-location-address.json b/resources/uscore_v3.0.0/SearchParameter-us-core-location-address.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-location-address.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-location-address.json diff --git a/resources/us_core_r4/SearchParameter-us-core-location-name.json b/resources/uscore_v3.0.0/SearchParameter-us-core-location-name.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-location-name.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-location-name.json diff --git a/resources/us_core_r4/SearchParameter-us-core-medicationrequest-authoredon.json b/resources/uscore_v3.0.0/SearchParameter-us-core-medicationrequest-authoredon.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-medicationrequest-authoredon.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-medicationrequest-authoredon.json diff --git a/resources/us_core_r4/SearchParameter-us-core-medicationrequest-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-medicationrequest-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-medicationrequest-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-medicationrequest-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-medicationrequest-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-medicationrequest-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-medicationrequest-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-medicationrequest-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-medicationstatement-effective.json b/resources/uscore_v3.0.0/SearchParameter-us-core-medicationstatement-effective.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-medicationstatement-effective.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-medicationstatement-effective.json diff --git a/resources/us_core_r4/SearchParameter-us-core-medicationstatement-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-medicationstatement-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-medicationstatement-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-medicationstatement-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-medicationstatement-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-medicationstatement-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-medicationstatement-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-medicationstatement-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-observation-category.json b/resources/uscore_v3.0.0/SearchParameter-us-core-observation-category.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-observation-category.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-observation-category.json diff --git a/resources/us_core_r4/SearchParameter-us-core-observation-code.json b/resources/uscore_v3.0.0/SearchParameter-us-core-observation-code.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-observation-code.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-observation-code.json diff --git a/resources/us_core_r4/SearchParameter-us-core-observation-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-observation-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-observation-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-observation-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-observation-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-observation-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-observation-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-observation-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-observation-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-observation-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-observation-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-observation-status.json diff --git a/resources/us_core_r4/SearchParameter-us-core-organization-address.json b/resources/uscore_v3.0.0/SearchParameter-us-core-organization-address.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-organization-address.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-organization-address.json diff --git a/resources/us_core_r4/SearchParameter-us-core-organization-name.json b/resources/uscore_v3.0.0/SearchParameter-us-core-organization-name.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-organization-name.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-organization-name.json diff --git a/resources/us_core_r4/SearchParameter-us-core-patient-birthdate.json b/resources/uscore_v3.0.0/SearchParameter-us-core-patient-birthdate.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-patient-birthdate.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-patient-birthdate.json diff --git a/resources/us_core_r4/SearchParameter-us-core-patient-family.json b/resources/uscore_v3.0.0/SearchParameter-us-core-patient-family.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-patient-family.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-patient-family.json diff --git a/resources/us_core_r4/SearchParameter-us-core-patient-gender.json b/resources/uscore_v3.0.0/SearchParameter-us-core-patient-gender.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-patient-gender.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-patient-gender.json diff --git a/resources/us_core_r4/SearchParameter-us-core-patient-given.json b/resources/uscore_v3.0.0/SearchParameter-us-core-patient-given.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-patient-given.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-patient-given.json diff --git a/resources/us_core_r4/SearchParameter-us-core-patient-id.json b/resources/uscore_v3.0.0/SearchParameter-us-core-patient-id.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-patient-id.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-patient-id.json diff --git a/resources/us_core_r4/SearchParameter-us-core-patient-identifier.json b/resources/uscore_v3.0.0/SearchParameter-us-core-patient-identifier.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-patient-identifier.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-patient-identifier.json diff --git a/resources/us_core_r4/SearchParameter-us-core-patient-name.json b/resources/uscore_v3.0.0/SearchParameter-us-core-patient-name.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-patient-name.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-patient-name.json diff --git a/resources/us_core_r4/SearchParameter-us-core-practitioner-identifier.json b/resources/uscore_v3.0.0/SearchParameter-us-core-practitioner-identifier.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-practitioner-identifier.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-practitioner-identifier.json diff --git a/resources/us_core_r4/SearchParameter-us-core-practitioner-name.json b/resources/uscore_v3.0.0/SearchParameter-us-core-practitioner-name.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-practitioner-name.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-practitioner-name.json diff --git a/resources/us_core_r4/SearchParameter-us-core-practitionerrole-practitioner.json b/resources/uscore_v3.0.0/SearchParameter-us-core-practitionerrole-practitioner.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-practitionerrole-practitioner.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-practitionerrole-practitioner.json diff --git a/resources/us_core_r4/SearchParameter-us-core-practitionerrole-specialty.json b/resources/uscore_v3.0.0/SearchParameter-us-core-practitionerrole-specialty.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-practitionerrole-specialty.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-practitionerrole-specialty.json diff --git a/resources/us_core_r4/SearchParameter-us-core-procedure-code.json b/resources/uscore_v3.0.0/SearchParameter-us-core-procedure-code.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-procedure-code.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-procedure-code.json diff --git a/resources/us_core_r4/SearchParameter-us-core-procedure-date.json b/resources/uscore_v3.0.0/SearchParameter-us-core-procedure-date.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-procedure-date.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-procedure-date.json diff --git a/resources/us_core_r4/SearchParameter-us-core-procedure-patient.json b/resources/uscore_v3.0.0/SearchParameter-us-core-procedure-patient.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-procedure-patient.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-procedure-patient.json diff --git a/resources/us_core_r4/SearchParameter-us-core-procedure-status.json b/resources/uscore_v3.0.0/SearchParameter-us-core-procedure-status.json similarity index 100% rename from resources/us_core_r4/SearchParameter-us-core-procedure-status.json rename to resources/uscore_v3.0.0/SearchParameter-us-core-procedure-status.json diff --git a/resources/us_core_r4/StructureDefinition-pediatric-bmi-for-age.json b/resources/uscore_v3.0.0/StructureDefinition-pediatric-bmi-for-age.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-pediatric-bmi-for-age.json rename to resources/uscore_v3.0.0/StructureDefinition-pediatric-bmi-for-age.json diff --git a/resources/us_core_r4/StructureDefinition-pediatric-weight-for-height.json b/resources/uscore_v3.0.0/StructureDefinition-pediatric-weight-for-height.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-pediatric-weight-for-height.json rename to resources/uscore_v3.0.0/StructureDefinition-pediatric-weight-for-height.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-allergyintolerance.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-allergyintolerance.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-allergyintolerance.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-allergyintolerance.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-careplan.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-careplan.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-careplan.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-careplan.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-careteam.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-careteam.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-careteam.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-careteam.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-condition.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-condition.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-condition.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-condition.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-device.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-device.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-device.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-device.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-diagnosticreport-lab.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-diagnosticreport-lab.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-diagnosticreport-lab.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-diagnosticreport-lab.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-diagnosticreport-note.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-diagnosticreport-note.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-diagnosticreport-note.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-diagnosticreport-note.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-documentreference.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-documentreference.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-documentreference.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-documentreference.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-encounter.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-encounter.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-encounter.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-encounter.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-goal.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-goal.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-goal.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-goal.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-immunization.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-immunization.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-immunization.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-immunization.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-location.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-location.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-location.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-location.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-medication.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-medication.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-medication.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-medication.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-medicationrequest.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-medicationrequest.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-medicationrequest.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-medicationrequest.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-medicationstatement.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-medicationstatement.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-medicationstatement.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-medicationstatement.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-observation-lab.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-observation-lab.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-observation-lab.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-observation-lab.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-organization.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-organization.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-organization.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-organization.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-patient.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-patient.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-patient.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-patient.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-practitioner.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-practitioner.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-practitioner.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-practitioner.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-practitionerrole.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-practitionerrole.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-practitionerrole.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-practitionerrole.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-procedure.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-procedure.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-procedure.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-procedure.json diff --git a/resources/us_core_r4/StructureDefinition-us-core-smokingstatus.json b/resources/uscore_v3.0.0/StructureDefinition-us-core-smokingstatus.json similarity index 100% rename from resources/us_core_r4/StructureDefinition-us-core-smokingstatus.json rename to resources/uscore_v3.0.0/StructureDefinition-us-core-smokingstatus.json diff --git a/resources/uscore_v3.0.1/CapabilityStatement-us-core-client.json b/resources/uscore_v3.0.1/CapabilityStatement-us-core-client.json new file mode 100644 index 000000000..c7c60ab87 --- /dev/null +++ b/resources/uscore_v3.0.1/CapabilityStatement-us-core-client.json @@ -0,0 +1 @@ +{"resourceType":"CapabilityStatement","id":"us-core-client","text":{"status":"generated","div":"

US Core Client CapabilityStatement

  • FHIR Version: 4.0.0
  • Supported formats: xml, json
  • Published: 2019-09-12
  • Published by: HL7 International - US Realm Steering Committee

​The Section describes the expected capabilities of the US Core Client which is responsible for creating and initiating the queries for information about an individual patient. The complete list of FHIR profiles, RESTful operations, and search parameters supported by US Core Servers are defined in the Conformance Requirements for Server. US Core Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.

FHIR RESTful Capabilities

The US Core Client SHALL:

  1. Support fetching and querying of one or more US Core profile(s), using the supported RESTful interactions and search parameters declared in the US Core Server CapabilityStatement.

Security:

  1. See the [General Security Considerations] section for requirements and recommendations.

Summary of System Wide Interactions

  • MAY support the\ttransaction interaction.
  • MAY support the\tbatch interaction.
  • MAY support the\tsearch-system interaction.
  • MAY support the\thistory-system interaction.
  • RESTful Capabilities by Resource/Profile:

    Summary of Search Criteria

    Resource TypeSupported ProfilesSupported SearchesSupported _includesSupported _revincludesSupported Operations
    AllergyIntoleranceUS Core AllergyIntolerance Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tclinical-status, \n\t\t\t\t\t\t\tpatient, patient+clinical-status\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    CarePlanUS Core CarePlan Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcategory, \n\t\t\t\t\t\t\tdate, \n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tstatus, patient+category+status, patient+category+date, patient+category+status+date, patient+category\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    CareTeamUS Core CareTeam Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tstatus, patient+status\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ConditionUS Core Condition Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcategory, \n\t\t\t\t\t\t\tclinical-status, \n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tonset-date, \n\t\t\t\t\t\t\tcode, patient+clinical-status, patient+onset-date, patient+code, patient+category\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    DeviceUS Core Implantable Device Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\ttype, patient+type\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    DiagnosticReportUS Core DiagnosticReport Profile for Report and Note exchange, \n\n\t\t\t\t\t\tUS Core DiagnosticReport Profile for Laboratory Results Reporting\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tstatus, \n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tcategory, \n\t\t\t\t\t\t\tcode, \n\t\t\t\t\t\t\tdate, patient+code, patient+code+date, patient+status, patient+category, patient+category+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    DocumentReferenceUS Core DocumentReference Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_id, \n\t\t\t\t\t\t\tstatus, \n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tcategory, \n\t\t\t\t\t\t\ttype, \n\t\t\t\t\t\t\tdate, \n\t\t\t\t\t\t\tperiod, patient+type, patient+status, patient+category, patient+type+period, patient+category+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t$docref\n\t\t\t\t\t\t
    EncounterUS Core Encounter Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_id, \n\t\t\t\t\t\t\tclass, \n\t\t\t\t\t\t\tdate, \n\t\t\t\t\t\t\tidentifier, \n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tstatus, \n\t\t\t\t\t\t\ttype, date+patient, patient+type, class+patient, patient+status\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    GoalUS Core Goal Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlifecycle-status, \n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\ttarget-date, patient+target-date, patient+lifecycle-status\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ImmunizationUS Core Immunization Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tstatus, \n\t\t\t\t\t\t\tdate, patient+status, patient+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    LocationUS Core Location Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tname, \n\t\t\t\t\t\t\taddress, \n\t\t\t\t\t\t\taddress-city, \n\t\t\t\t\t\t\taddress-state, \n\t\t\t\t\t\t\taddress-postalcode\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    MedicationUS Core Medication Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    MedicationRequestUS Core MedicationRequest Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tstatus, \n\t\t\t\t\t\t\tintent, \n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tencounter, \n\t\t\t\t\t\t\tauthoredon, patient+intent+status, patient+intent, patient+intent+encounter, patient+intent+authoredon\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tMedicationRequest:medication\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ObservationUS Core Smoking Status Observation Profile, \n\n\t\t\t\t\t\tUS Core Pediatric Weight for Height Observation Profile, \n\n\t\t\t\t\t\tUS Core Laboratory Result Observation Profile, \n\n\t\t\t\t\t\tUS Core Pediatric BMI for Age Observation Profile, \n\n\t\t\t\t\t\tUS Core Pulse Oximetry Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tstatus, \n\t\t\t\t\t\t\tcategory, \n\t\t\t\t\t\t\tcode, \n\t\t\t\t\t\t\tdate, \n\t\t\t\t\t\t\tpatient, patient+category+status, patient+code, patient+code+date, patient+category, patient+category+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    OrganizationUS Core Organization Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tname, \n\t\t\t\t\t\t\taddress\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    PatientUS Core Patient Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_id, \n\t\t\t\t\t\t\tbirthdate, \n\t\t\t\t\t\t\tfamily, \n\t\t\t\t\t\t\tgender, \n\t\t\t\t\t\t\tgiven, \n\t\t\t\t\t\t\tidentifier, \n\t\t\t\t\t\t\tname, gender+name, family+gender, birthdate+name, birthdate+family\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    PractitionerUS Core Practitioner Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tname, \n\t\t\t\t\t\t\tidentifier\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    PractitionerRoleUS Core PractitionerRole Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tspecialty, \n\t\t\t\t\t\t\tpractitioner\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPractitionerRole:endpoint, PractitionerRole:practitioner\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ProcedureUS Core Procedure Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tstatus, \n\t\t\t\t\t\t\tpatient, \n\t\t\t\t\t\t\tdate, \n\t\t\t\t\t\t\tcode, patient+code+date, patient+status, patient+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ProvenanceUS Core Provenance Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n \n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ValueSet\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n \n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t$expand\n\t\t\t\t\t\t

    AllergyIntolerance

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core AllergyIntolerance Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a AllergyIntolerance resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/AllergyIntolerance/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/AllergyIntolerance?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDclinical-status\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/AllergyIntolerance?clinical-status=[system]|[code]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/AllergyIntolerance?patient=[patient]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+clinical-status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/AllergyIntolerance?patient=[patient]&clinical-status=[system]|[code]

    CarePlan

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core CarePlan Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a CarePlan resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/CarePlan/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/CarePlan?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/CarePlan?category=[system]|[code]
    SHOULDdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/CarePlan?date=[date]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/CarePlan?status=[status]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+category+status\n\t\t\t\t\t\treference+token+token\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]&category=[system]|[code]&status=[status]
    SHOULDpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]&category=[system]|[code]&date=[date]
    SHOULDpatient+category+status+date\n\t\t\t\t\t\treference+token+token+date\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]&category=[system]|[code]&status=[status]&date=[date]
    SHOULDpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]&category=[system]|[code]

    CareTeam

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core CareTeam Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a CareTeam resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/CareTeam/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/CareTeam?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/CareTeam?patient=[patient]
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/CareTeam?status=[status]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/CareTeam?patient=[patient]&status=[status]

    Condition

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Condition Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Condition resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Condition/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Condition?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Condition?category=[system]|[code]
    SHOULDclinical-status\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Condition?clinical-status=[system]|[code]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]
    SHOULDonset-date\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Condition?onset-date=[onset-date]
    SHOULDcode\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Condition?code=[system]|[code]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+clinical-status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]&clinical-status=[system]|[code]
    SHOULDpatient+onset-date\n\t\t\t\t\t\treference+date\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]&onset-date=[onset-date]
    SHOULDpatient+code\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]&code=[system]|[code]
    SHOULDpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]&category=[system]|[code]

    Device

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Implantable Device Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Device resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Device/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Device?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Device?patient=[patient]
    SHOULDtype\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Device?type=[system]|[code]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+type\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Device?patient=[patient]&type=[system]|[code]

    DiagnosticReport

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core DiagnosticReport Profile for Report and Note exchange, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core DiagnosticReport Profile for Laboratory Results Reporting\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.
    create

    This conformance expectation applies only to the US Core DiagnosticReport Profile for Report and Note exchange profile. The conformance expectation for the US Core DiagnosticReport Profile for Laboratory Results Reporting is MAY.

    \n
    search-type

    The conformance expectations for Composite Searches differ by profile. See the Quick Start section for profile specific expectations.

    \n

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a DiagnosticReport resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/DiagnosticReport/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/DiagnosticReport?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DiagnosticReport?status=[status]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]
    SHOULDcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DiagnosticReport?category=[system]|[code]
    SHOULDcode\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DiagnosticReport?code=[system]|[code]
    SHOULDdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/DiagnosticReport?date=[date]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+code\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&code=[system]|[code]
    SHOULDpatient+code+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&code=[system]|[code]&date=[date]
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&status=[status]
    SHOULDpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&category=[system]|[code]
    SHOULDpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&category=[system]|[code]&date=[date]

    DocumentReference

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core DocumentReference Profile\n\t\t\t\t\n\t\t\t\t

    Resource Specific Documentation:

    The DocumentReference.type binding SHALL support at a minimum the 5 Common Clinical Notes and may extend to the full US Core DocumentReference Type Value Set

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Operation Summary:

    • SHOULD support the \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$docref operation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

      A client SHOULD be capable of transacting a $docref operation and capable of receiving at least a reference to a generated CCD document, and MAY be able to receive other document types, if available. SHOULD be capable of receiving documents as included resources in response to the operation.

      GET [base]/DocumentReference/$docref?patient=[id]

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a DocumentReference resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/DocumentReference/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/DocumentReference?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULD_id\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DocumentReference?_id=[id]
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DocumentReference?status=[status]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]
    SHOULDcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DocumentReference?category=[system]|[code]
    SHOULDtype\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DocumentReference?type=[system]|[code]
    SHOULDdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/DocumentReference?date=[date]
    SHOULDperiod\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/DocumentReference?period=[period]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+type\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&type=[system]|[code]
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&status=[status]
    SHOULDpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&category=[system]|[code]
    SHOULDpatient+type+period\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&type=[system]|[code]&period=[period]
    SHOULDpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&category=[system]|[code]&date=[date]

    Encounter

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Encounter Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Encounter resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Encounter/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Encounter?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULD_id\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?_id=[id]
    SHOULDclass\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?class=[system]|[code]
    SHOULDdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Encounter?date=[date]
    SHOULDidentifier\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?identifier=[system]|[code]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Encounter?patient=[patient]
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?status=[status]
    SHOULDtype\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?type=[system]|[code]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDdate+patient\n\t\t\t\t\t\tdate+reference\n\t\t\t\t\t\tGET [base]/Encounter?date=[date]&patient=[patient]
    SHOULDpatient+type\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Encounter?patient=[patient]&type=[system]|[code]
    SHOULDclass+patient\n\t\t\t\t\t\ttoken+reference\n\t\t\t\t\t\tGET [base]/Encounter?class=[system]|[code]&patient=[patient]
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Encounter?patient=[patient]&status=[status]

    Goal

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Goal Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Goal resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Goal/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Goal?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDlifecycle-status\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Goal?lifecycle-status=[system]|[code]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Goal?patient=[patient]
    SHOULDtarget-date\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Goal?target-date=[target-date]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+target-date\n\t\t\t\t\t\treference+date\n\t\t\t\t\t\tGET [base]/Goal?patient=[patient]&target-date=[target-date]
    SHOULDpatient+lifecycle-status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Goal?patient=[patient]&lifecycle-status=[system]|[code]

    Immunization

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Immunization Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Immunization resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Immunization/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Immunization?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Immunization?patient=[patient]
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Immunization?status=[status]
    SHOULDdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Immunization?date=[date]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Immunization?patient=[patient]&status=[status]
    SHOULDpatient+date\n\t\t\t\t\t\treference+date\n\t\t\t\t\t\tGET [base]/Immunization?patient=[patient]&date=[date]

    Location

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Location Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Location resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Location/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Location?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDname\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?name=[name]
    SHOULDaddress\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?address=[address]
    SHOULDaddress-city\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?address-city=[address-city]
    SHOULDaddress-state\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?address-state=[address-state]
    SHOULDaddress-postalcode\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?address-postalcode=[address-postalcode]

    Medication

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Medication Profile\n\t\t\t\t\n\t\t\t\t

    Resource Specific Documentation:

    The MedicationStatement and MedicationRequest resources can represent a medication, using an external reference to a Medication resource. If an external Medication Resource is used in a MedicationStatement or a MedicationRequest, then the READ and SEARCH Criteria SHALL be supported.

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Medication resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Medication/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Medication?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t


    MedicationRequest

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core MedicationRequest Profile\n\t\t\t\t\n\t\t\t\t

    Resource Specific Documentation:

    The MedicationRequest resources can represent a medication using either a code or refer to the Medication resource. When referencing Medication, the resource may be contained or an external resource. The server application MAY choose any one way or more than one method, but if an external reference to Medication is used, the server SHALL support the _include` parameter for searching this element. The client application must support all methods.

    For example, A server SHALL be capable of returning all medications for a patient using one of or both:

    GET /MedicationRequest?patient=[id]

    GET /MedicationRequest?patient=[id]&_include=MedicationRequest:medication

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a MedicationRequest resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/MedicationRequest/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _includes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tMedicationRequest:medication - GET [base]/MedicationRequest?[parameter=value]&_include=MedicationRequest:medication\n\t\t\t\t\t\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/MedicationRequest?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/MedicationRequest?status=[status]
    SHOULDintent\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/MedicationRequest?intent=[system]|[code]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]
    SHOULDencounter\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/MedicationRequest?encounter=[encounter]
    SHOULDauthoredon\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/MedicationRequest?authoredon=[authoredon]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+intent+status\n\t\t\t\t\t\treference+token+token\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]&intent=[system]|[code]&status=[status]
    SHOULDpatient+intent\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]&intent=[system]|[code]
    SHOULDpatient+intent+encounter\n\t\t\t\t\t\treference+token+reference\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]&intent=[system]|[code]&encounter=[encounter]
    SHOULDpatient+intent+authoredon\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]&intent=[system]|[code]&authoredon=[authoredon]

    Observation

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Smoking Status Observation Profile, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Pediatric Weight for Height Observation Profile, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Laboratory Result Observation Profile, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Pediatric BMI for Age Observation Profile, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Pulse Oximetry Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.
    search-type

    The conformance expectations for Composite Searches differ by profile. See the Quick Start section for profile specific expectations.

    \n

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Observation resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Observation/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Observation?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Observation?status=[status]
    SHOULDcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Observation?category=[system]|[code]
    SHOULDcode\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Observation?code=[system]|[code]
    SHOULDdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Observation?date=[date]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+category+status\n\t\t\t\t\t\treference+token+token\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&category=[system]|[code]&status=[status]
    SHOULDpatient+code\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&code=[system]|[code]
    SHOULDpatient+code+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&code=[system]|[code]&date=[date]
    SHOULDpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&category=[system]|[code]
    SHOULDpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&category=[system]|[code]&date=[date]

    Organization

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Organization Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Organization resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Organization/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Organization?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDname\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Organization?name=[name]
    SHOULDaddress\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Organization?address=[address]

    Patient

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Patient Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Patient resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Patient/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Patient?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULD_id\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Patient?_id=[id]
    SHOULDbirthdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Patient?birthdate=[birthdate]
    SHOULDfamily\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Patient?family=[family]
    SHOULDgender\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Patient?gender=[system]|[code]
    SHOULDgiven\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Patient?given=[given]
    SHOULDidentifier\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Patient?identifier=[system]|[code]
    SHOULDname\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Patient?name=[name]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDgender+name\n\t\t\t\t\t\ttoken+string\n\t\t\t\t\t\tGET [base]/Patient?gender=[system]|[code]&name=[name]
    SHOULDfamily+gender\n\t\t\t\t\t\tstring+token\n\t\t\t\t\t\tGET [base]/Patient?family=[family]&gender=[system]|[code]
    SHOULDbirthdate+name\n\t\t\t\t\t\tdate+string\n\t\t\t\t\t\tGET [base]/Patient?birthdate=[birthdate]&name=[name]
    SHOULDbirthdate+family\n\t\t\t\t\t\tdate+string\n\t\t\t\t\t\tGET [base]/Patient?birthdate=[birthdate]&family=[family]

    Practitioner

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Practitioner Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Practitioner resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Practitioner/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Practitioner?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDname\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Practitioner?name=[name]
    SHOULDidentifier\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Practitioner?identifier=[system]|[code]

    PractitionerRole

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core PractitionerRole Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a PractitionerRole resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/PractitionerRole/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _includes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tPractitionerRole:endpoint - GET [base]/PractitionerRole?[parameter=value]&_include=PractitionerRole:endpoint\n\t\t\t\t\t\n\t\t\t\t\t\tPractitionerRole:practitioner - GET [base]/PractitionerRole?[parameter=value]&_include=PractitionerRole:practitioner\n\t\t\t\t\t\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/PractitionerRole?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDspecialty\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/PractitionerRole?specialty=[system]|[code]
    SHOULDpractitioner\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/PractitionerRole?practitioner=[practitioner]

    Procedure

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Procedure Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Procedure resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Procedure/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Client SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Procedure?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHOULDstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Procedure?status=[status]
    SHOULDpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Procedure?patient=[patient]
    SHOULDdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Procedure?date=[date]
    SHOULDcode\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Procedure?code=[system]|[code]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+code+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/Procedure?patient=[patient]&code=[system]|[code]&date=[date]
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Procedure?patient=[patient]&status=[status]
    SHOULDpatient+date\n\t\t\t\t\t\treference+date\n\t\t\t\t\t\tGET [base]/Procedure?patient=[patient]&date=[date]

    Provenance

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Provenance Profile\n\t\t\t\t\n\t\t\t\t

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Client SHALL be capable of fetching a Provenance resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Provenance/[id]\n\t\t\t\t


    ValueSet

    Operation Summary:

    • SHOULD support the \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$expand operation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

      A client can determine the note and report types support by a server by invoking the standard FHIR Value Set Expansion ($expand) operation defined in the FHIR R4 specification. Because servers may support different read and write formats, it also is used to determine the formats (for example, text, pdf) the server supports read and write transactions.



    "},"url":"http://hl7.org/fhir/us/core/CapabilityStatement/us-core-client","version":"3.0.1","name":"UsCoreClientCapabilityStatement","title":"US Core Client CapabilityStatement","status":"active","experimental":false,"date":"2019-09-12T00:00:00+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"​The Section describes the expected capabilities of the US Core Client which is responsible for creating and initiating the queries for information about an individual patient. The complete list of FHIR profiles, RESTful operations, and search parameters supported by US Core Servers are defined in the [Conformance Requirements for Server](CapabilityStatement-us-core-server.html). US Core Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"kind":"requirements","fhirVersion":"4.0.0","format":["xml","json"],"patchFormat":["application/json-patch+json"],"implementationGuide":["http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core-3.0.1"],"rest":[{"mode":"client","documentation":"The US Core Client **SHALL**:\n\n1. Support fetching and querying of one or more US Core profile(s), using the supported RESTful interactions and search parameters declared in the US Core Server CapabilityStatement.\n","security":{"description":"1. See the [General Security Considerations] section for requirements and recommendations."},"resource":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"clinical-status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"AllergyIntolerance","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"clinical-status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-allergyintolerance-clinical-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-allergyintolerance-patient","type":"reference"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"status"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"CarePlan","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-status","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"CareTeam","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careteam-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careteam-status","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"clinical-status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"onset-date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Condition","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"clinical-status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-clinical-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"onset-date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-onset-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"code","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-code","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"type"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Device","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-device-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"type","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-device-type","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"DiagnosticReport","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note","http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"create","documentation":"This conformance expectation applies **only** to the *US Core DiagnosticReport Profile for Report and Note exchange* profile. The conformance expectation for the *US Core DiagnosticReport Profile for Laboratory Results Reporting* is **MAY**."},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type","documentation":"The conformance expectations for Composite Searches differ by profile. See the Quick Start section for profile specific expectations."},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"code","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-code","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-date","type":"date"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"type"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"type"},{"url":"required","valueString":"period"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"DocumentReference","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference"],"documentation":"The DocumentReference.type binding SHALL support at a minimum the [5 Common Clinical Notes](ValueSet-us-core-clinical-note-type.html) and may extend to the full US Core DocumentReference Type Value Set","interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"_id","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-id","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"type","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-type","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"period","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-period","type":"date"}],"operation":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"docref","definition":"http://hl7.org/fhir/us/core/OperationDefinition/docref","documentation":"A client **SHOULD** be capable of transacting a $docref operation and capable of receiving at least a reference to a generated CCD document, and **MAY** be able to receive other document types, if available. **SHOULD** be capable of receiving documents as included resources in response to the operation.\n\n`GET [base]/DocumentReference/$docref?patient=[id]`"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"date"},{"url":"required","valueString":"patient"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"type"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"class"},{"url":"required","valueString":"patient"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Encounter","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"_id","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-id","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"class","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-class","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"identifier","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-identifier","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"type","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-type","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"target-date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"lifecycle-status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Goal","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"lifecycle-status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-lifecycle-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"target-date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-target-date","type":"date"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Immunization","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-date","type":"date"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"type":"Location","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-location"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"name","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-name","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"address","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"address-city","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-city","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"address-state","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-state","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"address-postalcode","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-postalcode","type":"string"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"type":"Medication","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication"],"documentation":"The MedicationStatement and MedicationRequest resources can represent a medication, using an external reference to a Medication resource. If an external Medication Resource is used in a MedicationStatement or a MedicationRequest, then the READ and SEARCH Criteria **SHALL** be supported.","interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"intent"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"intent"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"intent"},{"url":"required","valueString":"encounter"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"intent"},{"url":"required","valueString":"authoredon"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"MedicationRequest","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest"],"documentation":"The MedicationRequest resources can represent a medication using either a code or refer to the Medication resource. When referencing Medication, the resource may be [contained](http://hl7.org/fhir/R4/references.html#contained) or an external resource. The server application **MAY** choose any one way or more than one method, but if an external reference to Medication is used, the server **SHALL** support the _include` parameter for searching this element. The client application must support all methods.\n\n For example, A server **SHALL** be capable of returning all medications for a patient using one of or both:\n\n `GET /MedicationRequest?patient=[id]`\n\n `GET /MedicationRequest?patient=[id]&_include=MedicationRequest:medication`","interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchInclude":["MedicationRequest:medication"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"intent","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-intent","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"encounter","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-encounter","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"authoredon","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-authoredon","type":"date"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Observation","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus","http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height","http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab","http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age","http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type","documentation":"The conformance expectations for Composite Searches differ by profile. See the Quick Start section for profile specific expectations."},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"code","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-code","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-patient","type":"reference"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"type":"Organization","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"name","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-organization-name","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"address","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-organization-address","type":"string"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"gender"},{"url":"required","valueString":"name"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"family"},{"url":"required","valueString":"gender"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"birthdate"},{"url":"required","valueString":"name"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"birthdate"},{"url":"required","valueString":"family"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Patient","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"_id","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-id","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"birthdate","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-birthdate","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"family","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-family","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"gender","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-gender","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"given","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-given","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"identifier","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-identifier","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"name","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-name","type":"string"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"type":"Practitioner","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"name","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitioner-name","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"identifier","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitioner-identifier","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"type":"PractitionerRole","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchInclude":["PractitionerRole:endpoint","PractitionerRole:practitioner"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"specialty","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitionerrole-specialty","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"practitioner","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitionerrole-practitioner","type":"reference"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Procedure","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"code","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-code","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"type":"Provenance","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"type":"ValueSet","operation":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"expand","definition":"http://hl7.org/fhir/OperationDefinition/ValueSet-expand","documentation":"A client can determine the note and report types support by a server by invoking the standard FHIR Value Set Expansion ($expand) operation defined in the FHIR R4 specification. Because servers may support different read and write formats, it also is used to determine the formats (for example, text, pdf) the server supports read and write transactions."}]}],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"transaction"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"batch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"search-system"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-system"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/CapabilityStatement-us-core-server.json b/resources/uscore_v3.0.1/CapabilityStatement-us-core-server.json new file mode 100644 index 000000000..57d4e99e9 --- /dev/null +++ b/resources/uscore_v3.0.1/CapabilityStatement-us-core-server.json @@ -0,0 +1 @@ +{"resourceType":"CapabilityStatement","id":"us-core-server","text":{"status":"generated","div":"

    US Core Server CapabilityStatement

    • FHIR Version: 4.0.0
    • Supported formats: xml, json
    • Published: 2019-09-12
    • Published by: HL7 International - US Realm Steering Committee

    This Section describes the expected capabilities of the US Core Server actor which is responsible for providing responses to the queries submitted by the US Core Requestors. The complete list of FHIR profiles, RESTful operations, and search parameters supported by US Core Servers are defined. Systems implementing this capability statement should meet the ONC 2015 Common Clinical Data Set (CCDS) access requirement for Patient Selection 170.315(g)(7) and Application Access - Data Category Request 170.315(g)(8) and and the latest proposed ONC [U.S. Core Data for Interoperability (USCDI)]. US Core Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.

    FHIR RESTful Capabilities

    The US Core Server SHALL:

    1. Support the US Core Patient resource profile.
    2. Support at least one additional resource profile from the list of US Core Profiles.
    3. Implement the RESTful behavior according to the FHIR specification.
    4. Return the following response classes:\n
      • (Status 400): invalid parameter
      • (Status 401/4xx): unauthorized request
      • (Status 403): insufficient scope
      • (Status 404): unknown resource
      • (Status 410): deleted resource.
      \n
    5. Support json source formats for all US Core interactions.

    The US Core Server SHOULD:

    1. Support xml source formats for all US Core interactions.
    2. Identify the US Core profiles supported as part of the FHIR meta.profile attribute for each instance.
    3. Support xml resource formats for all Argonaut questionnaire interactions.

    Security:

    1. See the General Security Considerations section for requirements and recommendations.
    2. A server SHALL reject any unauthorized requests by returning an HTTP 401 unauthorized response code.

    Summary of System Wide Interactions

  • MAY support the\ttransaction interaction.
  • MAY support the\tbatch interaction.
  • MAY support the\tsearch-system interaction.
  • MAY support the\thistory-system interaction.
  • RESTful Capabilities by Resource/Profile:

    Summary of Search Criteria

    Resource TypeSupported ProfilesSupported SearchesSupported _includesSupported _revincludesSupported Operations
    AllergyIntoleranceUS Core AllergyIntolerance Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, patient+clinical-status\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n \n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    CarePlanUS Core CarePlan Profile\n\t\t\t\t\t\t\t, patient+category+status, patient+category+date, patient+category, patient+category+status+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    CareTeamUS Core CareTeam Profile\n\t\t\t\t\t\t\t, patient+status\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ConditionUS Core Condition Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, patient+clinical-status, patient+onset-date, patient+code, patient+category\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    DeviceUS Core Implantable Device Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, patient+type\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    DiagnosticReportUS Core DiagnosticReport Profile for Report and Note exchange, \n\n\t\t\t\t\t\tUS Core DiagnosticReport Profile for Laboratory Results Reporting\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, patient+code+date, patient+code, patient+status, patient+category+date, patient+category, patient+category, patient+category+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    DocumentReferenceUS Core DocumentReference Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_id, \n\t\t\t\t\t\t\tpatient, patient+status, patient+category+date, patient+category, patient+type+period, patient+type\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t$docref\n\t\t\t\t\t\t
    EncounterUS Core Encounter Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_id, \n\t\t\t\t\t\t\tidentifier, \n\t\t\t\t\t\t\tpatient, patient+status, patient+type, class+patient, date+patient\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    GoalUS Core Goal Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, patient+target-date, patient+lifecycle-status\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ImmunizationUS Core Immunization Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, patient+status, patient+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    LocationUS Core Location Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tname, \n\t\t\t\t\t\t\taddress, \n\t\t\t\t\t\t\taddress-city, \n\t\t\t\t\t\t\taddress-state, \n\t\t\t\t\t\t\taddress-postalcode\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    MedicationUS Core Medication Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    MedicationRequestUS Core MedicationRequest Profile\n\t\t\t\t\t\t\t, patient+intent, patient+intent+encounter, patient+intent+status, patient+intent+authoredon\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tMedicationRequest:medication\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ObservationUS Core Smoking Status Observation Profile, \n\n\t\t\t\t\t\tUS Core Pediatric Weight for Height Observation Profile, \n\n\t\t\t\t\t\tUS Core Laboratory Result Observation Profile, \n\n\t\t\t\t\t\tUS Core Pediatric BMI for Age Observation Profile, \n\n\t\t\t\t\t\tUS Core Pulse Oximetry Profile\n\t\t\t\t\t\t\t, patient+category+status, patient+code+date, patient+code, patient+category+date, patient+category\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    OrganizationUS Core Organization Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tname, \n\t\t\t\t\t\t\taddress\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    PatientUS Core Patient Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t_id, \n\t\t\t\t\t\t\tidentifier, \n\t\t\t\t\t\t\tname, birthdate+name, gender+name, family+gender, birthdate+family\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    PractitionerUS Core Practitioner Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tname, \n\t\t\t\t\t\t\tidentifier\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    PractitionerRoleUS Core PractitionerRole Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tspecialty, \n\t\t\t\t\t\t\tpractitioner\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPractitionerRole:endpoint, PractitionerRole:practitioner\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ProcedureUS Core Procedure Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpatient, patient+code+date, patient+status, patient+date\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n Provenance:target\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ProvenanceUS Core Provenance Profile\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n \n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    ValueSet\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n \n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t$expand\n\t\t\t\t\t\t

    AllergyIntolerance

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core AllergyIntolerance Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a AllergyIntolerance resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/AllergyIntolerance/[id]\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYclinical-status\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/AllergyIntolerance?clinical-status=[system]|[code]
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/AllergyIntolerance?patient=[patient]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+clinical-status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/AllergyIntolerance?patient=[patient]&clinical-status=[system]|[code]

    CarePlan

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core CarePlan Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a CarePlan resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/CarePlan/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/CarePlan?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/CarePlan?category=[system]|[code]
    MAYdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/CarePlan?date=[date]
    MAYpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/CarePlan?status=[status]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+category+status\n\t\t\t\t\t\treference+token+token\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]&category=[system]|[code]&status=[status]
    SHOULDpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]&category=[system]|[code]&date=[date]
    SHALLpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]&category=[system]|[code]
    SHOULDpatient+category+status+date\n\t\t\t\t\t\treference+token+token+date\n\t\t\t\t\t\tGET [base]/CarePlan?patient=[patient]&category=[system]|[code]&status=[status]&date=[date]

    CareTeam

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core CareTeam Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a CareTeam resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/CareTeam/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/CareTeam?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/CareTeam?patient=[patient]
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/CareTeam?status=[status]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHALLpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/CareTeam?patient=[patient]&status=[status]

    Condition

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Condition Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Condition resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Condition/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Condition?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Condition?category=[system]|[code]
    MAYclinical-status\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Condition?clinical-status=[system]|[code]
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]
    MAYonset-date\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Condition?onset-date=[onset-date]
    MAYcode\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Condition?code=[system]|[code]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+clinical-status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]&clinical-status=[system]|[code]
    SHOULDpatient+onset-date\n\t\t\t\t\t\treference+date\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]&onset-date=[onset-date]
    SHOULDpatient+code\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]&code=[system]|[code]
    SHOULDpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Condition?patient=[patient]&category=[system]|[code]

    Device

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Implantable Device Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Device resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Device/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Device?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Device?patient=[patient]
    MAYtype\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Device?type=[system]|[code]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+type\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Device?patient=[patient]&type=[system]|[code]

    DiagnosticReport

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core DiagnosticReport Profile for Report and Note exchange, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core DiagnosticReport Profile for Laboratory Results Reporting\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.
    create

    This conformance expectation applies only to the US Core DiagnosticReport Profile for Report and Note exchange profile. The conformance expectation for the US Core DiagnosticReport Profile for Laboratory Results Reporting is MAY.

    \n
    search-type

    The conformance expectations for Composite Searches differ by profile. See the Quick Start section for profile specific expectations.

    \n

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a DiagnosticReport resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/DiagnosticReport/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/DiagnosticReport?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DiagnosticReport?status=[status]
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]
    MAYcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DiagnosticReport?category=[system]|[code]
    MAYcode\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DiagnosticReport?code=[system]|[code]
    MAYdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/DiagnosticReport?date=[date]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+code+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&code=[system]|[code]&date=[date]
    SHALLpatient+code\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&code=[system]|[code]
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&status=[status]
    SHALLpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&category=[system]|[code]&date=[date]
    SHALLpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&category=[system]|[code]
    SHOULDpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&category=[system]|[code]
    SHOULDpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DiagnosticReport?patient=[patient]&category=[system]|[code]&date=[date]

    DocumentReference

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core DocumentReference Profile\n\t\t\t\t\n\t\t\t\t

    Resource Specific Documentation:

    The DocumentReference.type binding SHALL support at a minimum the 5 Common Clinical Notes and may extend to the full US Core DocumentReference Type Value Set

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Operation Summary:

    • SHALL support the \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$docref operation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

      A server SHALL be capable of responding to a $docref operation and capable of returning at least a reference to a generated CCD document, if available. MAY provide references to other 'on-demand' and 'stable' documents (or 'delayed/deferred assembly') that meet the query parameters as well. If a context date range is supplied the server ** SHOULD** provide references to any document that falls within the date range If no date range is supplied, then the server SHALL provide references to last or current encounter. SHOULD document what resources, if any, are returned as included resources

      GET [base]/DocumentReference/$docref?patient=[id]

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a DocumentReference resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/DocumentReference/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/DocumentReference?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALL_id\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DocumentReference?_id=[id]
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DocumentReference?status=[status]
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]
    MAYcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DocumentReference?category=[system]|[code]
    MAYtype\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/DocumentReference?type=[system]|[code]
    MAYdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/DocumentReference?date=[date]
    MAYperiod\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/DocumentReference?period=[period]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&status=[status]
    SHALLpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&category=[system]|[code]&date=[date]
    SHALLpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&category=[system]|[code]
    SHOULDpatient+type+period\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&type=[system]|[code]&period=[period]
    SHALLpatient+type\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/DocumentReference?patient=[patient]&type=[system]|[code]

    Encounter

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Encounter Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Encounter resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Encounter/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Encounter?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALL_id\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?_id=[id]
    MAYclass\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?class=[system]|[code]
    MAYdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Encounter?date=[date]
    SHOULDidentifier\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?identifier=[system]|[code]
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Encounter?patient=[patient]
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?status=[status]
    MAYtype\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Encounter?type=[system]|[code]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Encounter?patient=[patient]&status=[status]
    SHOULDpatient+type\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Encounter?patient=[patient]&type=[system]|[code]
    SHOULDclass+patient\n\t\t\t\t\t\ttoken+reference\n\t\t\t\t\t\tGET [base]/Encounter?class=[system]|[code]&patient=[patient]
    SHALLdate+patient\n\t\t\t\t\t\tdate+reference\n\t\t\t\t\t\tGET [base]/Encounter?date=[date]&patient=[patient]

    Goal

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Goal Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Goal resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Goal/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Goal?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYlifecycle-status\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Goal?lifecycle-status=[system]|[code]
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Goal?patient=[patient]
    MAYtarget-date\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Goal?target-date=[target-date]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+target-date\n\t\t\t\t\t\treference+date\n\t\t\t\t\t\tGET [base]/Goal?patient=[patient]&target-date=[target-date]
    SHOULDpatient+lifecycle-status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Goal?patient=[patient]&lifecycle-status=[system]|[code]

    Immunization

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Immunization Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Immunization resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Immunization/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Immunization?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Immunization?patient=[patient]
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Immunization?status=[status]
    MAYdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Immunization?date=[date]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Immunization?patient=[patient]&status=[status]
    SHOULDpatient+date\n\t\t\t\t\t\treference+date\n\t\t\t\t\t\tGET [base]/Immunization?patient=[patient]&date=[date]

    Location

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Location Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Location resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Location/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Location?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALLname\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?name=[name]
    SHALLaddress\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?address=[address]
    SHOULDaddress-city\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?address-city=[address-city]
    SHOULDaddress-state\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?address-state=[address-state]
    SHOULDaddress-postalcode\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Location?address-postalcode=[address-postalcode]

    Medication

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Medication Profile\n\t\t\t\t\n\t\t\t\t

    Resource Specific Documentation:

    The MedicationStatement and MedicationRequest resources can represent a medication, using an external reference to a Medication resource. If an external Medication Resource is used in a MedicationStatement or a MedicationRequest, then the READ and SEARCH Criteria SHALL be supported.

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Medication resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Medication/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Medication?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t


    MedicationRequest

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core MedicationRequest Profile\n\t\t\t\t\n\t\t\t\t

    Resource Specific Documentation:

    The MedicationRequest resources can represent a medication using either a code or refer to the Medication resource. When referencing Medication, the resource may be contained or an external resource. The server application MAY choose any one way or more than one method, but if an external reference to Medication is used, the server SHALL support the _include` parameter for searching this element. The client application must support all methods.

    For example, A server SHALL be capable of returning all medications for a patient using one of or both:

    GET /MedicationRequest?patient=[id]

    GET /MedicationRequest?patient=[id]&_include=MedicationRequest:medication

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a MedicationRequest resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/MedicationRequest/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _includes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tMedicationRequest:medication - GET [base]/MedicationRequest?[parameter=value]&_include=MedicationRequest:medication\n\t\t\t\t\t\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/MedicationRequest?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/MedicationRequest?status=[status]
    MAYintent\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/MedicationRequest?intent=[system]|[code]
    MAYpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]
    MAYencounter\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/MedicationRequest?encounter=[encounter]
    MAYauthoredon\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/MedicationRequest?authoredon=[authoredon]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHALLpatient+intent\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]&intent=[system]|[code]
    SHOULDpatient+intent+encounter\n\t\t\t\t\t\treference+token+reference\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]&intent=[system]|[code]&encounter=[encounter]
    SHALLpatient+intent+status\n\t\t\t\t\t\treference+token+token\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]&intent=[system]|[code]&status=[status]
    SHOULDpatient+intent+authoredon\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/MedicationRequest?patient=[patient]&intent=[system]|[code]&authoredon=[authoredon]

    Observation

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Smoking Status Observation Profile, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Pediatric Weight for Height Observation Profile, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Laboratory Result Observation Profile, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Pediatric BMI for Age Observation Profile, \n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Pulse Oximetry Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.
    search-type

    The conformance expectations for Composite Searches differ by profile. See the Quick Start section for profile specific expectations.

    \n

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Observation resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Observation/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Observation?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Observation?status=[status]
    MAYcategory\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Observation?category=[system]|[code]
    MAYcode\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Observation?code=[system]|[code]
    MAYdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Observation?date=[date]
    MAYpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+category+status\n\t\t\t\t\t\treference+token+token\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&category=[system]|[code]&status=[status]
    SHOULDpatient+code+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&code=[system]|[code]&date=[date]
    SHALLpatient+code\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&code=[system]|[code]
    SHALLpatient+category+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&category=[system]|[code]&date=[date]
    SHALLpatient+category\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Observation?patient=[patient]&category=[system]|[code]

    Organization

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Organization Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Organization resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Organization/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Organization?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALLname\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Organization?name=[name]
    SHALLaddress\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Organization?address=[address]

    Patient

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Patient Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Patient resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Patient/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Patient?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALL_id\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Patient?_id=[id]
    MAYbirthdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Patient?birthdate=[birthdate]
    MAYfamily\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Patient?family=[family]
    MAYgender\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Patient?gender=[system]|[code]
    MAYgiven\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Patient?given=[given]
    SHALLidentifier\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Patient?identifier=[system]|[code]
    SHALLname\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Patient?name=[name]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHALLbirthdate+name\n\t\t\t\t\t\tdate+string\n\t\t\t\t\t\tGET [base]/Patient?birthdate=[birthdate]&name=[name]
    SHALLgender+name\n\t\t\t\t\t\ttoken+string\n\t\t\t\t\t\tGET [base]/Patient?gender=[system]|[code]&name=[name]
    SHOULDfamily+gender\n\t\t\t\t\t\tstring+token\n\t\t\t\t\t\tGET [base]/Patient?family=[family]&gender=[system]|[code]
    SHOULDbirthdate+family\n\t\t\t\t\t\tdate+string\n\t\t\t\t\t\tGET [base]/Patient?birthdate=[birthdate]&family=[family]

    Practitioner

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Practitioner Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Practitioner resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Practitioner/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Practitioner?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALLname\n\t\t\t\t\t\t\tstring\n\t\t\t\t\t\tGET [base]/Practitioner?name=[name]
    SHALLidentifier\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Practitioner?identifier=[system]|[code]

    PractitionerRole

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core PractitionerRole Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a PractitionerRole resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/PractitionerRole/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _includes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tPractitionerRole:endpoint - GET [base]/PractitionerRole?[parameter=value]&_include=PractitionerRole:endpoint\n\t\t\t\t\t\n\t\t\t\t\t\tPractitionerRole:practitioner - GET [base]/PractitionerRole?[parameter=value]&_include=PractitionerRole:practitioner\n\t\t\t\t\t\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/PractitionerRole?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    SHALLspecialty\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/PractitionerRole?specialty=[system]|[code]
    SHALLpractitioner\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/PractitionerRole?practitioner=[practitioner]

    Procedure

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Procedure Profile\n\t\t\t\t\n\t\t\t\t

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Procedure resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Procedure/[id]\n\t\t\t\t

    • \n\t\t\t\t\tA Server SHOULD be capable of supporting the following _revincludes:\n\t\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t\t\tProvenance:target - GET [base]/Procedure?[parameter=value]&_revinclude=Provenance:target\n\t\t\t\t\t\n\t\t\t\t

    Search Parameter Summary:

    ConformanceParameterTypeExample
    MAYstatus\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Procedure?status=[status]
    SHALLpatient\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\tGET [base]/Procedure?patient=[patient]
    MAYdate\n\t\t\t\t\t\t\tdate\n\t\t\t\t\t\tGET [base]/Procedure?date=[date]
    MAYcode\n\t\t\t\t\t\t\ttoken\n\t\t\t\t\t\tGET [base]/Procedure?code=[system]|[code]

    Search Parameter Combination Summary:

    ConformanceParameter CombinationTypesExample
    SHOULDpatient+code+date\n\t\t\t\t\t\treference+token+date\n\t\t\t\t\t\tGET [base]/Procedure?patient=[patient]&code=[system]|[code]&date=[date]
    SHOULDpatient+status\n\t\t\t\t\t\treference+token\n\t\t\t\t\t\tGET [base]/Procedure?patient=[patient]&status=[status]
    SHALLpatient+date\n\t\t\t\t\t\treference+date\n\t\t\t\t\t\tGET [base]/Procedure?patient=[patient]&date=[date]

    Provenance

    Supported Profiles:\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tUS Core Provenance Profile\n\t\t\t\t\n\t\t\t\t

    Resource Specific Documentation:

    If a system receives a provider in Provenance.agent.who as free text they must capture who sent them the information as the organization. On request they SHALL provide this organization as the source and MAY include the free text provider.

    Reference Policy: resolves

    Profile Interaction Summary:

    • SHALL support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch-type, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tread.
    • SHOULD support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvread, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-instance.
    • MAY support \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdate, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpatch, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thistory-type.

    Fetch and Search Criteria:

    • \n\t\t\t\t\tA Server SHALL be capable of returning a Provenance resource using:\n\t\t\t\t\t
      \n\t\t\t\t\t\tGET [base]/Provenance/[id]\n\t\t\t\t


    ValueSet

    Operation Summary:

    • SHOULD support the \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$expand operation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

      A client can determine the note and report types support by a server by invoking the standard FHIR Value Set Expansion ($expand) operation defined in the FHIR R4 specification. Because servers may support different read and write formats, it also is used to determine the formats (for example, text, pdf) the server supports read and write transactions.



    "},"url":"http://hl7.org/fhir/us/core/CapabilityStatement/us-core-server","version":"3.0.1","name":"UsCoreServerCapabilityStatement","title":"US Core Server CapabilityStatement","status":"active","experimental":false,"date":"2019-09-12T00:00:00+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"This Section describes the expected capabilities of the US Core Server actor which is responsible for providing responses to the queries submitted by the US Core Requestors. The complete list of FHIR profiles, RESTful operations, and search parameters supported by US Core Servers are defined. Systems implementing this capability statement should meet the ONC 2015 Common Clinical Data Set (CCDS) access requirement for Patient Selection 170.315(g)(7) and Application Access - Data Category Request 170.315(g)(8) and and the latest proposed ONC [U.S. Core Data for Interoperability (USCDI)]. US Core Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"kind":"requirements","fhirVersion":"4.0.0","format":["xml","json"],"patchFormat":["application/json-patch+json"],"implementationGuide":["http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core-3.0.1"],"rest":[{"mode":"server","documentation":"The US Core Server **SHALL**:\n\n1. Support the US Core Patient resource profile.\n1. Support at least one additional resource profile from the list of US Core Profiles.\n1. Implement the RESTful behavior according to the FHIR specification.\n1. Return the following response classes:\n - (Status 400): invalid parameter\n - (Status 401/4xx): unauthorized request\n - (Status 403): insufficient scope\n - (Status 404): unknown resource\n - (Status 410): deleted resource.\n1. Support json source formats for all US Core interactions.\n\nThe US Core Server **SHOULD**:\n\n1. Support xml source formats for all US Core interactions.\n1. Identify the US Core profiles supported as part of the FHIR `meta.profile` attribute for each instance.\n1. Support xml resource formats for all Argonaut questionnaire interactions.","security":{"description":"1. See the [General Security Considerations](security.html) section for requirements and recommendations.\n1. A server **SHALL** reject any unauthorized requests by returning an `HTTP 401` unauthorized response code."},"resource":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"clinical-status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"AllergyIntolerance","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"clinical-status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-allergyintolerance-clinical-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-allergyintolerance-patient","type":"reference"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"status"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"CarePlan","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-status","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"CareTeam","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careteam-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careteam-status","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"clinical-status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"onset-date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Condition","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"clinical-status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-clinical-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"onset-date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-onset-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"code","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-code","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"type"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Device","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-device-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"type","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-device-type","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"DiagnosticReport","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note","http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"create","documentation":"This conformance expectation applies **only** to the *US Core DiagnosticReport Profile for Report and Note exchange* profile. The conformance expectation for the *US Core DiagnosticReport Profile for Laboratory Results Reporting* is **MAY**."},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type","documentation":"The conformance expectations for Composite Searches differ by profile. See the Quick Start section for profile specific expectations."},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"code","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-code","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-date","type":"date"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"type"},{"url":"required","valueString":"period"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"type"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"DocumentReference","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference"],"documentation":"The DocumentReference.type binding SHALL support at a minimum the [5 Common Clinical Notes](ValueSet-us-core-clinical-note-type.html) and may extend to the full US Core DocumentReference Type Value Set","interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"_id","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-id","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"type","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-type","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"period","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-period","type":"date"}],"operation":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"docref","definition":"http://hl7.org/fhir/us/core/OperationDefinition/docref","documentation":"A server **SHALL** be capable of responding to a $docref operation and capable of returning at least a reference to a generated CCD document, if available. **MAY** provide references to other 'on-demand' and 'stable' documents (or 'delayed/deferred assembly') that meet the query parameters as well. If a context date range is supplied the server ** SHOULD** provide references to any document that falls within the date range If no date range is supplied, then the server **SHALL** provide references to last or current encounter. **SHOULD** document what resources, if any, are returned as included resources\n\n`GET [base]/DocumentReference/$docref?patient=[id]`"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"type"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"class"},{"url":"required","valueString":"patient"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"date"},{"url":"required","valueString":"patient"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Encounter","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"_id","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-id","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"class","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-class","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"identifier","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-identifier","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"type","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-type","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"target-date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"lifecycle-status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Goal","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"lifecycle-status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-lifecycle-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"target-date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-target-date","type":"date"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Immunization","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-date","type":"date"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"type":"Location","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-location"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"name","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-name","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"address","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"address-city","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-city","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"address-state","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-state","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"address-postalcode","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-postalcode","type":"string"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"type":"Medication","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication"],"documentation":"The MedicationStatement and MedicationRequest resources can represent a medication, using an external reference to a Medication resource. If an external Medication Resource is used in a MedicationStatement or a MedicationRequest, then the READ and SEARCH Criteria **SHALL** be supported.","interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"intent"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"intent"},{"url":"required","valueString":"encounter"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"intent"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"intent"},{"url":"required","valueString":"authoredon"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"MedicationRequest","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest"],"documentation":"The MedicationRequest resources can represent a medication using either a code or refer to the Medication resource. When referencing Medication, the resource may be [contained](http://hl7.org/fhir/R4/references.html#contained) or an external resource. The server application **MAY** choose any one way or more than one method, but if an external reference to Medication is used, the server **SHALL** support the _include` parameter for searching this element. The client application must support all methods.\n\n For example, A server **SHALL** be capable of returning all medications for a patient using one of or both:\n\n `GET /MedicationRequest?patient=[id]`\n\n `GET /MedicationRequest?patient=[id]&_include=MedicationRequest:medication`","interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchInclude":["MedicationRequest:medication"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"intent","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-intent","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"encounter","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-encounter","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"authoredon","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-authoredon","type":"date"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"category"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Observation","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus","http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height","http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab","http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age","http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type","documentation":"The conformance expectations for Composite Searches differ by profile. See the Quick Start section for profile specific expectations."},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"category","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-category","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"code","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-code","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-patient","type":"reference"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"type":"Organization","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"name","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-organization-name","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"address","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-organization-address","type":"string"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"birthdate"},{"url":"required","valueString":"name"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"gender"},{"url":"required","valueString":"name"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"family"},{"url":"required","valueString":"gender"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"birthdate"},{"url":"required","valueString":"family"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Patient","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"_id","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-id","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"birthdate","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-birthdate","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"family","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-family","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"gender","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-gender","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"given","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-given","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"identifier","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-identifier","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"name","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-name","type":"string"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"type":"Practitioner","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"name","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitioner-name","type":"string"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"identifier","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitioner-identifier","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"type":"PractitionerRole","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchInclude":["PractitionerRole:endpoint","PractitionerRole:practitioner"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"specialty","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitionerrole-specialty","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"practitioner","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitionerrole-practitioner","type":"reference"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"code"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"status"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"},{"url":"required","valueString":"patient"},{"url":"required","valueString":"date"}],"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-search-parameter-combination"}],"type":"Procedure","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure"],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"],"searchRevInclude":["Provenance:target"],"searchParam":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"status","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-status","type":"token"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"name":"patient","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-patient","type":"reference"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"date","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-date","type":"date"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"name":"code","definition":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-code","type":"token"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"type":"Provenance","supportedProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance"],"documentation":"If a system receives a provider in `Provenance.agent.who` as free text they must capture who sent them the information as the organization. On request they **SHALL** provide this organization as the source and **MAY** include the free text provider.","interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"create"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"search-type"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}],"code":"read"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"vread"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"update"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"patch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"delete"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"code":"history-instance"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-type"}],"referencePolicy":["resolves"]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"type":"ValueSet","operation":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}],"name":"expand","definition":"http://hl7.org/fhir/OperationDefinition/ValueSet-expand","documentation":"A client can determine the note and report types support by a server by invoking the standard FHIR Value Set Expansion ($expand) operation defined in the FHIR R4 specification. Because servers may support different read and write formats, it also is used to determine the formats (for example, text, pdf) the server supports read and write transactions."}]}],"interaction":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"transaction"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"batch"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"search-system"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}],"code":"history-system"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/CodeSystem-careplan-category.json b/resources/uscore_v3.0.1/CodeSystem-careplan-category.json new file mode 100644 index 000000000..498ee1cf0 --- /dev/null +++ b/resources/uscore_v3.0.1/CodeSystem-careplan-category.json @@ -0,0 +1 @@ +{"resourceType":"CodeSystem","id":"careplan-category","text":{"status":"generated","div":"

    US Core CarePlan Category Extension Codes

    Set of codes that are needed for implementation of the US-Core profiles. These codes are used as extensions to the FHIR and US Core value sets.

    \n

    This code system http://hl7.org/fhir/us/core/CodeSystem/careplan-category defines the following codes:

    CodeDisplayDefinition
    assess-plan Assessment and Plan of TreatmentThe clinical conclusions and assumptions that guide the patient's treatment and the clinical activities formulated for a patient.
    "},"url":"http://hl7.org/fhir/us/core/CodeSystem/careplan-category","version":"3.0.1","name":"USCoreCarePlanCategoryExtensionCodes","title":"US Core CarePlan Category Extension Codes","status":"active","date":"2019-09-12T23:50:40+00:00","publisher":"HL7 US Realm Steering Committee","description":"Set of codes that are needed for implementation of the US-Core profiles. These codes are used as extensions to the FHIR and US Core value sets.\n","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"caseSensitive":true,"content":"complete","concept":[{"code":"assess-plan","display":"Assessment and Plan of Treatment","definition":"The clinical conclusions and assumptions that guide the patient's treatment and the clinical activities formulated for a patient."}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/CodeSystem-cdcrec.json b/resources/uscore_v3.0.1/CodeSystem-cdcrec.json new file mode 100644 index 000000000..e79ac37a5 --- /dev/null +++ b/resources/uscore_v3.0.1/CodeSystem-cdcrec.json @@ -0,0 +1 @@ +{"resourceType":"CodeSystem","id":"cdcrec","text":{"status":"generated","div":"

    Race & Ethnicity - CDC

    The U.S. Centers for Disease Control and Prevention (CDC) has prepared a code set for use in codingrace and ethnicity data. This code set is based on current federal standards for classifying data onrace and ethnicity, specifically the minimum race and ethnicity categories defined by the U.S. Office ofManagement and Budget (OMB) and a more detailed set of race and ethnicity categories maintainedby the U.S. Bureau of the Census (BC). The main purpose of the code set is to facilitate use of federalstandards for classifying data on race and ethnicity when these data are exchanged, stored, retrieved,or analyzed in electronic form. At the same time, the code set can be applied to paper-based recordsystems to the extent that these systems are used to collect, maintain, and report data on race andethnicity in accordance with current federal standards. Source: Race and Ethnicity Code Set Version 1.0.

    \n

    Properties

    CodeURLDescriptionType
    abstractTrue if an element is considered 'abstract' - in other words, the code is not for use as a real conceptboolean

    This code system urn:oid:2.16.840.1.113883.6.238 defines the following codes:

    LvlCodeDisplayDefinition
    11000-9 RaceRace, Note that this is an abstract 'grouping' concept and not for use as a real concept
    2  1002-5 American Indian or Alaska NativeAmerican Indian or Alaska Native
    3    1004-1 American IndianAmerican Indian
    3    1735-0 Alaska NativeAlaska Native
    3    1006-6 AbenakiAbenaki
    3    1008-2 AlgonquianAlgonquian
    3    1010-8 ApacheApache
    3    1021-5 ArapahoArapaho
    3    1026-4 ArikaraArikara
    3    1028-0 AssiniboineAssiniboine
    3    1030-6 Assiniboine SiouxAssiniboine Sioux
    3    1033-0 BannockBannock
    3    1035-5 BlackfeetBlackfeet
    3    1037-1 BrothertonBrotherton
    3    1039-7 Burt Lake BandBurt Lake Band
    3    1041-3 CaddoCaddo
    3    1044-7 CahuillaCahuilla
    3    1053-8 California TribesCalifornia Tribes
    3    1068-6 Canadian and Latin American IndianCanadian and Latin American Indian
    3    1076-9 CatawbaCatawba
    3    1078-5 CayuseCayuse
    3    1080-1 ChehalisChehalis
    3    1082-7 ChemakuanChemakuan
    3    1086-8 ChemehueviChemehuevi
    3    1088-4 CherokeeCherokee
    3    1100-7 Cherokee ShawneeCherokee Shawnee
    3    1102-3 CheyenneCheyenne
    3    1106-4 Cheyenne-ArapahoCheyenne-Arapaho
    3    1108-0 ChickahominyChickahominy
    3    1112-2 ChickasawChickasaw
    3    1114-8 ChinookChinook
    3    1123-9 ChippewaChippewa
    3    1150-2 Chippewa CreeChippewa Cree
    3    1153-6 ChitimachaChitimacha
    3    1155-1 ChoctawChoctaw
    3    1162-7 ChumashChumash
    3    1165-0 Clear LakeClear Lake
    3    1167-6 Coeur D'AleneCoeur D'Alene
    3    1169-2 CoharieCoharie
    3    1171-8 Colorado RiverColorado River
    3    1173-4 ColvilleColville
    3    1175-9 ComancheComanche
    3    1178-3 Coos, Lower Umpqua, SiuslawCoos, Lower Umpqua, Siuslaw
    3    1180-9 CoosCoos
    3    1182-5 CoquillesCoquilles
    3    1184-1 CostanoanCostanoan
    3    1186-6 CoushattaCoushatta
    3    1189-0 CowlitzCowlitz
    3    1191-6 CreeCree
    3    1193-2 CreekCreek
    3    1207-0 CroatanCroatan
    3    1209-6 CrowCrow
    3    1211-2 CupenoCupeno
    3    1214-6 DelawareDelaware
    3    1222-9 DieguenoDiegueno
    3    1233-6 Eastern TribesEastern Tribes
    3    1250-0 EsselenEsselen
    3    1252-6 Fort BelknapFort Belknap
    3    1254-2 Fort BertholdFort Berthold
    3    1256-7 Fort McdowellFort Mcdowell
    3    1258-3 Fort HallFort Hall
    3    1260-9 GabrielenoGabrieleno
    3    1262-5 Grand RondeGrand Ronde
    3    1264-1 Gros VentresGros Ventres
    3    1267-4 HaliwaHaliwa
    3    1269-0 HidatsaHidatsa
    3    1271-6 HoopaHoopa
    3    1275-7 Hoopa ExtensionHoopa Extension
    3    1277-3 HoumaHouma
    3    1279-9 Inaja-CosmitInaja-Cosmit
    3    1281-5 IowaIowa
    3    1285-6 IroquoisIroquois
    3    1297-1 JuanenoJuaneno
    3    1299-7 KalispelKalispel
    3    1301-1 KarukKaruk
    3    1303-7 KawKaw
    3    1305-2 KickapooKickapoo
    3    1309-4 KiowaKiowa
    3    1312-8 KlallamKlallam
    3    1317-7 KlamathKlamath
    3    1319-3 KonkowKonkow
    3    1321-9 KootenaiKootenai
    3    1323-5 LassikLassik
    3    1325-0 Long IslandLong Island
    3    1331-8 LuisenoLuiseno
    3    1340-9 LumbeeLumbee
    3    1342-5 LummiLummi
    3    1344-1 MaiduMaidu
    3    1348-2 MakahMakah
    3    1350-8 MaliseetMaliseet
    3    1352-4 MandanMandan
    3    1354-0 MattaponiMattaponi
    3    1356-5 MenomineeMenominee
    3    1358-1 MiamiMiami
    3    1363-1 MiccosukeeMiccosukee
    3    1365-6 MicmacMicmac
    3    1368-0 Mission IndiansMission Indians
    3    1370-6 MiwokMiwok
    3    1372-2 ModocModoc
    3    1374-8 MoheganMohegan
    3    1376-3 MonoMono
    3    1378-9 NanticokeNanticoke
    3    1380-5 NarragansettNarragansett
    3    1382-1 NavajoNavajo
    3    1387-0 Nez PerceNez Perce
    3    1389-6 NomalakiNomalaki
    3    1391-2 Northwest TribesNorthwest Tribes
    3    1403-5 OmahaOmaha
    3    1405-0 Oregon AthabaskanOregon Athabaskan
    3    1407-6 OsageOsage
    3    1409-2 Otoe-MissouriaOtoe-Missouria
    3    1411-8 OttawaOttawa
    3    1416-7 PaiutePaiute
    3    1439-9 PamunkeyPamunkey
    3    1441-5 PassamaquoddyPassamaquoddy
    3    1445-6 PawneePawnee
    3    1448-0 PenobscotPenobscot
    3    1450-6 PeoriaPeoria
    3    1453-0 PequotPequot
    3    1456-3 PimaPima
    3    1460-5 PiscatawayPiscataway
    3    1462-1 Pit RiverPit River
    3    1464-7 PomoPomo
    3    1474-6 PoncaPonca
    3    1478-7 PotawatomiPotawatomi
    3    1487-8 PowhatanPowhatan
    3    1489-4 PuebloPueblo
    3    1518-0 Puget Sound SalishPuget Sound Salish
    3    1541-2 QuapawQuapaw
    3    1543-8 QuinaultQuinault
    3    1545-3 RappahannockRappahannock
    3    1547-9 Reno-SparksReno-Sparks
    3    1549-5 Round ValleyRound Valley
    3    1551-1 Sac and FoxSac and Fox
    3    1556-0 SalinanSalinan
    3    1558-6 SalishSalish
    3    1560-2 Salish and KootenaiSalish and Kootenai
    3    1562-8 SchaghticokeSchaghticoke
    3    1564-4 Scott ValleyScott Valley
    3    1566-9 SeminoleSeminole
    3    1573-5 SerranoSerrano
    3    1576-8 ShastaShasta
    3    1578-4 ShawneeShawnee
    3    1582-6 ShinnecockShinnecock
    3    1584-2 Shoalwater BayShoalwater Bay
    3    1586-7 ShoshoneShoshone
    3    1602-2 Shoshone PaiuteShoshone Paiute
    3    1607-1 SiletzSiletz
    3    1609-7 SiouxSioux
    3    1643-6 SiuslawSiuslaw
    3    1645-1 SpokaneSpokane
    3    1647-7 StewartStewart
    3    1649-3 StockbridgeStockbridge
    3    1651-9 SusanvilleSusanville
    3    1653-5 Tohono O'OdhamTohono O'Odham
    3    1659-2 TolowaTolowa
    3    1661-8 TonkawaTonkawa
    3    1663-4 TyghTygh
    3    1665-9 UmatillaUmatilla
    3    1667-5 UmpquaUmpqua
    3    1670-9 UteUte
    3    1675-8 WailakiWailaki
    3    1677-4 Walla-WallaWalla-Walla
    3    1679-0 WampanoagWampanoag
    3    1683-2 Warm SpringsWarm Springs
    3    1685-7 WascopumWascopum
    3    1687-3 WashoeWashoe
    3    1692-3 WichitaWichita
    3    1694-9 Wind RiverWind River
    3    1696-4 WinnebagoWinnebago
    3    1700-4 WinnemuccaWinnemucca
    3    1702-0 WintunWintun
    3    1704-6 WiyotWiyot
    3    1707-9 YakamaYakama
    3    1709-5 Yakama CowlitzYakama Cowlitz
    3    1711-1 YaquiYaqui
    3    1715-2 Yavapai ApacheYavapai Apache
    3    1717-8 YokutsYokuts
    3    1722-8 YuchiYuchi
    3    1724-4 YumanYuman
    3    1732-7 YurokYurok
    3    1011-6 ChiricahuaChiricahua
    3    1012-4 Fort Sill ApacheFort Sill Apache
    3    1013-2 Jicarilla ApacheJicarilla Apache
    3    1014-0 Lipan ApacheLipan Apache
    3    1015-7 Mescalero ApacheMescalero Apache
    3    1016-5 Oklahoma ApacheOklahoma Apache
    3    1017-3 Payson ApachePayson Apache
    3    1018-1 San Carlos ApacheSan Carlos Apache
    3    1019-9 White Mountain ApacheWhite Mountain Apache
    3    1022-3 Northern ArapahoNorthern Arapaho
    3    1023-1 Southern ArapahoSouthern Arapaho
    3    1024-9 Wind River ArapahoWind River Arapaho
    3    1031-4 Fort Peck Assiniboine SiouxFort Peck Assiniboine Sioux
    3    1042-1 Oklahoma CadoOklahoma Cado
    3    1045-4 Agua Caliente CahuillaAgua Caliente Cahuilla
    3    1046-2 AugustineAugustine
    3    1047-0 CabazonCabazon
    3    1048-8 Los CoyotesLos Coyotes
    3    1049-6 MorongoMorongo
    3    1050-4 Santa Rosa CahuillaSanta Rosa Cahuilla
    3    1051-2 Torres-MartinezTorres-Martinez
    3    1054-6 CahtoCahto
    3    1055-3 ChimarikoChimariko
    3    1056-1 Coast MiwokCoast Miwok
    3    1057-9 DiggerDigger
    3    1058-7 KawaiisuKawaiisu
    3    1059-5 Kern RiverKern River
    3    1060-3 MattoleMattole
    3    1061-1 Red WoodRed Wood
    3    1062-9 Santa RosaSanta Rosa
    3    1063-7 TakelmaTakelma
    3    1064-5 WappoWappo
    3    1065-2 YanaYana
    3    1066-0 YukiYuki
    3    1069-4 Canadian IndianCanadian Indian
    3    1070-2 Central American IndianCentral American Indian
    3    1071-0 French American IndianFrench American Indian
    3    1072-8 Mexican American IndianMexican American Indian
    3    1073-6 South American IndianSouth American Indian
    3    1074-4 Spanish American IndianSpanish American Indian
    3    1083-5 HohHoh
    3    1084-3 QuileuteQuileute
    3    1089-2 Cherokee AlabamaCherokee Alabama
    3    1090-0 Cherokees of Northeast AlabamaCherokees of Northeast Alabama
    3    1091-8 Cherokees of Southeast AlabamaCherokees of Southeast Alabama
    3    1092-6 Eastern CherokeeEastern Cherokee
    3    1093-4 Echota CherokeeEchota Cherokee
    3    1094-2 Etowah CherokeeEtowah Cherokee
    3    1095-9 Northern CherokeeNorthern Cherokee
    3    1096-7 TuscolaTuscola
    3    1097-5 United Keetowah Band of CherokeeUnited Keetowah Band of Cherokee
    3    1098-3 Western CherokeeWestern Cherokee
    3    1103-1 Northern CheyenneNorthern Cheyenne
    3    1104-9 Southern CheyenneSouthern Cheyenne
    3    1109-8 Eastern ChickahominyEastern Chickahominy
    3    1110-6 Western ChickahominyWestern Chickahominy
    3    1115-5 ClatsopClatsop
    3    1116-3 Columbia River ChinookColumbia River Chinook
    3    1117-1 KathlametKathlamet
    3    1118-9 Upper ChinookUpper Chinook
    3    1119-7 Wakiakum ChinookWakiakum Chinook
    3    1120-5 Willapa ChinookWillapa Chinook
    3    1121-3 WishramWishram
    3    1124-7 Bad RiverBad River
    3    1125-4 Bay Mills ChippewaBay Mills Chippewa
    3    1126-2 Bois ForteBois Forte
    3    1127-0 Burt Lake ChippewaBurt Lake Chippewa
    3    1128-8 Fond du LacFond du Lac
    3    1129-6 Grand PortageGrand Portage
    3    1130-4 Grand Traverse Band of Ottawa/ChippewaGrand Traverse Band of Ottawa/Chippewa
    3    1131-2 KeweenawKeweenaw
    3    1132-0 Lac Courte OreillesLac Courte Oreilles
    3    1133-8 Lac du FlambeauLac du Flambeau
    3    1134-6 Lac Vieux Desert ChippewaLac Vieux Desert Chippewa
    3    1135-3 Lake SuperiorLake Superior
    3    1136-1 Leech LakeLeech Lake
    3    1137-9 Little Shell ChippewaLittle Shell Chippewa
    3    1138-7 Mille LacsMille Lacs
    3    1139-5 Minnesota ChippewaMinnesota Chippewa
    3    1140-3 OntonagonOntonagon
    3    1141-1 Red Cliff ChippewaRed Cliff Chippewa
    3    1142-9 Red Lake ChippewaRed Lake Chippewa
    3    1143-7 Saginaw ChippewaSaginaw Chippewa
    3    1144-5 St. Croix ChippewaSt. Croix Chippewa
    3    1145-2 Sault Ste. Marie ChippewaSault Ste. Marie Chippewa
    3    1146-0 Sokoagon ChippewaSokoagon Chippewa
    3    1147-8 Turtle MountainTurtle Mountain
    3    1148-6 White EarthWhite Earth
    3    1151-0 Rocky Boy's Chippewa CreeRocky Boy's Chippewa Cree
    3    1156-9 Clifton ChoctawClifton Choctaw
    3    1157-7 Jena ChoctawJena Choctaw
    3    1158-5 Mississippi ChoctawMississippi Choctaw
    3    1159-3 Mowa Band of ChoctawMowa Band of Choctaw
    3    1160-1 Oklahoma ChoctawOklahoma Choctaw
    3    1163-5 Santa YnezSanta Ynez
    3    1176-7 Oklahoma ComancheOklahoma Comanche
    3    1187-4 Alabama CoushattaAlabama Coushatta
    3    1194-0 Alabama CreekAlabama Creek
    3    1195-7 Alabama QuassarteAlabama Quassarte
    3    1196-5 Eastern CreekEastern Creek
    3    1197-3 Eastern MuscogeeEastern Muscogee
    3    1198-1 KialegeeKialegee
    3    1199-9 Lower MuscogeeLower Muscogee
    3    1200-5 Machis Lower Creek IndianMachis Lower Creek Indian
    3    1201-3 Poarch BandPoarch Band
    3    1202-1 Principal Creek Indian NationPrincipal Creek Indian Nation
    3    1203-9 Star Clan of Muscogee CreeksStar Clan of Muscogee Creeks
    3    1204-7 ThlopthloccoThlopthlocco
    3    1205-4 TuckabacheeTuckabachee
    3    1212-0 Agua CalienteAgua Caliente
    3    1215-3 Eastern DelawareEastern Delaware
    3    1216-1 Lenni-LenapeLenni-Lenape
    3    1217-9 MunseeMunsee
    3    1218-7 Oklahoma DelawareOklahoma Delaware
    3    1219-5 Rampough MountainRampough Mountain
    3    1220-3 Sand HillSand Hill
    3    1223-7 CampoCampo
    3    1224-5 Capitan GrandeCapitan Grande
    3    1225-2 CuyapaipeCuyapaipe
    3    1226-0 La PostaLa Posta
    3    1227-8 ManzanitaManzanita
    3    1228-6 Mesa GrandeMesa Grande
    3    1229-4 San PasqualSan Pasqual
    3    1230-2 Santa YsabelSanta Ysabel
    3    1231-0 SycuanSycuan
    3    1234-4 AttacapaAttacapa
    3    1235-1 BiloxiBiloxi
    3    1236-9 Georgetown (Eastern Tribes)Georgetown (Eastern Tribes)
    3    1237-7 MoorMoor
    3    1238-5 NansemondNansemond
    3    1239-3 NatchezNatchez
    3    1240-1 Nausu WaiwashNausu Waiwash
    3    1241-9 NipmucNipmuc
    3    1242-7 PaugussettPaugussett
    3    1243-5 Pocomoke AcohonockPocomoke Acohonock
    3    1244-3 Southeastern IndiansSoutheastern Indians
    3    1245-0 SusquehanockSusquehanock
    3    1246-8 Tunica BiloxiTunica Biloxi
    3    1247-6 Waccamaw-SiousanWaccamaw-Siousan
    3    1248-4 WicomicoWicomico
    3    1265-8 AtsinaAtsina
    3    1272-4 TrinityTrinity
    3    1273-2 WhilkutWhilkut
    3    1282-3 Iowa of Kansas-NebraskaIowa of Kansas-Nebraska
    3    1283-1 Iowa of OklahomaIowa of Oklahoma
    3    1286-4 CayugaCayuga
    3    1287-2 MohawkMohawk
    3    1288-0 OneidaOneida
    3    1289-8 OnondagaOnondaga
    3    1290-6 SenecaSeneca
    3    1291-4 Seneca NationSeneca Nation
    3    1292-2 Seneca-CayugaSeneca-Cayuga
    3    1293-0 Tonawanda SenecaTonawanda Seneca
    3    1294-8 TuscaroraTuscarora
    3    1295-5 WyandotteWyandotte
    3    1306-0 Oklahoma KickapooOklahoma Kickapoo
    3    1307-8 Texas KickapooTexas Kickapoo
    3    1310-2 Oklahoma KiowaOklahoma Kiowa
    3    1313-6 JamestownJamestown
    3    1314-4 Lower ElwhaLower Elwha
    3    1315-1 Port Gamble KlallamPort Gamble Klallam
    3    1326-8 MatinecockMatinecock
    3    1327-6 MontaukMontauk
    3    1328-4 PoospatuckPoospatuck
    3    1329-2 SetauketSetauket
    3    1332-6 La JollaLa Jolla
    3    1333-4 PalaPala
    3    1334-2 PaumaPauma
    3    1335-9 PechangaPechanga
    3    1336-7 SobobaSoboba
    3    1337-5 Twenty-Nine PalmsTwenty-Nine Palms
    3    1338-3 TemeculaTemecula
    3    1345-8 Mountain MaiduMountain Maidu
    3    1346-6 NishinamNishinam
    3    1359-9 Illinois MiamiIllinois Miami
    3    1360-7 Indiana MiamiIndiana Miami
    3    1361-5 Oklahoma MiamiOklahoma Miami
    3    1366-4 AroostookAroostook
    3    1383-9 Alamo NavajoAlamo Navajo
    3    1384-7 Canoncito NavajoCanoncito Navajo
    3    1385-4 Ramah NavajoRamah Navajo
    3    1392-0 AlseaAlsea
    3    1393-8 CeliloCelilo
    3    1394-6 ColumbiaColumbia
    3    1395-3 KalapuyaKalapuya
    3    1396-1 MolalaMolala
    3    1397-9 TalakamishTalakamish
    3    1398-7 TeninoTenino
    3    1399-5 TillamookTillamook
    3    1400-1 WenatcheeWenatchee
    3    1401-9 YahooskinYahooskin
    3    1412-6 Burt Lake OttawaBurt Lake Ottawa
    3    1413-4 Michigan OttawaMichigan Ottawa
    3    1414-2 Oklahoma OttawaOklahoma Ottawa
    3    1417-5 BishopBishop
    3    1418-3 BridgeportBridgeport
    3    1419-1 Burns PaiuteBurns Paiute
    3    1420-9 CedarvilleCedarville
    3    1421-7 Fort BidwellFort Bidwell
    3    1422-5 Fort IndependenceFort Independence
    3    1423-3 KaibabKaibab
    3    1424-1 Las VegasLas Vegas
    3    1425-8 Lone PineLone Pine
    3    1426-6 LovelockLovelock
    3    1427-4 Malheur PaiuteMalheur Paiute
    3    1428-2 MoapaMoapa
    3    1429-0 Northern PaiuteNorthern Paiute
    3    1430-8 Owens ValleyOwens Valley
    3    1431-6 Pyramid LakePyramid Lake
    3    1432-4 San Juan Southern PaiuteSan Juan Southern Paiute
    3    1433-2 Southern PaiuteSouthern Paiute
    3    1434-0 Summit LakeSummit Lake
    3    1435-7 Utu Utu Gwaitu PaiuteUtu Utu Gwaitu Paiute
    3    1436-5 Walker RiverWalker River
    3    1437-3 Yerington PaiuteYerington Paiute
    3    1442-3 Indian TownshipIndian Township
    3    1443-1 Pleasant Point PassamaquoddyPleasant Point Passamaquoddy
    3    1446-4 Oklahoma PawneeOklahoma Pawnee
    3    1451-4 Oklahoma PeoriaOklahoma Peoria
    3    1454-8 Marshantucket PequotMarshantucket Pequot
    3    1457-1 Gila River Pima-MaricopaGila River Pima-Maricopa
    3    1458-9 Salt River Pima-MaricopaSalt River Pima-Maricopa
    3    1465-4 Central PomoCentral Pomo
    3    1466-2 Dry CreekDry Creek
    3    1467-0 Eastern PomoEastern Pomo
    3    1468-8 KashiaKashia
    3    1469-6 Northern PomoNorthern Pomo
    3    1470-4 Scotts ValleyScotts Valley
    3    1471-2 StonyfordStonyford
    3    1472-0 Sulphur BankSulphur Bank
    3    1475-3 Nebraska PoncaNebraska Ponca
    3    1476-1 Oklahoma PoncaOklahoma Ponca
    3    1479-5 Citizen Band PotawatomiCitizen Band Potawatomi
    3    1480-3 Forest CountyForest County
    3    1481-1 HannahvilleHannahville
    3    1482-9 Huron PotawatomiHuron Potawatomi
    3    1483-7 Pokagon PotawatomiPokagon Potawatomi
    3    1484-5 Prairie BandPrairie Band
    3    1485-2 Wisconsin PotawatomiWisconsin Potawatomi
    3    1490-2 AcomaAcoma
    3    1491-0 Arizona TewaArizona Tewa
    3    1492-8 CochitiCochiti
    3    1493-6 HopiHopi
    3    1494-4 IsletaIsleta
    3    1495-1 JemezJemez
    3    1496-9 KeresKeres
    3    1497-7 LagunaLaguna
    3    1498-5 NambeNambe
    3    1499-3 PicurisPicuris
    3    1500-8 PiroPiro
    3    1501-6 PojoaquePojoaque
    3    1502-4 San FelipeSan Felipe
    3    1503-2 San IldefonsoSan Ildefonso
    3    1504-0 San Juan PuebloSan Juan Pueblo
    3    1505-7 San Juan DeSan Juan De
    3    1506-5 San JuanSan Juan
    3    1507-3 SandiaSandia
    3    1508-1 Santa AnaSanta Ana
    3    1509-9 Santa ClaraSanta Clara
    3    1510-7 Santo DomingoSanto Domingo
    3    1511-5 TaosTaos
    3    1512-3 TesuqueTesuque
    3    1513-1 TewaTewa
    3    1514-9 TiguaTigua
    3    1515-6 ZiaZia
    3    1516-4 ZuniZuni
    3    1519-8 DuwamishDuwamish
    3    1520-6 KikiallusKikiallus
    3    1521-4 Lower SkagitLower Skagit
    3    1522-2 MuckleshootMuckleshoot
    3    1523-0 NisquallyNisqually
    3    1524-8 NooksackNooksack
    3    1525-5 Port MadisonPort Madison
    3    1526-3 PuyallupPuyallup
    3    1527-1 SamishSamish
    3    1528-9 Sauk-SuiattleSauk-Suiattle
    3    1529-7 SkokomishSkokomish
    3    1530-5 SkykomishSkykomish
    3    1531-3 SnohomishSnohomish
    3    1532-1 SnoqualmieSnoqualmie
    3    1533-9 Squaxin IslandSquaxin Island
    3    1534-7 SteilacoomSteilacoom
    3    1535-4 StillaguamishStillaguamish
    3    1536-2 SuquamishSuquamish
    3    1537-0 SwinomishSwinomish
    3    1538-8 TulalipTulalip
    3    1539-6 Upper SkagitUpper Skagit
    3    1552-9 Iowa Sac and FoxIowa Sac and Fox
    3    1553-7 Missouri Sac and FoxMissouri Sac and Fox
    3    1554-5 Oklahoma Sac and FoxOklahoma Sac and Fox
    3    1567-7 Big CypressBig Cypress
    3    1568-5 BrightonBrighton
    3    1569-3 Florida SeminoleFlorida Seminole
    3    1570-1 Hollywood SeminoleHollywood Seminole
    3    1571-9 Oklahoma SeminoleOklahoma Seminole
    3    1574-3 San ManualSan Manual
    3    1579-2 Absentee ShawneeAbsentee Shawnee
    3    1580-0 Eastern ShawneeEastern Shawnee
    3    1587-5 Battle MountainBattle Mountain
    3    1588-3 DuckwaterDuckwater
    3    1589-1 ElkoElko
    3    1590-9 ElyEly
    3    1591-7 GoshuteGoshute
    3    1592-5 PanamintPanamint
    3    1593-3 Ruby ValleyRuby Valley
    3    1594-1 Skull ValleySkull Valley
    3    1595-8 South Fork ShoshoneSouth Fork Shoshone
    3    1596-6 Te-Moak Western ShoshoneTe-Moak Western Shoshone
    3    1597-4 Timbi-Sha ShoshoneTimbi-Sha Shoshone
    3    1598-2 WashakieWashakie
    3    1599-0 Wind River ShoshoneWind River Shoshone
    3    1600-6 YombaYomba
    3    1603-0 Duck ValleyDuck Valley
    3    1604-8 FallonFallon
    3    1605-5 Fort McDermittFort McDermitt
    3    1610-5 Blackfoot SiouxBlackfoot Sioux
    3    1611-3 Brule SiouxBrule Sioux
    3    1612-1 Cheyenne River SiouxCheyenne River Sioux
    3    1613-9 Crow Creek SiouxCrow Creek Sioux
    3    1614-7 Dakota SiouxDakota Sioux
    3    1615-4 Flandreau SanteeFlandreau Santee
    3    1616-2 Fort PeckFort Peck
    3    1617-0 Lake Traverse SiouxLake Traverse Sioux
    3    1618-8 Lower Brule SiouxLower Brule Sioux
    3    1619-6 Lower SiouxLower Sioux
    3    1620-4 Mdewakanton SiouxMdewakanton Sioux
    3    1621-2 MiniconjouMiniconjou
    3    1622-0 Oglala SiouxOglala Sioux
    3    1623-8 Pine Ridge SiouxPine Ridge Sioux
    3    1624-6 Pipestone SiouxPipestone Sioux
    3    1625-3 Prairie Island SiouxPrairie Island Sioux
    3    1626-1 Prior Lake SiouxPrior Lake Sioux
    3    1627-9 Rosebud SiouxRosebud Sioux
    3    1628-7 Sans Arc SiouxSans Arc Sioux
    3    1629-5 Santee SiouxSantee Sioux
    3    1630-3 Sisseton-WahpetonSisseton-Wahpeton
    3    1631-1 Sisseton SiouxSisseton Sioux
    3    1632-9 Spirit Lake SiouxSpirit Lake Sioux
    3    1633-7 Standing Rock SiouxStanding Rock Sioux
    3    1634-5 Teton SiouxTeton Sioux
    3    1635-2 Two Kettle SiouxTwo Kettle Sioux
    3    1636-0 Upper SiouxUpper Sioux
    3    1637-8 Wahpekute SiouxWahpekute Sioux
    3    1638-6 Wahpeton SiouxWahpeton Sioux
    3    1639-4 Wazhaza SiouxWazhaza Sioux
    3    1640-2 Yankton SiouxYankton Sioux
    3    1641-0 Yanktonai SiouxYanktonai Sioux
    3    1654-3 Ak-ChinAk-Chin
    3    1655-0 Gila BendGila Bend
    3    1656-8 San XavierSan Xavier
    3    1657-6 SellsSells
    3    1668-3 Cow Creek UmpquaCow Creek Umpqua
    3    1671-7 Allen CanyonAllen Canyon
    3    1672-5 Uintah UteUintah Ute
    3    1673-3 Ute Mountain UteUte Mountain Ute
    3    1680-8 Gay Head WampanoagGay Head Wampanoag
    3    1681-6 Mashpee WampanoagMashpee Wampanoag
    3    1688-1 AlpineAlpine
    3    1689-9 CarsonCarson
    3    1690-7 DresslervilleDresslerville
    3    1697-2 Ho-chunkHo-chunk
    3    1698-0 Nebraska WinnebagoNebraska Winnebago
    3    1705-3 Table BluffTable Bluff
    3    1712-9 Barrio LibreBarrio Libre
    3    1713-7 Pascua YaquiPascua Yaqui
    3    1718-6 ChukchansiChukchansi
    3    1719-4 TachiTachi
    3    1720-2 Tule RiverTule River
    3    1725-1 CocopahCocopah
    3    1726-9 HavasupaiHavasupai
    3    1727-7 HualapaiHualapai
    3    1728-5 MaricopaMaricopa
    3    1729-3 MohaveMohave
    3    1730-1 QuechanQuechan
    3    1731-9 YavapaiYavapai
    3    1733-5 Coast YurokCoast Yurok
    3    1737-6 Alaska IndianAlaska Indian
    3    1840-8 EskimoEskimo
    3    1966-1 AleutAleut
    3    1739-2 Alaskan AthabascanAlaskan Athabascan
    3    1811-9 Southeast AlaskaSoutheast Alaska
    3    1740-0 AhtnaAhtna
    3    1741-8 AlatnaAlatna
    3    1742-6 AlexanderAlexander
    3    1743-4 AllakaketAllakaket
    3    1744-2 AlanvikAlanvik
    3    1745-9 AnvikAnvik
    3    1746-7 ArcticArctic
    3    1747-5 BeaverBeaver
    3    1748-3 Birch CreekBirch Creek
    3    1749-1 CantwellCantwell
    3    1750-9 ChalkyitsikChalkyitsik
    3    1751-7 ChickaloonChickaloon
    3    1752-5 ChistochinaChistochina
    3    1753-3 ChitinaChitina
    3    1754-1 CircleCircle
    3    1755-8 Cook InletCook Inlet
    3    1756-6 Copper CenterCopper Center
    3    1757-4 Copper RiverCopper River
    3    1758-2 Dot LakeDot Lake
    3    1759-0 DoyonDoyon
    3    1760-8 EagleEagle
    3    1761-6 EklutnaEklutna
    3    1762-4 EvansvilleEvansville
    3    1763-2 Fort YukonFort Yukon
    3    1764-0 GakonaGakona
    3    1765-7 GalenaGalena
    3    1766-5 GraylingGrayling
    3    1767-3 GulkanaGulkana
    3    1768-1 Healy LakeHealy Lake
    3    1769-9 Holy CrossHoly Cross
    3    1770-7 HughesHughes
    3    1771-5 HusliaHuslia
    3    1772-3 IliamnaIliamna
    3    1773-1 KaltagKaltag
    3    1774-9 Kluti KaahKluti Kaah
    3    1775-6 KnikKnik
    3    1776-4 KoyukukKoyukuk
    3    1777-2 Lake MinchuminaLake Minchumina
    3    1778-0 LimeLime
    3    1779-8 McgrathMcgrath
    3    1780-6 Manley Hot SpringsManley Hot Springs
    3    1781-4 Mentasta LakeMentasta Lake
    3    1782-2 MintoMinto
    3    1783-0 NenanaNenana
    3    1784-8 NikolaiNikolai
    3    1785-5 NinilchikNinilchik
    3    1786-3 NondaltonNondalton
    3    1787-1 NorthwayNorthway
    3    1788-9 NulatoNulato
    3    1789-7 Pedro BayPedro Bay
    3    1790-5 RampartRampart
    3    1791-3 RubyRuby
    3    1792-1 SalamatofSalamatof
    3    1793-9 SeldoviaSeldovia
    3    1794-7 SlanaSlana
    3    1795-4 ShagelukShageluk
    3    1796-2 StevensStevens
    3    1797-0 Stony RiverStony River
    3    1798-8 TakotnaTakotna
    3    1799-6 TanacrossTanacross
    3    1800-2 TanainaTanaina
    3    1801-0 TananaTanana
    3    1802-8 Tanana ChiefsTanana Chiefs
    3    1803-6 TazlinaTazlina
    3    1804-4 TelidaTelida
    3    1805-1 TetlinTetlin
    3    1806-9 TokTok
    3    1807-7 TyonekTyonek
    3    1808-5 VenetieVenetie
    3    1809-3 WisemanWiseman
    3    1813-5 Tlingit-HaidaTlingit-Haida
    3    1837-4 TsimshianTsimshian
    3    1814-3 AngoonAngoon
    3    1815-0 Central Council of Tlingit and Haida TribesCentral Council of Tlingit and Haida Tribes
    3    1816-8 ChilkatChilkat
    3    1817-6 ChilkootChilkoot
    3    1818-4 CraigCraig
    3    1819-2 DouglasDouglas
    3    1820-0 HaidaHaida
    3    1821-8 HoonahHoonah
    3    1822-6 HydaburgHydaburg
    3    1823-4 KakeKake
    3    1824-2 KasaanKasaan
    3    1825-9 KenaitzeKenaitze
    3    1826-7 KetchikanKetchikan
    3    1827-5 KlawockKlawock
    3    1828-3 PelicanPelican
    3    1829-1 PetersburgPetersburg
    3    1830-9 SaxmanSaxman
    3    1831-7 SitkaSitka
    3    1832-5 Tenakee SpringsTenakee Springs
    3    1833-3 TlingitTlingit
    3    1834-1 WrangellWrangell
    3    1835-8 YakutatYakutat
    3    1838-2 MetlakatlaMetlakatla
    3    1842-4 Greenland EskimoGreenland Eskimo
    3    1844-0 Inupiat EskimoInupiat Eskimo
    3    1891-1 Siberian EskimoSiberian Eskimo
    3    1896-0 Yupik EskimoYupik Eskimo
    3    1845-7 AmblerAmbler
    3    1846-5 AnaktuvukAnaktuvuk
    3    1847-3 Anaktuvuk PassAnaktuvuk Pass
    3    1848-1 Arctic Slope InupiatArctic Slope Inupiat
    3    1849-9 Arctic Slope CorporationArctic Slope Corporation
    3    1850-7 AtqasukAtqasuk
    3    1851-5 BarrowBarrow
    3    1852-3 Bering Straits InupiatBering Straits Inupiat
    3    1853-1 Brevig MissionBrevig Mission
    3    1854-9 BucklandBuckland
    3    1855-6 ChinikChinik
    3    1856-4 CouncilCouncil
    3    1857-2 DeeringDeering
    3    1858-0 ElimElim
    3    1859-8 GolovinGolovin
    3    1860-6 Inalik DiomedeInalik Diomede
    3    1861-4 InupiaqInupiaq
    3    1862-2 KaktovikKaktovik
    3    1863-0 KawerakKawerak
    3    1864-8 KianaKiana
    3    1865-5 KivalinaKivalina
    3    1866-3 KobukKobuk
    3    1867-1 KotzebueKotzebue
    3    1868-9 KoyukKoyuk
    3    1869-7 KwigukKwiguk
    3    1870-5 Mauneluk InupiatMauneluk Inupiat
    3    1871-3 Nana InupiatNana Inupiat
    3    1872-1 NoatakNoatak
    3    1873-9 NomeNome
    3    1874-7 NoorvikNoorvik
    3    1875-4 NuiqsutNuiqsut
    3    1876-2 Point HopePoint Hope
    3    1877-0 Point LayPoint Lay
    3    1878-8 SelawikSelawik
    3    1879-6 ShaktoolikShaktoolik
    3    1880-4 ShishmarefShishmaref
    3    1881-2 ShungnakShungnak
    3    1882-0 SolomonSolomon
    3    1883-8 TellerTeller
    3    1884-6 UnalakleetUnalakleet
    3    1885-3 WainwrightWainwright
    3    1886-1 WalesWales
    3    1887-9 White MountainWhite Mountain
    3    1888-7 White Mountain InupiatWhite Mountain Inupiat
    3    1889-5 Mary's IglooMary's Igloo
    3    1892-9 GambellGambell
    3    1893-7 SavoongaSavoonga
    3    1894-5 Siberian YupikSiberian Yupik
    3    1897-8 AkiachakAkiachak
    3    1898-6 AkiakAkiak
    3    1899-4 AlakanukAlakanuk
    3    1900-0 AleknagikAleknagik
    3    1901-8 AndreafskyAndreafsky
    3    1902-6 AniakAniak
    3    1903-4 AtmautluakAtmautluak
    3    1904-2 BethelBethel
    3    1905-9 Bill Moore's SloughBill Moore's Slough
    3    1906-7 Bristol Bay YupikBristol Bay Yupik
    3    1907-5 Calista YupikCalista Yupik
    3    1908-3 ChefornakChefornak
    3    1909-1 ChevakChevak
    3    1910-9 ChuathbalukChuathbaluk
    3    1911-7 Clark's PointClark's Point
    3    1912-5 Crooked CreekCrooked Creek
    3    1913-3 DillinghamDillingham
    3    1914-1 EekEek
    3    1915-8 EkukEkuk
    3    1916-6 EkwokEkwok
    3    1917-4 EmmonakEmmonak
    3    1918-2 Goodnews BayGoodnews Bay
    3    1919-0 Hooper BayHooper Bay
    3    1920-8 Iqurmuit (Russian Mission)Iqurmuit (Russian Mission)
    3    1921-6 KalskagKalskag
    3    1922-4 KasiglukKasigluk
    3    1923-2 KipnukKipnuk
    3    1924-0 KoliganekKoliganek
    3    1925-7 KongiganakKongiganak
    3    1926-5 KotlikKotlik
    3    1927-3 KwethlukKwethluk
    3    1928-1 KwigillingokKwigillingok
    3    1929-9 LevelockLevelock
    3    1930-7 Lower KalskagLower Kalskag
    3    1931-5 ManokotakManokotak
    3    1932-3 MarshallMarshall
    3    1933-1 MekoryukMekoryuk
    3    1934-9 Mountain VillageMountain Village
    3    1935-6 NaknekNaknek
    3    1936-4 NapaumuteNapaumute
    3    1937-2 NapakiakNapakiak
    3    1938-0 NapaskiakNapaskiak
    3    1939-8 NewhalenNewhalen
    3    1940-6 New StuyahokNew Stuyahok
    3    1941-4 NewtokNewtok
    3    1942-2 NightmuteNightmute
    3    1943-0 NunapitchukvNunapitchukv
    3    1944-8 OscarvilleOscarville
    3    1945-5 Pilot StationPilot Station
    3    1946-3 Pitkas PointPitkas Point
    3    1947-1 PlatinumPlatinum
    3    1948-9 Portage CreekPortage Creek
    3    1949-7 QuinhagakQuinhagak
    3    1950-5 Red DevilRed Devil
    3    1951-3 St. MichaelSt. Michael
    3    1952-1 Scammon BayScammon Bay
    3    1953-9 Sheldon's PointSheldon's Point
    3    1954-7 SleetmuteSleetmute
    3    1955-4 StebbinsStebbins
    3    1956-2 TogiakTogiak
    3    1957-0 ToksookToksook
    3    1958-8 TulukskakTulukskak
    3    1959-6 TuntutuliakTuntutuliak
    3    1960-4 TununakTununak
    3    1961-2 Twin HillsTwin Hills
    3    1962-0 Georgetown (Yupik-Eskimo)Georgetown (Yupik-Eskimo)
    3    1963-8 St. Mary'sSt. Mary's
    3    1964-6 UmkumiateUmkumiate
    3    1968-7 Alutiiq AleutAlutiiq Aleut
    3    1972-9 Bristol Bay AleutBristol Bay Aleut
    3    1984-4 Chugach AleutChugach Aleut
    3    1990-1 EyakEyak
    3    1992-7 Koniag AleutKoniag Aleut
    3    2002-4 SugpiaqSugpiaq
    3    2004-0 SuqpigaqSuqpigaq
    3    2006-5 Unangan AleutUnangan Aleut
    3    1969-5 TatitlekTatitlek
    3    1970-3 UgashikUgashik
    3    1973-7 ChignikChignik
    3    1974-5 Chignik LakeChignik Lake
    3    1975-2 EgegikEgegik
    3    1976-0 IgiugigIgiugig
    3    1977-8 Ivanof BayIvanof Bay
    3    1978-6 King SalmonKing Salmon
    3    1979-4 KokhanokKokhanok
    3    1980-2 PerryvillePerryville
    3    1981-0 Pilot PointPilot Point
    3    1982-8 Port HeidenPort Heiden
    3    1985-1 ChenegaChenega
    3    1986-9 Chugach CorporationChugach Corporation
    3    1987-7 English BayEnglish Bay
    3    1988-5 Port GrahamPort Graham
    3    1993-5 AkhiokAkhiok
    3    1994-3 AgdaaguxAgdaagux
    3    1995-0 KarlukKarluk
    3    1996-8 KodiakKodiak
    3    1997-6 Larsen BayLarsen Bay
    3    1998-4 Old HarborOld Harbor
    3    1999-2 OuzinkieOuzinkie
    3    2000-8 Port LionsPort Lions
    3    2007-3 AkutanAkutan
    3    2008-1 Aleut CorporationAleut Corporation
    3    2009-9 AleutianAleutian
    3    2010-7 Aleutian IslanderAleutian Islander
    3    2011-5 AtkaAtka
    3    2012-3 BelkofskiBelkofski
    3    2013-1 Chignik LagoonChignik Lagoon
    3    2014-9 King CoveKing Cove
    3    2015-6 False PassFalse Pass
    3    2016-4 Nelson LagoonNelson Lagoon
    3    2017-2 NikolskiNikolski
    3    2018-0 Pauloff HarborPauloff Harbor
    3    2019-8 Qagan ToyagunginQagan Toyagungin
    3    2020-6 QawalanginQawalangin
    3    2021-4 St. GeorgeSt. George
    3    2022-2 St. PaulSt. Paul
    3    2023-0 Sand PointSand Point
    3    2024-8 South NaknekSouth Naknek
    3    2025-5 UnalaskaUnalaska
    3    2026-3 UngaUnga
    2  2028-9 AsianAsian
    3    2029-7 Asian IndianAsian Indian
    3    2030-5 BangladeshiBangladeshi
    3    2031-3 BhutaneseBhutanese
    3    2032-1 BurmeseBurmese
    3    2033-9 CambodianCambodian
    3    2034-7 ChineseChinese
    3    2035-4 TaiwaneseTaiwanese
    3    2036-2 FilipinoFilipino
    3    2037-0 HmongHmong
    3    2038-8 IndonesianIndonesian
    3    2039-6 JapaneseJapanese
    3    2040-4 KoreanKorean
    3    2041-2 LaotianLaotian
    3    2042-0 MalaysianMalaysian
    3    2043-8 OkinawanOkinawan
    3    2044-6 PakistaniPakistani
    3    2045-3 Sri LankanSri Lankan
    3    2046-1 ThaiThai
    3    2047-9 VietnameseVietnamese
    3    2048-7 Iwo JimanIwo Jiman
    3    2049-5 MaldivianMaldivian
    3    2050-3 NepaleseNepalese
    3    2051-1 SingaporeanSingaporean
    3    2052-9 MadagascarMadagascar
    2  2054-5 Black or African AmericanBlack or African American
    3    2056-0 BlackBlack
    3    2058-6 African AmericanAfrican American
    3    2060-2 AfricanAfrican
    3    2067-7 BahamianBahamian
    3    2068-5 BarbadianBarbadian
    3    2069-3 DominicanDominican
    3    2070-1 Dominica IslanderDominica Islander
    3    2071-9 HaitianHaitian
    3    2072-7 JamaicanJamaican
    3    2073-5 TobagoanTobagoan
    3    2074-3 TrinidadianTrinidadian
    3    2075-0 West IndianWest Indian
    3    2061-0 BotswananBotswanan
    3    2062-8 EthiopianEthiopian
    3    2063-6 LiberianLiberian
    3    2064-4 NamibianNamibian
    3    2065-1 NigerianNigerian
    3    2066-9 ZaireanZairean
    2  2076-8 Native Hawaiian or Other Pacific IslanderNative Hawaiian or Other Pacific Islander
    3    2078-4 PolynesianPolynesian
    3    2085-9 MicronesianMicronesian
    3    2100-6 MelanesianMelanesian
    3    2500-7 Other Pacific IslanderOther Pacific Islander
    3    2079-2 Native HawaiianNative Hawaiian
    3    2080-0 SamoanSamoan
    3    2081-8 TahitianTahitian
    3    2082-6 TonganTongan
    3    2083-4 TokelauanTokelauan
    3    2086-7 Guamanian or ChamorroGuamanian or Chamorro
    3    2087-5 GuamanianGuamanian
    3    2088-3 ChamorroChamorro
    3    2089-1 Mariana IslanderMariana Islander
    3    2090-9 MarshalleseMarshallese
    3    2091-7 PalauanPalauan
    3    2092-5 CarolinianCarolinian
    3    2093-3 KosraeanKosraean
    3    2094-1 PohnpeianPohnpeian
    3    2095-8 SaipaneseSaipanese
    3    2096-6 KiribatiKiribati
    3    2097-4 ChuukeseChuukese
    3    2098-2 YapeseYapese
    3    2101-4 FijianFijian
    3    2102-2 Papua New GuineanPapua New Guinean
    3    2103-0 Solomon IslanderSolomon Islander
    3    2104-8 New HebridesNew Hebrides
    2  2106-3 WhiteWhite
    3    2108-9 EuropeanEuropean
    3    2118-8 Middle Eastern or North AfricanMiddle Eastern or North African
    3    2129-5 ArabArab
    3    2109-7 ArmenianArmenian
    3    2110-5 EnglishEnglish
    3    2111-3 FrenchFrench
    3    2112-1 GermanGerman
    3    2113-9 IrishIrish
    3    2114-7 ItalianItalian
    3    2115-4 PolishPolish
    3    2116-2 ScottishScottish
    3    2119-6 AssyrianAssyrian
    3    2120-4 EgyptianEgyptian
    3    2121-2 IranianIranian
    3    2122-0 IraqiIraqi
    3    2123-8 LebaneseLebanese
    3    2124-6 PalestinianPalestinian
    3    2125-3 SyrianSyrian
    3    2126-1 AfghanistaniAfghanistani
    3    2127-9 IsraeiliIsraeili
    2  2131-1 Other RaceNote that this term remains in the table for completeness, even though within HL7, the notion of Other code is deprecated.
    12133-7 EthnicityEthnicity Note that this is an abstract 'grouping' concept and not for use as a real concept
    2  2135-2 Hispanic or LatinoHispanic or Latino
    3    2137-8 SpaniardSpaniard
    3    2148-5 MexicanMexican
    3    2155-0 Central AmericanCentral American
    3    2165-9 South AmericanSouth American
    3    2178-2 Latin AmericanLatin American
    3    2180-8 Puerto RicanPuerto Rican
    3    2182-4 CubanCuban
    3    2184-0 DominicanDominican
    3    2138-6 AndalusianAndalusian
    3    2139-4 AsturianAsturian
    3    2140-2 CastillianCastillian
    3    2141-0 CatalonianCatalonian
    3    2142-8 Belearic IslanderBelearic Islander
    3    2143-6 GallegoGallego
    3    2144-4 ValencianValencian
    3    2145-1 CanarianCanarian
    3    2146-9 Spanish BasqueSpanish Basque
    3    2149-3 Mexican AmericanMexican American
    3    2150-1 MexicanoMexicano
    3    2151-9 ChicanoChicano
    3    2152-7 La RazaLa Raza
    3    2153-5 Mexican American IndianMexican American Indian
    3    2156-8 Costa RicanCosta Rican
    3    2157-6 GuatemalanGuatemalan
    3    2158-4 HonduranHonduran
    3    2159-2 NicaraguanNicaraguan
    3    2160-0 PanamanianPanamanian
    3    2161-8 SalvadoranSalvadoran
    3    2162-6 Central American IndianCentral American Indian
    3    2163-4 Canal ZoneCanal Zone
    3    2166-7 ArgentineanArgentinean
    3    2167-5 BolivianBolivian
    3    2168-3 ChileanChilean
    3    2169-1 ColombianColombian
    3    2170-9 EcuadorianEcuadorian
    3    2171-7 ParaguayanParaguayan
    3    2172-5 PeruvianPeruvian
    3    2173-3 UruguayanUruguayan
    3    2174-1 VenezuelanVenezuelan
    3    2175-8 South American IndianSouth American Indian
    3    2176-6 CriolloCriollo
    2  2186-5 Not Hispanic or LatinoNote that this term remains in the table for completeness, even though within HL7, the notion of "not otherwise coded" term is deprecated.
    "},"url":"urn:oid:2.16.840.1.113883.6.238","identifier":[{"value":"2.16.840.1.113883.6.238"}],"version":"3.0.1","name":"RaceAndEthnicityCDC","title":"Race & Ethnicity - CDC","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://hl7.org"}]}],"description":" The U.S. Centers for Disease Control and Prevention (CDC) has prepared a code set for use in codingrace and ethnicity data. This code set is based on current federal standards for classifying data onrace and ethnicity, specifically the minimum race and ethnicity categories defined by the U.S. Office ofManagement and Budget (OMB) and a more detailed set of race and ethnicity categories maintainedby the U.S. Bureau of the Census (BC). The main purpose of the code set is to facilitate use of federalstandards for classifying data on race and ethnicity when these data are exchanged, stored, retrieved,or analyzed in electronic form. At the same time, the code set can be applied to paper-based recordsystems to the extent that these systems are used to collect, maintain, and report data on race andethnicity in accordance with current federal standards. Source: [Race and Ethnicity Code Set Version 1.0](https://www.cdc.gov/phin/resources/vocabulary/documents/cdc-race--ethnicity-background-and-purpose.pdf).","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"caseSensitive":true,"hierarchyMeaning":"is-a","content":"complete","count":966,"property":[{"code":"abstract","description":"True if an element is considered 'abstract' - in other words, the code is not for use as a real concept","type":"boolean"}],"concept":[{"code":"1000-9","display":"Race","definition":"Race, Note that this is an abstract 'grouping' concept and not for use as a real concept","property":[{"code":"abstract","valueBoolean":true}],"concept":[{"code":"1002-5","display":"American Indian or Alaska Native","definition":"American Indian or Alaska Native","concept":[{"code":"1004-1","display":"American Indian","definition":"American Indian"},{"code":"1735-0","display":"Alaska Native","definition":"Alaska Native"},{"code":"1006-6","display":"Abenaki","definition":"Abenaki"},{"code":"1008-2","display":"Algonquian","definition":"Algonquian"},{"code":"1010-8","display":"Apache","definition":"Apache"},{"code":"1021-5","display":"Arapaho","definition":"Arapaho"},{"code":"1026-4","display":"Arikara","definition":"Arikara"},{"code":"1028-0","display":"Assiniboine","definition":"Assiniboine"},{"code":"1030-6","display":"Assiniboine Sioux","definition":"Assiniboine Sioux"},{"code":"1033-0","display":"Bannock","definition":"Bannock"},{"code":"1035-5","display":"Blackfeet","definition":"Blackfeet"},{"code":"1037-1","display":"Brotherton","definition":"Brotherton"},{"code":"1039-7","display":"Burt Lake Band","definition":"Burt Lake Band"},{"code":"1041-3","display":"Caddo","definition":"Caddo"},{"code":"1044-7","display":"Cahuilla","definition":"Cahuilla"},{"code":"1053-8","display":"California Tribes","definition":"California Tribes"},{"code":"1068-6","display":"Canadian and Latin American Indian","definition":"Canadian and Latin American Indian"},{"code":"1076-9","display":"Catawba","definition":"Catawba"},{"code":"1078-5","display":"Cayuse","definition":"Cayuse"},{"code":"1080-1","display":"Chehalis","definition":"Chehalis"},{"code":"1082-7","display":"Chemakuan","definition":"Chemakuan"},{"code":"1086-8","display":"Chemehuevi","definition":"Chemehuevi"},{"code":"1088-4","display":"Cherokee","definition":"Cherokee"},{"code":"1100-7","display":"Cherokee Shawnee","definition":"Cherokee Shawnee"},{"code":"1102-3","display":"Cheyenne","definition":"Cheyenne"},{"code":"1106-4","display":"Cheyenne-Arapaho","definition":"Cheyenne-Arapaho"},{"code":"1108-0","display":"Chickahominy","definition":"Chickahominy"},{"code":"1112-2","display":"Chickasaw","definition":"Chickasaw"},{"code":"1114-8","display":"Chinook","definition":"Chinook"},{"code":"1123-9","display":"Chippewa","definition":"Chippewa"},{"code":"1150-2","display":"Chippewa Cree","definition":"Chippewa Cree"},{"code":"1153-6","display":"Chitimacha","definition":"Chitimacha"},{"code":"1155-1","display":"Choctaw","definition":"Choctaw"},{"code":"1162-7","display":"Chumash","definition":"Chumash"},{"code":"1165-0","display":"Clear Lake","definition":"Clear Lake"},{"code":"1167-6","display":"Coeur D'Alene","definition":"Coeur D'Alene"},{"code":"1169-2","display":"Coharie","definition":"Coharie"},{"code":"1171-8","display":"Colorado River","definition":"Colorado River"},{"code":"1173-4","display":"Colville","definition":"Colville"},{"code":"1175-9","display":"Comanche","definition":"Comanche"},{"code":"1178-3","display":"Coos, Lower Umpqua, Siuslaw","definition":"Coos, Lower Umpqua, Siuslaw"},{"code":"1180-9","display":"Coos","definition":"Coos"},{"code":"1182-5","display":"Coquilles","definition":"Coquilles"},{"code":"1184-1","display":"Costanoan","definition":"Costanoan"},{"code":"1186-6","display":"Coushatta","definition":"Coushatta"},{"code":"1189-0","display":"Cowlitz","definition":"Cowlitz"},{"code":"1191-6","display":"Cree","definition":"Cree"},{"code":"1193-2","display":"Creek","definition":"Creek"},{"code":"1207-0","display":"Croatan","definition":"Croatan"},{"code":"1209-6","display":"Crow","definition":"Crow"},{"code":"1211-2","display":"Cupeno","definition":"Cupeno"},{"code":"1214-6","display":"Delaware","definition":"Delaware"},{"code":"1222-9","display":"Diegueno","definition":"Diegueno"},{"code":"1233-6","display":"Eastern Tribes","definition":"Eastern Tribes"},{"code":"1250-0","display":"Esselen","definition":"Esselen"},{"code":"1252-6","display":"Fort Belknap","definition":"Fort Belknap"},{"code":"1254-2","display":"Fort Berthold","definition":"Fort Berthold"},{"code":"1256-7","display":"Fort Mcdowell","definition":"Fort Mcdowell"},{"code":"1258-3","display":"Fort Hall","definition":"Fort Hall"},{"code":"1260-9","display":"Gabrieleno","definition":"Gabrieleno"},{"code":"1262-5","display":"Grand Ronde","definition":"Grand Ronde"},{"code":"1264-1","display":"Gros Ventres","definition":"Gros Ventres"},{"code":"1267-4","display":"Haliwa","definition":"Haliwa"},{"code":"1269-0","display":"Hidatsa","definition":"Hidatsa"},{"code":"1271-6","display":"Hoopa","definition":"Hoopa"},{"code":"1275-7","display":"Hoopa Extension","definition":"Hoopa Extension"},{"code":"1277-3","display":"Houma","definition":"Houma"},{"code":"1279-9","display":"Inaja-Cosmit","definition":"Inaja-Cosmit"},{"code":"1281-5","display":"Iowa","definition":"Iowa"},{"code":"1285-6","display":"Iroquois","definition":"Iroquois"},{"code":"1297-1","display":"Juaneno","definition":"Juaneno"},{"code":"1299-7","display":"Kalispel","definition":"Kalispel"},{"code":"1301-1","display":"Karuk","definition":"Karuk"},{"code":"1303-7","display":"Kaw","definition":"Kaw"},{"code":"1305-2","display":"Kickapoo","definition":"Kickapoo"},{"code":"1309-4","display":"Kiowa","definition":"Kiowa"},{"code":"1312-8","display":"Klallam","definition":"Klallam"},{"code":"1317-7","display":"Klamath","definition":"Klamath"},{"code":"1319-3","display":"Konkow","definition":"Konkow"},{"code":"1321-9","display":"Kootenai","definition":"Kootenai"},{"code":"1323-5","display":"Lassik","definition":"Lassik"},{"code":"1325-0","display":"Long Island","definition":"Long Island"},{"code":"1331-8","display":"Luiseno","definition":"Luiseno"},{"code":"1340-9","display":"Lumbee","definition":"Lumbee"},{"code":"1342-5","display":"Lummi","definition":"Lummi"},{"code":"1344-1","display":"Maidu","definition":"Maidu"},{"code":"1348-2","display":"Makah","definition":"Makah"},{"code":"1350-8","display":"Maliseet","definition":"Maliseet"},{"code":"1352-4","display":"Mandan","definition":"Mandan"},{"code":"1354-0","display":"Mattaponi","definition":"Mattaponi"},{"code":"1356-5","display":"Menominee","definition":"Menominee"},{"code":"1358-1","display":"Miami","definition":"Miami"},{"code":"1363-1","display":"Miccosukee","definition":"Miccosukee"},{"code":"1365-6","display":"Micmac","definition":"Micmac"},{"code":"1368-0","display":"Mission Indians","definition":"Mission Indians"},{"code":"1370-6","display":"Miwok","definition":"Miwok"},{"code":"1372-2","display":"Modoc","definition":"Modoc"},{"code":"1374-8","display":"Mohegan","definition":"Mohegan"},{"code":"1376-3","display":"Mono","definition":"Mono"},{"code":"1378-9","display":"Nanticoke","definition":"Nanticoke"},{"code":"1380-5","display":"Narragansett","definition":"Narragansett"},{"code":"1382-1","display":"Navajo","definition":"Navajo"},{"code":"1387-0","display":"Nez Perce","definition":"Nez Perce"},{"code":"1389-6","display":"Nomalaki","definition":"Nomalaki"},{"code":"1391-2","display":"Northwest Tribes","definition":"Northwest Tribes"},{"code":"1403-5","display":"Omaha","definition":"Omaha"},{"code":"1405-0","display":"Oregon Athabaskan","definition":"Oregon Athabaskan"},{"code":"1407-6","display":"Osage","definition":"Osage"},{"code":"1409-2","display":"Otoe-Missouria","definition":"Otoe-Missouria"},{"code":"1411-8","display":"Ottawa","definition":"Ottawa"},{"code":"1416-7","display":"Paiute","definition":"Paiute"},{"code":"1439-9","display":"Pamunkey","definition":"Pamunkey"},{"code":"1441-5","display":"Passamaquoddy","definition":"Passamaquoddy"},{"code":"1445-6","display":"Pawnee","definition":"Pawnee"},{"code":"1448-0","display":"Penobscot","definition":"Penobscot"},{"code":"1450-6","display":"Peoria","definition":"Peoria"},{"code":"1453-0","display":"Pequot","definition":"Pequot"},{"code":"1456-3","display":"Pima","definition":"Pima"},{"code":"1460-5","display":"Piscataway","definition":"Piscataway"},{"code":"1462-1","display":"Pit River","definition":"Pit River"},{"code":"1464-7","display":"Pomo","definition":"Pomo"},{"code":"1474-6","display":"Ponca","definition":"Ponca"},{"code":"1478-7","display":"Potawatomi","definition":"Potawatomi"},{"code":"1487-8","display":"Powhatan","definition":"Powhatan"},{"code":"1489-4","display":"Pueblo","definition":"Pueblo"},{"code":"1518-0","display":"Puget Sound Salish","definition":"Puget Sound Salish"},{"code":"1541-2","display":"Quapaw","definition":"Quapaw"},{"code":"1543-8","display":"Quinault","definition":"Quinault"},{"code":"1545-3","display":"Rappahannock","definition":"Rappahannock"},{"code":"1547-9","display":"Reno-Sparks","definition":"Reno-Sparks"},{"code":"1549-5","display":"Round Valley","definition":"Round Valley"},{"code":"1551-1","display":"Sac and Fox","definition":"Sac and Fox"},{"code":"1556-0","display":"Salinan","definition":"Salinan"},{"code":"1558-6","display":"Salish","definition":"Salish"},{"code":"1560-2","display":"Salish and Kootenai","definition":"Salish and Kootenai"},{"code":"1562-8","display":"Schaghticoke","definition":"Schaghticoke"},{"code":"1564-4","display":"Scott Valley","definition":"Scott Valley"},{"code":"1566-9","display":"Seminole","definition":"Seminole"},{"code":"1573-5","display":"Serrano","definition":"Serrano"},{"code":"1576-8","display":"Shasta","definition":"Shasta"},{"code":"1578-4","display":"Shawnee","definition":"Shawnee"},{"code":"1582-6","display":"Shinnecock","definition":"Shinnecock"},{"code":"1584-2","display":"Shoalwater Bay","definition":"Shoalwater Bay"},{"code":"1586-7","display":"Shoshone","definition":"Shoshone"},{"code":"1602-2","display":"Shoshone Paiute","definition":"Shoshone Paiute"},{"code":"1607-1","display":"Siletz","definition":"Siletz"},{"code":"1609-7","display":"Sioux","definition":"Sioux"},{"code":"1643-6","display":"Siuslaw","definition":"Siuslaw"},{"code":"1645-1","display":"Spokane","definition":"Spokane"},{"code":"1647-7","display":"Stewart","definition":"Stewart"},{"code":"1649-3","display":"Stockbridge","definition":"Stockbridge"},{"code":"1651-9","display":"Susanville","definition":"Susanville"},{"code":"1653-5","display":"Tohono O'Odham","definition":"Tohono O'Odham"},{"code":"1659-2","display":"Tolowa","definition":"Tolowa"},{"code":"1661-8","display":"Tonkawa","definition":"Tonkawa"},{"code":"1663-4","display":"Tygh","definition":"Tygh"},{"code":"1665-9","display":"Umatilla","definition":"Umatilla"},{"code":"1667-5","display":"Umpqua","definition":"Umpqua"},{"code":"1670-9","display":"Ute","definition":"Ute"},{"code":"1675-8","display":"Wailaki","definition":"Wailaki"},{"code":"1677-4","display":"Walla-Walla","definition":"Walla-Walla"},{"code":"1679-0","display":"Wampanoag","definition":"Wampanoag"},{"code":"1683-2","display":"Warm Springs","definition":"Warm Springs"},{"code":"1685-7","display":"Wascopum","definition":"Wascopum"},{"code":"1687-3","display":"Washoe","definition":"Washoe"},{"code":"1692-3","display":"Wichita","definition":"Wichita"},{"code":"1694-9","display":"Wind River","definition":"Wind River"},{"code":"1696-4","display":"Winnebago","definition":"Winnebago"},{"code":"1700-4","display":"Winnemucca","definition":"Winnemucca"},{"code":"1702-0","display":"Wintun","definition":"Wintun"},{"code":"1704-6","display":"Wiyot","definition":"Wiyot"},{"code":"1707-9","display":"Yakama","definition":"Yakama"},{"code":"1709-5","display":"Yakama Cowlitz","definition":"Yakama Cowlitz"},{"code":"1711-1","display":"Yaqui","definition":"Yaqui"},{"code":"1715-2","display":"Yavapai Apache","definition":"Yavapai Apache"},{"code":"1717-8","display":"Yokuts","definition":"Yokuts"},{"code":"1722-8","display":"Yuchi","definition":"Yuchi"},{"code":"1724-4","display":"Yuman","definition":"Yuman"},{"code":"1732-7","display":"Yurok","definition":"Yurok"},{"code":"1011-6","display":"Chiricahua","definition":"Chiricahua"},{"code":"1012-4","display":"Fort Sill Apache","definition":"Fort Sill Apache"},{"code":"1013-2","display":"Jicarilla Apache","definition":"Jicarilla Apache"},{"code":"1014-0","display":"Lipan Apache","definition":"Lipan Apache"},{"code":"1015-7","display":"Mescalero Apache","definition":"Mescalero Apache"},{"code":"1016-5","display":"Oklahoma Apache","definition":"Oklahoma Apache"},{"code":"1017-3","display":"Payson Apache","definition":"Payson Apache"},{"code":"1018-1","display":"San Carlos Apache","definition":"San Carlos Apache"},{"code":"1019-9","display":"White Mountain Apache","definition":"White Mountain Apache"},{"code":"1022-3","display":"Northern Arapaho","definition":"Northern Arapaho"},{"code":"1023-1","display":"Southern Arapaho","definition":"Southern Arapaho"},{"code":"1024-9","display":"Wind River Arapaho","definition":"Wind River Arapaho"},{"code":"1031-4","display":"Fort Peck Assiniboine Sioux","definition":"Fort Peck Assiniboine Sioux"},{"code":"1042-1","display":"Oklahoma Cado","definition":"Oklahoma Cado"},{"code":"1045-4","display":"Agua Caliente Cahuilla","definition":"Agua Caliente Cahuilla"},{"code":"1046-2","display":"Augustine","definition":"Augustine"},{"code":"1047-0","display":"Cabazon","definition":"Cabazon"},{"code":"1048-8","display":"Los Coyotes","definition":"Los Coyotes"},{"code":"1049-6","display":"Morongo","definition":"Morongo"},{"code":"1050-4","display":"Santa Rosa Cahuilla","definition":"Santa Rosa Cahuilla"},{"code":"1051-2","display":"Torres-Martinez","definition":"Torres-Martinez"},{"code":"1054-6","display":"Cahto","definition":"Cahto"},{"code":"1055-3","display":"Chimariko","definition":"Chimariko"},{"code":"1056-1","display":"Coast Miwok","definition":"Coast Miwok"},{"code":"1057-9","display":"Digger","definition":"Digger"},{"code":"1058-7","display":"Kawaiisu","definition":"Kawaiisu"},{"code":"1059-5","display":"Kern River","definition":"Kern River"},{"code":"1060-3","display":"Mattole","definition":"Mattole"},{"code":"1061-1","display":"Red Wood","definition":"Red Wood"},{"code":"1062-9","display":"Santa Rosa","definition":"Santa Rosa"},{"code":"1063-7","display":"Takelma","definition":"Takelma"},{"code":"1064-5","display":"Wappo","definition":"Wappo"},{"code":"1065-2","display":"Yana","definition":"Yana"},{"code":"1066-0","display":"Yuki","definition":"Yuki"},{"code":"1069-4","display":"Canadian Indian","definition":"Canadian Indian"},{"code":"1070-2","display":"Central American Indian","definition":"Central American Indian"},{"code":"1071-0","display":"French American Indian","definition":"French American Indian"},{"code":"1072-8","display":"Mexican American Indian","definition":"Mexican American Indian"},{"code":"1073-6","display":"South American Indian","definition":"South American Indian"},{"code":"1074-4","display":"Spanish American Indian","definition":"Spanish American Indian"},{"code":"1083-5","display":"Hoh","definition":"Hoh"},{"code":"1084-3","display":"Quileute","definition":"Quileute"},{"code":"1089-2","display":"Cherokee Alabama","definition":"Cherokee Alabama"},{"code":"1090-0","display":"Cherokees of Northeast Alabama","definition":"Cherokees of Northeast Alabama"},{"code":"1091-8","display":"Cherokees of Southeast Alabama","definition":"Cherokees of Southeast Alabama"},{"code":"1092-6","display":"Eastern Cherokee","definition":"Eastern Cherokee"},{"code":"1093-4","display":"Echota Cherokee","definition":"Echota Cherokee"},{"code":"1094-2","display":"Etowah Cherokee","definition":"Etowah Cherokee"},{"code":"1095-9","display":"Northern Cherokee","definition":"Northern Cherokee"},{"code":"1096-7","display":"Tuscola","definition":"Tuscola"},{"code":"1097-5","display":"United Keetowah Band of Cherokee","definition":"United Keetowah Band of Cherokee"},{"code":"1098-3","display":"Western Cherokee","definition":"Western Cherokee"},{"code":"1103-1","display":"Northern Cheyenne","definition":"Northern Cheyenne"},{"code":"1104-9","display":"Southern Cheyenne","definition":"Southern Cheyenne"},{"code":"1109-8","display":"Eastern Chickahominy","definition":"Eastern Chickahominy"},{"code":"1110-6","display":"Western Chickahominy","definition":"Western Chickahominy"},{"code":"1115-5","display":"Clatsop","definition":"Clatsop"},{"code":"1116-3","display":"Columbia River Chinook","definition":"Columbia River Chinook"},{"code":"1117-1","display":"Kathlamet","definition":"Kathlamet"},{"code":"1118-9","display":"Upper Chinook","definition":"Upper Chinook"},{"code":"1119-7","display":"Wakiakum Chinook","definition":"Wakiakum Chinook"},{"code":"1120-5","display":"Willapa Chinook","definition":"Willapa Chinook"},{"code":"1121-3","display":"Wishram","definition":"Wishram"},{"code":"1124-7","display":"Bad River","definition":"Bad River"},{"code":"1125-4","display":"Bay Mills Chippewa","definition":"Bay Mills Chippewa"},{"code":"1126-2","display":"Bois Forte","definition":"Bois Forte"},{"code":"1127-0","display":"Burt Lake Chippewa","definition":"Burt Lake Chippewa"},{"code":"1128-8","display":"Fond du Lac","definition":"Fond du Lac"},{"code":"1129-6","display":"Grand Portage","definition":"Grand Portage"},{"code":"1130-4","display":"Grand Traverse Band of Ottawa/Chippewa","definition":"Grand Traverse Band of Ottawa/Chippewa"},{"code":"1131-2","display":"Keweenaw","definition":"Keweenaw"},{"code":"1132-0","display":"Lac Courte Oreilles","definition":"Lac Courte Oreilles"},{"code":"1133-8","display":"Lac du Flambeau","definition":"Lac du Flambeau"},{"code":"1134-6","display":"Lac Vieux Desert Chippewa","definition":"Lac Vieux Desert Chippewa"},{"code":"1135-3","display":"Lake Superior","definition":"Lake Superior"},{"code":"1136-1","display":"Leech Lake","definition":"Leech Lake"},{"code":"1137-9","display":"Little Shell Chippewa","definition":"Little Shell Chippewa"},{"code":"1138-7","display":"Mille Lacs","definition":"Mille Lacs"},{"code":"1139-5","display":"Minnesota Chippewa","definition":"Minnesota Chippewa"},{"code":"1140-3","display":"Ontonagon","definition":"Ontonagon"},{"code":"1141-1","display":"Red Cliff Chippewa","definition":"Red Cliff Chippewa"},{"code":"1142-9","display":"Red Lake Chippewa","definition":"Red Lake Chippewa"},{"code":"1143-7","display":"Saginaw Chippewa","definition":"Saginaw Chippewa"},{"code":"1144-5","display":"St. Croix Chippewa","definition":"St. Croix Chippewa"},{"code":"1145-2","display":"Sault Ste. Marie Chippewa","definition":"Sault Ste. Marie Chippewa"},{"code":"1146-0","display":"Sokoagon Chippewa","definition":"Sokoagon Chippewa"},{"code":"1147-8","display":"Turtle Mountain","definition":"Turtle Mountain"},{"code":"1148-6","display":"White Earth","definition":"White Earth"},{"code":"1151-0","display":"Rocky Boy's Chippewa Cree","definition":"Rocky Boy's Chippewa Cree"},{"code":"1156-9","display":"Clifton Choctaw","definition":"Clifton Choctaw"},{"code":"1157-7","display":"Jena Choctaw","definition":"Jena Choctaw"},{"code":"1158-5","display":"Mississippi Choctaw","definition":"Mississippi Choctaw"},{"code":"1159-3","display":"Mowa Band of Choctaw","definition":"Mowa Band of Choctaw"},{"code":"1160-1","display":"Oklahoma Choctaw","definition":"Oklahoma Choctaw"},{"code":"1163-5","display":"Santa Ynez","definition":"Santa Ynez"},{"code":"1176-7","display":"Oklahoma Comanche","definition":"Oklahoma Comanche"},{"code":"1187-4","display":"Alabama Coushatta","definition":"Alabama Coushatta"},{"code":"1194-0","display":"Alabama Creek","definition":"Alabama Creek"},{"code":"1195-7","display":"Alabama Quassarte","definition":"Alabama Quassarte"},{"code":"1196-5","display":"Eastern Creek","definition":"Eastern Creek"},{"code":"1197-3","display":"Eastern Muscogee","definition":"Eastern Muscogee"},{"code":"1198-1","display":"Kialegee","definition":"Kialegee"},{"code":"1199-9","display":"Lower Muscogee","definition":"Lower Muscogee"},{"code":"1200-5","display":"Machis Lower Creek Indian","definition":"Machis Lower Creek Indian"},{"code":"1201-3","display":"Poarch Band","definition":"Poarch Band"},{"code":"1202-1","display":"Principal Creek Indian Nation","definition":"Principal Creek Indian Nation"},{"code":"1203-9","display":"Star Clan of Muscogee Creeks","definition":"Star Clan of Muscogee Creeks"},{"code":"1204-7","display":"Thlopthlocco","definition":"Thlopthlocco"},{"code":"1205-4","display":"Tuckabachee","definition":"Tuckabachee"},{"code":"1212-0","display":"Agua Caliente","definition":"Agua Caliente"},{"code":"1215-3","display":"Eastern Delaware","definition":"Eastern Delaware"},{"code":"1216-1","display":"Lenni-Lenape","definition":"Lenni-Lenape"},{"code":"1217-9","display":"Munsee","definition":"Munsee"},{"code":"1218-7","display":"Oklahoma Delaware","definition":"Oklahoma Delaware"},{"code":"1219-5","display":"Rampough Mountain","definition":"Rampough Mountain"},{"code":"1220-3","display":"Sand Hill","definition":"Sand Hill"},{"code":"1223-7","display":"Campo","definition":"Campo"},{"code":"1224-5","display":"Capitan Grande","definition":"Capitan Grande"},{"code":"1225-2","display":"Cuyapaipe","definition":"Cuyapaipe"},{"code":"1226-0","display":"La Posta","definition":"La Posta"},{"code":"1227-8","display":"Manzanita","definition":"Manzanita"},{"code":"1228-6","display":"Mesa Grande","definition":"Mesa Grande"},{"code":"1229-4","display":"San Pasqual","definition":"San Pasqual"},{"code":"1230-2","display":"Santa Ysabel","definition":"Santa Ysabel"},{"code":"1231-0","display":"Sycuan","definition":"Sycuan"},{"code":"1234-4","display":"Attacapa","definition":"Attacapa"},{"code":"1235-1","display":"Biloxi","definition":"Biloxi"},{"code":"1236-9","display":"Georgetown (Eastern Tribes)","definition":"Georgetown (Eastern Tribes)"},{"code":"1237-7","display":"Moor","definition":"Moor"},{"code":"1238-5","display":"Nansemond","definition":"Nansemond"},{"code":"1239-3","display":"Natchez","definition":"Natchez"},{"code":"1240-1","display":"Nausu Waiwash","definition":"Nausu Waiwash"},{"code":"1241-9","display":"Nipmuc","definition":"Nipmuc"},{"code":"1242-7","display":"Paugussett","definition":"Paugussett"},{"code":"1243-5","display":"Pocomoke Acohonock","definition":"Pocomoke Acohonock"},{"code":"1244-3","display":"Southeastern Indians","definition":"Southeastern Indians"},{"code":"1245-0","display":"Susquehanock","definition":"Susquehanock"},{"code":"1246-8","display":"Tunica Biloxi","definition":"Tunica Biloxi"},{"code":"1247-6","display":"Waccamaw-Siousan","definition":"Waccamaw-Siousan"},{"code":"1248-4","display":"Wicomico","definition":"Wicomico"},{"code":"1265-8","display":"Atsina","definition":"Atsina"},{"code":"1272-4","display":"Trinity","definition":"Trinity"},{"code":"1273-2","display":"Whilkut","definition":"Whilkut"},{"code":"1282-3","display":"Iowa of Kansas-Nebraska","definition":"Iowa of Kansas-Nebraska"},{"code":"1283-1","display":"Iowa of Oklahoma","definition":"Iowa of Oklahoma"},{"code":"1286-4","display":"Cayuga","definition":"Cayuga"},{"code":"1287-2","display":"Mohawk","definition":"Mohawk"},{"code":"1288-0","display":"Oneida","definition":"Oneida"},{"code":"1289-8","display":"Onondaga","definition":"Onondaga"},{"code":"1290-6","display":"Seneca","definition":"Seneca"},{"code":"1291-4","display":"Seneca Nation","definition":"Seneca Nation"},{"code":"1292-2","display":"Seneca-Cayuga","definition":"Seneca-Cayuga"},{"code":"1293-0","display":"Tonawanda Seneca","definition":"Tonawanda Seneca"},{"code":"1294-8","display":"Tuscarora","definition":"Tuscarora"},{"code":"1295-5","display":"Wyandotte","definition":"Wyandotte"},{"code":"1306-0","display":"Oklahoma Kickapoo","definition":"Oklahoma Kickapoo"},{"code":"1307-8","display":"Texas Kickapoo","definition":"Texas Kickapoo"},{"code":"1310-2","display":"Oklahoma Kiowa","definition":"Oklahoma Kiowa"},{"code":"1313-6","display":"Jamestown","definition":"Jamestown"},{"code":"1314-4","display":"Lower Elwha","definition":"Lower Elwha"},{"code":"1315-1","display":"Port Gamble Klallam","definition":"Port Gamble Klallam"},{"code":"1326-8","display":"Matinecock","definition":"Matinecock"},{"code":"1327-6","display":"Montauk","definition":"Montauk"},{"code":"1328-4","display":"Poospatuck","definition":"Poospatuck"},{"code":"1329-2","display":"Setauket","definition":"Setauket"},{"code":"1332-6","display":"La Jolla","definition":"La Jolla"},{"code":"1333-4","display":"Pala","definition":"Pala"},{"code":"1334-2","display":"Pauma","definition":"Pauma"},{"code":"1335-9","display":"Pechanga","definition":"Pechanga"},{"code":"1336-7","display":"Soboba","definition":"Soboba"},{"code":"1337-5","display":"Twenty-Nine Palms","definition":"Twenty-Nine Palms"},{"code":"1338-3","display":"Temecula","definition":"Temecula"},{"code":"1345-8","display":"Mountain Maidu","definition":"Mountain Maidu"},{"code":"1346-6","display":"Nishinam","definition":"Nishinam"},{"code":"1359-9","display":"Illinois Miami","definition":"Illinois Miami"},{"code":"1360-7","display":"Indiana Miami","definition":"Indiana Miami"},{"code":"1361-5","display":"Oklahoma Miami","definition":"Oklahoma Miami"},{"code":"1366-4","display":"Aroostook","definition":"Aroostook"},{"code":"1383-9","display":"Alamo Navajo","definition":"Alamo Navajo"},{"code":"1384-7","display":"Canoncito Navajo","definition":"Canoncito Navajo"},{"code":"1385-4","display":"Ramah Navajo","definition":"Ramah Navajo"},{"code":"1392-0","display":"Alsea","definition":"Alsea"},{"code":"1393-8","display":"Celilo","definition":"Celilo"},{"code":"1394-6","display":"Columbia","definition":"Columbia"},{"code":"1395-3","display":"Kalapuya","definition":"Kalapuya"},{"code":"1396-1","display":"Molala","definition":"Molala"},{"code":"1397-9","display":"Talakamish","definition":"Talakamish"},{"code":"1398-7","display":"Tenino","definition":"Tenino"},{"code":"1399-5","display":"Tillamook","definition":"Tillamook"},{"code":"1400-1","display":"Wenatchee","definition":"Wenatchee"},{"code":"1401-9","display":"Yahooskin","definition":"Yahooskin"},{"code":"1412-6","display":"Burt Lake Ottawa","definition":"Burt Lake Ottawa"},{"code":"1413-4","display":"Michigan Ottawa","definition":"Michigan Ottawa"},{"code":"1414-2","display":"Oklahoma Ottawa","definition":"Oklahoma Ottawa"},{"code":"1417-5","display":"Bishop","definition":"Bishop"},{"code":"1418-3","display":"Bridgeport","definition":"Bridgeport"},{"code":"1419-1","display":"Burns Paiute","definition":"Burns Paiute"},{"code":"1420-9","display":"Cedarville","definition":"Cedarville"},{"code":"1421-7","display":"Fort Bidwell","definition":"Fort Bidwell"},{"code":"1422-5","display":"Fort Independence","definition":"Fort Independence"},{"code":"1423-3","display":"Kaibab","definition":"Kaibab"},{"code":"1424-1","display":"Las Vegas","definition":"Las Vegas"},{"code":"1425-8","display":"Lone Pine","definition":"Lone Pine"},{"code":"1426-6","display":"Lovelock","definition":"Lovelock"},{"code":"1427-4","display":"Malheur Paiute","definition":"Malheur Paiute"},{"code":"1428-2","display":"Moapa","definition":"Moapa"},{"code":"1429-0","display":"Northern Paiute","definition":"Northern Paiute"},{"code":"1430-8","display":"Owens Valley","definition":"Owens Valley"},{"code":"1431-6","display":"Pyramid Lake","definition":"Pyramid Lake"},{"code":"1432-4","display":"San Juan Southern Paiute","definition":"San Juan Southern Paiute"},{"code":"1433-2","display":"Southern Paiute","definition":"Southern Paiute"},{"code":"1434-0","display":"Summit Lake","definition":"Summit Lake"},{"code":"1435-7","display":"Utu Utu Gwaitu Paiute","definition":"Utu Utu Gwaitu Paiute"},{"code":"1436-5","display":"Walker River","definition":"Walker River"},{"code":"1437-3","display":"Yerington Paiute","definition":"Yerington Paiute"},{"code":"1442-3","display":"Indian Township","definition":"Indian Township"},{"code":"1443-1","display":"Pleasant Point Passamaquoddy","definition":"Pleasant Point Passamaquoddy"},{"code":"1446-4","display":"Oklahoma Pawnee","definition":"Oklahoma Pawnee"},{"code":"1451-4","display":"Oklahoma Peoria","definition":"Oklahoma Peoria"},{"code":"1454-8","display":"Marshantucket Pequot","definition":"Marshantucket Pequot"},{"code":"1457-1","display":"Gila River Pima-Maricopa","definition":"Gila River Pima-Maricopa"},{"code":"1458-9","display":"Salt River Pima-Maricopa","definition":"Salt River Pima-Maricopa"},{"code":"1465-4","display":"Central Pomo","definition":"Central Pomo"},{"code":"1466-2","display":"Dry Creek","definition":"Dry Creek"},{"code":"1467-0","display":"Eastern Pomo","definition":"Eastern Pomo"},{"code":"1468-8","display":"Kashia","definition":"Kashia"},{"code":"1469-6","display":"Northern Pomo","definition":"Northern Pomo"},{"code":"1470-4","display":"Scotts Valley","definition":"Scotts Valley"},{"code":"1471-2","display":"Stonyford","definition":"Stonyford"},{"code":"1472-0","display":"Sulphur Bank","definition":"Sulphur Bank"},{"code":"1475-3","display":"Nebraska Ponca","definition":"Nebraska Ponca"},{"code":"1476-1","display":"Oklahoma Ponca","definition":"Oklahoma Ponca"},{"code":"1479-5","display":"Citizen Band Potawatomi","definition":"Citizen Band Potawatomi"},{"code":"1480-3","display":"Forest County","definition":"Forest County"},{"code":"1481-1","display":"Hannahville","definition":"Hannahville"},{"code":"1482-9","display":"Huron Potawatomi","definition":"Huron Potawatomi"},{"code":"1483-7","display":"Pokagon Potawatomi","definition":"Pokagon Potawatomi"},{"code":"1484-5","display":"Prairie Band","definition":"Prairie Band"},{"code":"1485-2","display":"Wisconsin Potawatomi","definition":"Wisconsin Potawatomi"},{"code":"1490-2","display":"Acoma","definition":"Acoma"},{"code":"1491-0","display":"Arizona Tewa","definition":"Arizona Tewa"},{"code":"1492-8","display":"Cochiti","definition":"Cochiti"},{"code":"1493-6","display":"Hopi","definition":"Hopi"},{"code":"1494-4","display":"Isleta","definition":"Isleta"},{"code":"1495-1","display":"Jemez","definition":"Jemez"},{"code":"1496-9","display":"Keres","definition":"Keres"},{"code":"1497-7","display":"Laguna","definition":"Laguna"},{"code":"1498-5","display":"Nambe","definition":"Nambe"},{"code":"1499-3","display":"Picuris","definition":"Picuris"},{"code":"1500-8","display":"Piro","definition":"Piro"},{"code":"1501-6","display":"Pojoaque","definition":"Pojoaque"},{"code":"1502-4","display":"San Felipe","definition":"San Felipe"},{"code":"1503-2","display":"San Ildefonso","definition":"San Ildefonso"},{"code":"1504-0","display":"San Juan Pueblo","definition":"San Juan Pueblo"},{"code":"1505-7","display":"San Juan De","definition":"San Juan De"},{"code":"1506-5","display":"San Juan","definition":"San Juan"},{"code":"1507-3","display":"Sandia","definition":"Sandia"},{"code":"1508-1","display":"Santa Ana","definition":"Santa Ana"},{"code":"1509-9","display":"Santa Clara","definition":"Santa Clara"},{"code":"1510-7","display":"Santo Domingo","definition":"Santo Domingo"},{"code":"1511-5","display":"Taos","definition":"Taos"},{"code":"1512-3","display":"Tesuque","definition":"Tesuque"},{"code":"1513-1","display":"Tewa","definition":"Tewa"},{"code":"1514-9","display":"Tigua","definition":"Tigua"},{"code":"1515-6","display":"Zia","definition":"Zia"},{"code":"1516-4","display":"Zuni","definition":"Zuni"},{"code":"1519-8","display":"Duwamish","definition":"Duwamish"},{"code":"1520-6","display":"Kikiallus","definition":"Kikiallus"},{"code":"1521-4","display":"Lower Skagit","definition":"Lower Skagit"},{"code":"1522-2","display":"Muckleshoot","definition":"Muckleshoot"},{"code":"1523-0","display":"Nisqually","definition":"Nisqually"},{"code":"1524-8","display":"Nooksack","definition":"Nooksack"},{"code":"1525-5","display":"Port Madison","definition":"Port Madison"},{"code":"1526-3","display":"Puyallup","definition":"Puyallup"},{"code":"1527-1","display":"Samish","definition":"Samish"},{"code":"1528-9","display":"Sauk-Suiattle","definition":"Sauk-Suiattle"},{"code":"1529-7","display":"Skokomish","definition":"Skokomish"},{"code":"1530-5","display":"Skykomish","definition":"Skykomish"},{"code":"1531-3","display":"Snohomish","definition":"Snohomish"},{"code":"1532-1","display":"Snoqualmie","definition":"Snoqualmie"},{"code":"1533-9","display":"Squaxin Island","definition":"Squaxin Island"},{"code":"1534-7","display":"Steilacoom","definition":"Steilacoom"},{"code":"1535-4","display":"Stillaguamish","definition":"Stillaguamish"},{"code":"1536-2","display":"Suquamish","definition":"Suquamish"},{"code":"1537-0","display":"Swinomish","definition":"Swinomish"},{"code":"1538-8","display":"Tulalip","definition":"Tulalip"},{"code":"1539-6","display":"Upper Skagit","definition":"Upper Skagit"},{"code":"1552-9","display":"Iowa Sac and Fox","definition":"Iowa Sac and Fox"},{"code":"1553-7","display":"Missouri Sac and Fox","definition":"Missouri Sac and Fox"},{"code":"1554-5","display":"Oklahoma Sac and Fox","definition":"Oklahoma Sac and Fox"},{"code":"1567-7","display":"Big Cypress","definition":"Big Cypress"},{"code":"1568-5","display":"Brighton","definition":"Brighton"},{"code":"1569-3","display":"Florida Seminole","definition":"Florida Seminole"},{"code":"1570-1","display":"Hollywood Seminole","definition":"Hollywood Seminole"},{"code":"1571-9","display":"Oklahoma Seminole","definition":"Oklahoma Seminole"},{"code":"1574-3","display":"San Manual","definition":"San Manual"},{"code":"1579-2","display":"Absentee Shawnee","definition":"Absentee Shawnee"},{"code":"1580-0","display":"Eastern Shawnee","definition":"Eastern Shawnee"},{"code":"1587-5","display":"Battle Mountain","definition":"Battle Mountain"},{"code":"1588-3","display":"Duckwater","definition":"Duckwater"},{"code":"1589-1","display":"Elko","definition":"Elko"},{"code":"1590-9","display":"Ely","definition":"Ely"},{"code":"1591-7","display":"Goshute","definition":"Goshute"},{"code":"1592-5","display":"Panamint","definition":"Panamint"},{"code":"1593-3","display":"Ruby Valley","definition":"Ruby Valley"},{"code":"1594-1","display":"Skull Valley","definition":"Skull Valley"},{"code":"1595-8","display":"South Fork Shoshone","definition":"South Fork Shoshone"},{"code":"1596-6","display":"Te-Moak Western Shoshone","definition":"Te-Moak Western Shoshone"},{"code":"1597-4","display":"Timbi-Sha Shoshone","definition":"Timbi-Sha Shoshone"},{"code":"1598-2","display":"Washakie","definition":"Washakie"},{"code":"1599-0","display":"Wind River Shoshone","definition":"Wind River Shoshone"},{"code":"1600-6","display":"Yomba","definition":"Yomba"},{"code":"1603-0","display":"Duck Valley","definition":"Duck Valley"},{"code":"1604-8","display":"Fallon","definition":"Fallon"},{"code":"1605-5","display":"Fort McDermitt","definition":"Fort McDermitt"},{"code":"1610-5","display":"Blackfoot Sioux","definition":"Blackfoot Sioux"},{"code":"1611-3","display":"Brule Sioux","definition":"Brule Sioux"},{"code":"1612-1","display":"Cheyenne River Sioux","definition":"Cheyenne River Sioux"},{"code":"1613-9","display":"Crow Creek Sioux","definition":"Crow Creek Sioux"},{"code":"1614-7","display":"Dakota Sioux","definition":"Dakota Sioux"},{"code":"1615-4","display":"Flandreau Santee","definition":"Flandreau Santee"},{"code":"1616-2","display":"Fort Peck","definition":"Fort Peck"},{"code":"1617-0","display":"Lake Traverse Sioux","definition":"Lake Traverse Sioux"},{"code":"1618-8","display":"Lower Brule Sioux","definition":"Lower Brule Sioux"},{"code":"1619-6","display":"Lower Sioux","definition":"Lower Sioux"},{"code":"1620-4","display":"Mdewakanton Sioux","definition":"Mdewakanton Sioux"},{"code":"1621-2","display":"Miniconjou","definition":"Miniconjou"},{"code":"1622-0","display":"Oglala Sioux","definition":"Oglala Sioux"},{"code":"1623-8","display":"Pine Ridge Sioux","definition":"Pine Ridge Sioux"},{"code":"1624-6","display":"Pipestone Sioux","definition":"Pipestone Sioux"},{"code":"1625-3","display":"Prairie Island Sioux","definition":"Prairie Island Sioux"},{"code":"1626-1","display":"Prior Lake Sioux","definition":"Prior Lake Sioux"},{"code":"1627-9","display":"Rosebud Sioux","definition":"Rosebud Sioux"},{"code":"1628-7","display":"Sans Arc Sioux","definition":"Sans Arc Sioux"},{"code":"1629-5","display":"Santee Sioux","definition":"Santee Sioux"},{"code":"1630-3","display":"Sisseton-Wahpeton","definition":"Sisseton-Wahpeton"},{"code":"1631-1","display":"Sisseton Sioux","definition":"Sisseton Sioux"},{"code":"1632-9","display":"Spirit Lake Sioux","definition":"Spirit Lake Sioux"},{"code":"1633-7","display":"Standing Rock Sioux","definition":"Standing Rock Sioux"},{"code":"1634-5","display":"Teton Sioux","definition":"Teton Sioux"},{"code":"1635-2","display":"Two Kettle Sioux","definition":"Two Kettle Sioux"},{"code":"1636-0","display":"Upper Sioux","definition":"Upper Sioux"},{"code":"1637-8","display":"Wahpekute Sioux","definition":"Wahpekute Sioux"},{"code":"1638-6","display":"Wahpeton Sioux","definition":"Wahpeton Sioux"},{"code":"1639-4","display":"Wazhaza Sioux","definition":"Wazhaza Sioux"},{"code":"1640-2","display":"Yankton Sioux","definition":"Yankton Sioux"},{"code":"1641-0","display":"Yanktonai Sioux","definition":"Yanktonai Sioux"},{"code":"1654-3","display":"Ak-Chin","definition":"Ak-Chin"},{"code":"1655-0","display":"Gila Bend","definition":"Gila Bend"},{"code":"1656-8","display":"San Xavier","definition":"San Xavier"},{"code":"1657-6","display":"Sells","definition":"Sells"},{"code":"1668-3","display":"Cow Creek Umpqua","definition":"Cow Creek Umpqua"},{"code":"1671-7","display":"Allen Canyon","definition":"Allen Canyon"},{"code":"1672-5","display":"Uintah Ute","definition":"Uintah Ute"},{"code":"1673-3","display":"Ute Mountain Ute","definition":"Ute Mountain Ute"},{"code":"1680-8","display":"Gay Head Wampanoag","definition":"Gay Head Wampanoag"},{"code":"1681-6","display":"Mashpee Wampanoag","definition":"Mashpee Wampanoag"},{"code":"1688-1","display":"Alpine","definition":"Alpine"},{"code":"1689-9","display":"Carson","definition":"Carson"},{"code":"1690-7","display":"Dresslerville","definition":"Dresslerville"},{"code":"1697-2","display":"Ho-chunk","definition":"Ho-chunk"},{"code":"1698-0","display":"Nebraska Winnebago","definition":"Nebraska Winnebago"},{"code":"1705-3","display":"Table Bluff","definition":"Table Bluff"},{"code":"1712-9","display":"Barrio Libre","definition":"Barrio Libre"},{"code":"1713-7","display":"Pascua Yaqui","definition":"Pascua Yaqui"},{"code":"1718-6","display":"Chukchansi","definition":"Chukchansi"},{"code":"1719-4","display":"Tachi","definition":"Tachi"},{"code":"1720-2","display":"Tule River","definition":"Tule River"},{"code":"1725-1","display":"Cocopah","definition":"Cocopah"},{"code":"1726-9","display":"Havasupai","definition":"Havasupai"},{"code":"1727-7","display":"Hualapai","definition":"Hualapai"},{"code":"1728-5","display":"Maricopa","definition":"Maricopa"},{"code":"1729-3","display":"Mohave","definition":"Mohave"},{"code":"1730-1","display":"Quechan","definition":"Quechan"},{"code":"1731-9","display":"Yavapai","definition":"Yavapai"},{"code":"1733-5","display":"Coast Yurok","definition":"Coast Yurok"},{"code":"1737-6","display":"Alaska Indian","definition":"Alaska Indian"},{"code":"1840-8","display":"Eskimo","definition":"Eskimo"},{"code":"1966-1","display":"Aleut","definition":"Aleut"},{"code":"1739-2","display":"Alaskan Athabascan","definition":"Alaskan Athabascan"},{"code":"1811-9","display":"Southeast Alaska","definition":"Southeast Alaska"},{"code":"1740-0","display":"Ahtna","definition":"Ahtna"},{"code":"1741-8","display":"Alatna","definition":"Alatna"},{"code":"1742-6","display":"Alexander","definition":"Alexander"},{"code":"1743-4","display":"Allakaket","definition":"Allakaket"},{"code":"1744-2","display":"Alanvik","definition":"Alanvik"},{"code":"1745-9","display":"Anvik","definition":"Anvik"},{"code":"1746-7","display":"Arctic","definition":"Arctic"},{"code":"1747-5","display":"Beaver","definition":"Beaver"},{"code":"1748-3","display":"Birch Creek","definition":"Birch Creek"},{"code":"1749-1","display":"Cantwell","definition":"Cantwell"},{"code":"1750-9","display":"Chalkyitsik","definition":"Chalkyitsik"},{"code":"1751-7","display":"Chickaloon","definition":"Chickaloon"},{"code":"1752-5","display":"Chistochina","definition":"Chistochina"},{"code":"1753-3","display":"Chitina","definition":"Chitina"},{"code":"1754-1","display":"Circle","definition":"Circle"},{"code":"1755-8","display":"Cook Inlet","definition":"Cook Inlet"},{"code":"1756-6","display":"Copper Center","definition":"Copper Center"},{"code":"1757-4","display":"Copper River","definition":"Copper River"},{"code":"1758-2","display":"Dot Lake","definition":"Dot Lake"},{"code":"1759-0","display":"Doyon","definition":"Doyon"},{"code":"1760-8","display":"Eagle","definition":"Eagle"},{"code":"1761-6","display":"Eklutna","definition":"Eklutna"},{"code":"1762-4","display":"Evansville","definition":"Evansville"},{"code":"1763-2","display":"Fort Yukon","definition":"Fort Yukon"},{"code":"1764-0","display":"Gakona","definition":"Gakona"},{"code":"1765-7","display":"Galena","definition":"Galena"},{"code":"1766-5","display":"Grayling","definition":"Grayling"},{"code":"1767-3","display":"Gulkana","definition":"Gulkana"},{"code":"1768-1","display":"Healy Lake","definition":"Healy Lake"},{"code":"1769-9","display":"Holy Cross","definition":"Holy Cross"},{"code":"1770-7","display":"Hughes","definition":"Hughes"},{"code":"1771-5","display":"Huslia","definition":"Huslia"},{"code":"1772-3","display":"Iliamna","definition":"Iliamna"},{"code":"1773-1","display":"Kaltag","definition":"Kaltag"},{"code":"1774-9","display":"Kluti Kaah","definition":"Kluti Kaah"},{"code":"1775-6","display":"Knik","definition":"Knik"},{"code":"1776-4","display":"Koyukuk","definition":"Koyukuk"},{"code":"1777-2","display":"Lake Minchumina","definition":"Lake Minchumina"},{"code":"1778-0","display":"Lime","definition":"Lime"},{"code":"1779-8","display":"Mcgrath","definition":"Mcgrath"},{"code":"1780-6","display":"Manley Hot Springs","definition":"Manley Hot Springs"},{"code":"1781-4","display":"Mentasta Lake","definition":"Mentasta Lake"},{"code":"1782-2","display":"Minto","definition":"Minto"},{"code":"1783-0","display":"Nenana","definition":"Nenana"},{"code":"1784-8","display":"Nikolai","definition":"Nikolai"},{"code":"1785-5","display":"Ninilchik","definition":"Ninilchik"},{"code":"1786-3","display":"Nondalton","definition":"Nondalton"},{"code":"1787-1","display":"Northway","definition":"Northway"},{"code":"1788-9","display":"Nulato","definition":"Nulato"},{"code":"1789-7","display":"Pedro Bay","definition":"Pedro Bay"},{"code":"1790-5","display":"Rampart","definition":"Rampart"},{"code":"1791-3","display":"Ruby","definition":"Ruby"},{"code":"1792-1","display":"Salamatof","definition":"Salamatof"},{"code":"1793-9","display":"Seldovia","definition":"Seldovia"},{"code":"1794-7","display":"Slana","definition":"Slana"},{"code":"1795-4","display":"Shageluk","definition":"Shageluk"},{"code":"1796-2","display":"Stevens","definition":"Stevens"},{"code":"1797-0","display":"Stony River","definition":"Stony River"},{"code":"1798-8","display":"Takotna","definition":"Takotna"},{"code":"1799-6","display":"Tanacross","definition":"Tanacross"},{"code":"1800-2","display":"Tanaina","definition":"Tanaina"},{"code":"1801-0","display":"Tanana","definition":"Tanana"},{"code":"1802-8","display":"Tanana Chiefs","definition":"Tanana Chiefs"},{"code":"1803-6","display":"Tazlina","definition":"Tazlina"},{"code":"1804-4","display":"Telida","definition":"Telida"},{"code":"1805-1","display":"Tetlin","definition":"Tetlin"},{"code":"1806-9","display":"Tok","definition":"Tok"},{"code":"1807-7","display":"Tyonek","definition":"Tyonek"},{"code":"1808-5","display":"Venetie","definition":"Venetie"},{"code":"1809-3","display":"Wiseman","definition":"Wiseman"},{"code":"1813-5","display":"Tlingit-Haida","definition":"Tlingit-Haida"},{"code":"1837-4","display":"Tsimshian","definition":"Tsimshian"},{"code":"1814-3","display":"Angoon","definition":"Angoon"},{"code":"1815-0","display":"Central Council of Tlingit and Haida Tribes","definition":"Central Council of Tlingit and Haida Tribes"},{"code":"1816-8","display":"Chilkat","definition":"Chilkat"},{"code":"1817-6","display":"Chilkoot","definition":"Chilkoot"},{"code":"1818-4","display":"Craig","definition":"Craig"},{"code":"1819-2","display":"Douglas","definition":"Douglas"},{"code":"1820-0","display":"Haida","definition":"Haida"},{"code":"1821-8","display":"Hoonah","definition":"Hoonah"},{"code":"1822-6","display":"Hydaburg","definition":"Hydaburg"},{"code":"1823-4","display":"Kake","definition":"Kake"},{"code":"1824-2","display":"Kasaan","definition":"Kasaan"},{"code":"1825-9","display":"Kenaitze","definition":"Kenaitze"},{"code":"1826-7","display":"Ketchikan","definition":"Ketchikan"},{"code":"1827-5","display":"Klawock","definition":"Klawock"},{"code":"1828-3","display":"Pelican","definition":"Pelican"},{"code":"1829-1","display":"Petersburg","definition":"Petersburg"},{"code":"1830-9","display":"Saxman","definition":"Saxman"},{"code":"1831-7","display":"Sitka","definition":"Sitka"},{"code":"1832-5","display":"Tenakee Springs","definition":"Tenakee Springs"},{"code":"1833-3","display":"Tlingit","definition":"Tlingit"},{"code":"1834-1","display":"Wrangell","definition":"Wrangell"},{"code":"1835-8","display":"Yakutat","definition":"Yakutat"},{"code":"1838-2","display":"Metlakatla","definition":"Metlakatla"},{"code":"1842-4","display":"Greenland Eskimo","definition":"Greenland Eskimo"},{"code":"1844-0","display":"Inupiat Eskimo","definition":"Inupiat Eskimo"},{"code":"1891-1","display":"Siberian Eskimo","definition":"Siberian Eskimo"},{"code":"1896-0","display":"Yupik Eskimo","definition":"Yupik Eskimo"},{"code":"1845-7","display":"Ambler","definition":"Ambler"},{"code":"1846-5","display":"Anaktuvuk","definition":"Anaktuvuk"},{"code":"1847-3","display":"Anaktuvuk Pass","definition":"Anaktuvuk Pass"},{"code":"1848-1","display":"Arctic Slope Inupiat","definition":"Arctic Slope Inupiat"},{"code":"1849-9","display":"Arctic Slope Corporation","definition":"Arctic Slope Corporation"},{"code":"1850-7","display":"Atqasuk","definition":"Atqasuk"},{"code":"1851-5","display":"Barrow","definition":"Barrow"},{"code":"1852-3","display":"Bering Straits Inupiat","definition":"Bering Straits Inupiat"},{"code":"1853-1","display":"Brevig Mission","definition":"Brevig Mission"},{"code":"1854-9","display":"Buckland","definition":"Buckland"},{"code":"1855-6","display":"Chinik","definition":"Chinik"},{"code":"1856-4","display":"Council","definition":"Council"},{"code":"1857-2","display":"Deering","definition":"Deering"},{"code":"1858-0","display":"Elim","definition":"Elim"},{"code":"1859-8","display":"Golovin","definition":"Golovin"},{"code":"1860-6","display":"Inalik Diomede","definition":"Inalik Diomede"},{"code":"1861-4","display":"Inupiaq","definition":"Inupiaq"},{"code":"1862-2","display":"Kaktovik","definition":"Kaktovik"},{"code":"1863-0","display":"Kawerak","definition":"Kawerak"},{"code":"1864-8","display":"Kiana","definition":"Kiana"},{"code":"1865-5","display":"Kivalina","definition":"Kivalina"},{"code":"1866-3","display":"Kobuk","definition":"Kobuk"},{"code":"1867-1","display":"Kotzebue","definition":"Kotzebue"},{"code":"1868-9","display":"Koyuk","definition":"Koyuk"},{"code":"1869-7","display":"Kwiguk","definition":"Kwiguk"},{"code":"1870-5","display":"Mauneluk Inupiat","definition":"Mauneluk Inupiat"},{"code":"1871-3","display":"Nana Inupiat","definition":"Nana Inupiat"},{"code":"1872-1","display":"Noatak","definition":"Noatak"},{"code":"1873-9","display":"Nome","definition":"Nome"},{"code":"1874-7","display":"Noorvik","definition":"Noorvik"},{"code":"1875-4","display":"Nuiqsut","definition":"Nuiqsut"},{"code":"1876-2","display":"Point Hope","definition":"Point Hope"},{"code":"1877-0","display":"Point Lay","definition":"Point Lay"},{"code":"1878-8","display":"Selawik","definition":"Selawik"},{"code":"1879-6","display":"Shaktoolik","definition":"Shaktoolik"},{"code":"1880-4","display":"Shishmaref","definition":"Shishmaref"},{"code":"1881-2","display":"Shungnak","definition":"Shungnak"},{"code":"1882-0","display":"Solomon","definition":"Solomon"},{"code":"1883-8","display":"Teller","definition":"Teller"},{"code":"1884-6","display":"Unalakleet","definition":"Unalakleet"},{"code":"1885-3","display":"Wainwright","definition":"Wainwright"},{"code":"1886-1","display":"Wales","definition":"Wales"},{"code":"1887-9","display":"White Mountain","definition":"White Mountain"},{"code":"1888-7","display":"White Mountain Inupiat","definition":"White Mountain Inupiat"},{"code":"1889-5","display":"Mary's Igloo","definition":"Mary's Igloo"},{"code":"1892-9","display":"Gambell","definition":"Gambell"},{"code":"1893-7","display":"Savoonga","definition":"Savoonga"},{"code":"1894-5","display":"Siberian Yupik","definition":"Siberian Yupik"},{"code":"1897-8","display":"Akiachak","definition":"Akiachak"},{"code":"1898-6","display":"Akiak","definition":"Akiak"},{"code":"1899-4","display":"Alakanuk","definition":"Alakanuk"},{"code":"1900-0","display":"Aleknagik","definition":"Aleknagik"},{"code":"1901-8","display":"Andreafsky","definition":"Andreafsky"},{"code":"1902-6","display":"Aniak","definition":"Aniak"},{"code":"1903-4","display":"Atmautluak","definition":"Atmautluak"},{"code":"1904-2","display":"Bethel","definition":"Bethel"},{"code":"1905-9","display":"Bill Moore's Slough","definition":"Bill Moore's Slough"},{"code":"1906-7","display":"Bristol Bay Yupik","definition":"Bristol Bay Yupik"},{"code":"1907-5","display":"Calista Yupik","definition":"Calista Yupik"},{"code":"1908-3","display":"Chefornak","definition":"Chefornak"},{"code":"1909-1","display":"Chevak","definition":"Chevak"},{"code":"1910-9","display":"Chuathbaluk","definition":"Chuathbaluk"},{"code":"1911-7","display":"Clark's Point","definition":"Clark's Point"},{"code":"1912-5","display":"Crooked Creek","definition":"Crooked Creek"},{"code":"1913-3","display":"Dillingham","definition":"Dillingham"},{"code":"1914-1","display":"Eek","definition":"Eek"},{"code":"1915-8","display":"Ekuk","definition":"Ekuk"},{"code":"1916-6","display":"Ekwok","definition":"Ekwok"},{"code":"1917-4","display":"Emmonak","definition":"Emmonak"},{"code":"1918-2","display":"Goodnews Bay","definition":"Goodnews Bay"},{"code":"1919-0","display":"Hooper Bay","definition":"Hooper Bay"},{"code":"1920-8","display":"Iqurmuit (Russian Mission)","definition":"Iqurmuit (Russian Mission)"},{"code":"1921-6","display":"Kalskag","definition":"Kalskag"},{"code":"1922-4","display":"Kasigluk","definition":"Kasigluk"},{"code":"1923-2","display":"Kipnuk","definition":"Kipnuk"},{"code":"1924-0","display":"Koliganek","definition":"Koliganek"},{"code":"1925-7","display":"Kongiganak","definition":"Kongiganak"},{"code":"1926-5","display":"Kotlik","definition":"Kotlik"},{"code":"1927-3","display":"Kwethluk","definition":"Kwethluk"},{"code":"1928-1","display":"Kwigillingok","definition":"Kwigillingok"},{"code":"1929-9","display":"Levelock","definition":"Levelock"},{"code":"1930-7","display":"Lower Kalskag","definition":"Lower Kalskag"},{"code":"1931-5","display":"Manokotak","definition":"Manokotak"},{"code":"1932-3","display":"Marshall","definition":"Marshall"},{"code":"1933-1","display":"Mekoryuk","definition":"Mekoryuk"},{"code":"1934-9","display":"Mountain Village","definition":"Mountain Village"},{"code":"1935-6","display":"Naknek","definition":"Naknek"},{"code":"1936-4","display":"Napaumute","definition":"Napaumute"},{"code":"1937-2","display":"Napakiak","definition":"Napakiak"},{"code":"1938-0","display":"Napaskiak","definition":"Napaskiak"},{"code":"1939-8","display":"Newhalen","definition":"Newhalen"},{"code":"1940-6","display":"New Stuyahok","definition":"New Stuyahok"},{"code":"1941-4","display":"Newtok","definition":"Newtok"},{"code":"1942-2","display":"Nightmute","definition":"Nightmute"},{"code":"1943-0","display":"Nunapitchukv","definition":"Nunapitchukv"},{"code":"1944-8","display":"Oscarville","definition":"Oscarville"},{"code":"1945-5","display":"Pilot Station","definition":"Pilot Station"},{"code":"1946-3","display":"Pitkas Point","definition":"Pitkas Point"},{"code":"1947-1","display":"Platinum","definition":"Platinum"},{"code":"1948-9","display":"Portage Creek","definition":"Portage Creek"},{"code":"1949-7","display":"Quinhagak","definition":"Quinhagak"},{"code":"1950-5","display":"Red Devil","definition":"Red Devil"},{"code":"1951-3","display":"St. Michael","definition":"St. Michael"},{"code":"1952-1","display":"Scammon Bay","definition":"Scammon Bay"},{"code":"1953-9","display":"Sheldon's Point","definition":"Sheldon's Point"},{"code":"1954-7","display":"Sleetmute","definition":"Sleetmute"},{"code":"1955-4","display":"Stebbins","definition":"Stebbins"},{"code":"1956-2","display":"Togiak","definition":"Togiak"},{"code":"1957-0","display":"Toksook","definition":"Toksook"},{"code":"1958-8","display":"Tulukskak","definition":"Tulukskak"},{"code":"1959-6","display":"Tuntutuliak","definition":"Tuntutuliak"},{"code":"1960-4","display":"Tununak","definition":"Tununak"},{"code":"1961-2","display":"Twin Hills","definition":"Twin Hills"},{"code":"1962-0","display":"Georgetown (Yupik-Eskimo)","definition":"Georgetown (Yupik-Eskimo)"},{"code":"1963-8","display":"St. Mary's","definition":"St. Mary's"},{"code":"1964-6","display":"Umkumiate","definition":"Umkumiate"},{"code":"1968-7","display":"Alutiiq Aleut","definition":"Alutiiq Aleut"},{"code":"1972-9","display":"Bristol Bay Aleut","definition":"Bristol Bay Aleut"},{"code":"1984-4","display":"Chugach Aleut","definition":"Chugach Aleut"},{"code":"1990-1","display":"Eyak","definition":"Eyak"},{"code":"1992-7","display":"Koniag Aleut","definition":"Koniag Aleut"},{"code":"2002-4","display":"Sugpiaq","definition":"Sugpiaq"},{"code":"2004-0","display":"Suqpigaq","definition":"Suqpigaq"},{"code":"2006-5","display":"Unangan Aleut","definition":"Unangan Aleut"},{"code":"1969-5","display":"Tatitlek","definition":"Tatitlek"},{"code":"1970-3","display":"Ugashik","definition":"Ugashik"},{"code":"1973-7","display":"Chignik","definition":"Chignik"},{"code":"1974-5","display":"Chignik Lake","definition":"Chignik Lake"},{"code":"1975-2","display":"Egegik","definition":"Egegik"},{"code":"1976-0","display":"Igiugig","definition":"Igiugig"},{"code":"1977-8","display":"Ivanof Bay","definition":"Ivanof Bay"},{"code":"1978-6","display":"King Salmon","definition":"King Salmon"},{"code":"1979-4","display":"Kokhanok","definition":"Kokhanok"},{"code":"1980-2","display":"Perryville","definition":"Perryville"},{"code":"1981-0","display":"Pilot Point","definition":"Pilot Point"},{"code":"1982-8","display":"Port Heiden","definition":"Port Heiden"},{"code":"1985-1","display":"Chenega","definition":"Chenega"},{"code":"1986-9","display":"Chugach Corporation","definition":"Chugach Corporation"},{"code":"1987-7","display":"English Bay","definition":"English Bay"},{"code":"1988-5","display":"Port Graham","definition":"Port Graham"},{"code":"1993-5","display":"Akhiok","definition":"Akhiok"},{"code":"1994-3","display":"Agdaagux","definition":"Agdaagux"},{"code":"1995-0","display":"Karluk","definition":"Karluk"},{"code":"1996-8","display":"Kodiak","definition":"Kodiak"},{"code":"1997-6","display":"Larsen Bay","definition":"Larsen Bay"},{"code":"1998-4","display":"Old Harbor","definition":"Old Harbor"},{"code":"1999-2","display":"Ouzinkie","definition":"Ouzinkie"},{"code":"2000-8","display":"Port Lions","definition":"Port Lions"},{"code":"2007-3","display":"Akutan","definition":"Akutan"},{"code":"2008-1","display":"Aleut Corporation","definition":"Aleut Corporation"},{"code":"2009-9","display":"Aleutian","definition":"Aleutian"},{"code":"2010-7","display":"Aleutian Islander","definition":"Aleutian Islander"},{"code":"2011-5","display":"Atka","definition":"Atka"},{"code":"2012-3","display":"Belkofski","definition":"Belkofski"},{"code":"2013-1","display":"Chignik Lagoon","definition":"Chignik Lagoon"},{"code":"2014-9","display":"King Cove","definition":"King Cove"},{"code":"2015-6","display":"False Pass","definition":"False Pass"},{"code":"2016-4","display":"Nelson Lagoon","definition":"Nelson Lagoon"},{"code":"2017-2","display":"Nikolski","definition":"Nikolski"},{"code":"2018-0","display":"Pauloff Harbor","definition":"Pauloff Harbor"},{"code":"2019-8","display":"Qagan Toyagungin","definition":"Qagan Toyagungin"},{"code":"2020-6","display":"Qawalangin","definition":"Qawalangin"},{"code":"2021-4","display":"St. George","definition":"St. George"},{"code":"2022-2","display":"St. Paul","definition":"St. Paul"},{"code":"2023-0","display":"Sand Point","definition":"Sand Point"},{"code":"2024-8","display":"South Naknek","definition":"South Naknek"},{"code":"2025-5","display":"Unalaska","definition":"Unalaska"},{"code":"2026-3","display":"Unga","definition":"Unga"}]},{"code":"2028-9","display":"Asian","definition":"Asian","concept":[{"code":"2029-7","display":"Asian Indian","definition":"Asian Indian"},{"code":"2030-5","display":"Bangladeshi","definition":"Bangladeshi"},{"code":"2031-3","display":"Bhutanese","definition":"Bhutanese"},{"code":"2032-1","display":"Burmese","definition":"Burmese"},{"code":"2033-9","display":"Cambodian","definition":"Cambodian"},{"code":"2034-7","display":"Chinese","definition":"Chinese"},{"code":"2035-4","display":"Taiwanese","definition":"Taiwanese"},{"code":"2036-2","display":"Filipino","definition":"Filipino"},{"code":"2037-0","display":"Hmong","definition":"Hmong"},{"code":"2038-8","display":"Indonesian","definition":"Indonesian"},{"code":"2039-6","display":"Japanese","definition":"Japanese"},{"code":"2040-4","display":"Korean","definition":"Korean"},{"code":"2041-2","display":"Laotian","definition":"Laotian"},{"code":"2042-0","display":"Malaysian","definition":"Malaysian"},{"code":"2043-8","display":"Okinawan","definition":"Okinawan"},{"code":"2044-6","display":"Pakistani","definition":"Pakistani"},{"code":"2045-3","display":"Sri Lankan","definition":"Sri Lankan"},{"code":"2046-1","display":"Thai","definition":"Thai"},{"code":"2047-9","display":"Vietnamese","definition":"Vietnamese"},{"code":"2048-7","display":"Iwo Jiman","definition":"Iwo Jiman"},{"code":"2049-5","display":"Maldivian","definition":"Maldivian"},{"code":"2050-3","display":"Nepalese","definition":"Nepalese"},{"code":"2051-1","display":"Singaporean","definition":"Singaporean"},{"code":"2052-9","display":"Madagascar","definition":"Madagascar"}]},{"code":"2054-5","display":"Black or African American","definition":"Black or African American","concept":[{"code":"2056-0","display":"Black","definition":"Black"},{"code":"2058-6","display":"African American","definition":"African American"},{"code":"2060-2","display":"African","definition":"African"},{"code":"2067-7","display":"Bahamian","definition":"Bahamian"},{"code":"2068-5","display":"Barbadian","definition":"Barbadian"},{"code":"2069-3","display":"Dominican","definition":"Dominican"},{"code":"2070-1","display":"Dominica Islander","definition":"Dominica Islander"},{"code":"2071-9","display":"Haitian","definition":"Haitian"},{"code":"2072-7","display":"Jamaican","definition":"Jamaican"},{"code":"2073-5","display":"Tobagoan","definition":"Tobagoan"},{"code":"2074-3","display":"Trinidadian","definition":"Trinidadian"},{"code":"2075-0","display":"West Indian","definition":"West Indian"},{"code":"2061-0","display":"Botswanan","definition":"Botswanan"},{"code":"2062-8","display":"Ethiopian","definition":"Ethiopian"},{"code":"2063-6","display":"Liberian","definition":"Liberian"},{"code":"2064-4","display":"Namibian","definition":"Namibian"},{"code":"2065-1","display":"Nigerian","definition":"Nigerian"},{"code":"2066-9","display":"Zairean","definition":"Zairean"}]},{"code":"2076-8","display":"Native Hawaiian or Other Pacific Islander","definition":"Native Hawaiian or Other Pacific Islander","concept":[{"code":"2078-4","display":"Polynesian","definition":"Polynesian"},{"code":"2085-9","display":"Micronesian","definition":"Micronesian"},{"code":"2100-6","display":"Melanesian","definition":"Melanesian"},{"code":"2500-7","display":"Other Pacific Islander","definition":"Other Pacific Islander"},{"code":"2079-2","display":"Native Hawaiian","definition":"Native Hawaiian"},{"code":"2080-0","display":"Samoan","definition":"Samoan"},{"code":"2081-8","display":"Tahitian","definition":"Tahitian"},{"code":"2082-6","display":"Tongan","definition":"Tongan"},{"code":"2083-4","display":"Tokelauan","definition":"Tokelauan"},{"code":"2086-7","display":"Guamanian or Chamorro","definition":"Guamanian or Chamorro"},{"code":"2087-5","display":"Guamanian","definition":"Guamanian"},{"code":"2088-3","display":"Chamorro","definition":"Chamorro"},{"code":"2089-1","display":"Mariana Islander","definition":"Mariana Islander"},{"code":"2090-9","display":"Marshallese","definition":"Marshallese"},{"code":"2091-7","display":"Palauan","definition":"Palauan"},{"code":"2092-5","display":"Carolinian","definition":"Carolinian"},{"code":"2093-3","display":"Kosraean","definition":"Kosraean"},{"code":"2094-1","display":"Pohnpeian","definition":"Pohnpeian"},{"code":"2095-8","display":"Saipanese","definition":"Saipanese"},{"code":"2096-6","display":"Kiribati","definition":"Kiribati"},{"code":"2097-4","display":"Chuukese","definition":"Chuukese"},{"code":"2098-2","display":"Yapese","definition":"Yapese"},{"code":"2101-4","display":"Fijian","definition":"Fijian"},{"code":"2102-2","display":"Papua New Guinean","definition":"Papua New Guinean"},{"code":"2103-0","display":"Solomon Islander","definition":"Solomon Islander"},{"code":"2104-8","display":"New Hebrides","definition":"New Hebrides"}]},{"code":"2106-3","display":"White","definition":"White","concept":[{"code":"2108-9","display":"European","definition":"European"},{"code":"2118-8","display":"Middle Eastern or North African","definition":"Middle Eastern or North African"},{"code":"2129-5","display":"Arab","definition":"Arab"},{"code":"2109-7","display":"Armenian","definition":"Armenian"},{"code":"2110-5","display":"English","definition":"English"},{"code":"2111-3","display":"French","definition":"French"},{"code":"2112-1","display":"German","definition":"German"},{"code":"2113-9","display":"Irish","definition":"Irish"},{"code":"2114-7","display":"Italian","definition":"Italian"},{"code":"2115-4","display":"Polish","definition":"Polish"},{"code":"2116-2","display":"Scottish","definition":"Scottish"},{"code":"2119-6","display":"Assyrian","definition":"Assyrian"},{"code":"2120-4","display":"Egyptian","definition":"Egyptian"},{"code":"2121-2","display":"Iranian","definition":"Iranian"},{"code":"2122-0","display":"Iraqi","definition":"Iraqi"},{"code":"2123-8","display":"Lebanese","definition":"Lebanese"},{"code":"2124-6","display":"Palestinian","definition":"Palestinian"},{"code":"2125-3","display":"Syrian","definition":"Syrian"},{"code":"2126-1","display":"Afghanistani","definition":"Afghanistani"},{"code":"2127-9","display":"Israeili","definition":"Israeili"}]},{"code":"2131-1","display":"Other Race","definition":"Note that this term remains in the table for completeness, even though within HL7, the notion of Other code is deprecated."}]},{"code":"2133-7","display":"Ethnicity","definition":"Ethnicity Note that this is an abstract 'grouping' concept and not for use as a real concept","property":[{"code":"abstract","valueBoolean":true}],"concept":[{"code":"2135-2","display":"Hispanic or Latino","definition":"Hispanic or Latino","concept":[{"code":"2137-8","display":"Spaniard","definition":"Spaniard"},{"code":"2148-5","display":"Mexican","definition":"Mexican"},{"code":"2155-0","display":"Central American","definition":"Central American"},{"code":"2165-9","display":"South American","definition":"South American"},{"code":"2178-2","display":"Latin American","definition":"Latin American"},{"code":"2180-8","display":"Puerto Rican","definition":"Puerto Rican"},{"code":"2182-4","display":"Cuban","definition":"Cuban"},{"code":"2184-0","display":"Dominican","definition":"Dominican"},{"code":"2138-6","display":"Andalusian","definition":"Andalusian"},{"code":"2139-4","display":"Asturian","definition":"Asturian"},{"code":"2140-2","display":"Castillian","definition":"Castillian"},{"code":"2141-0","display":"Catalonian","definition":"Catalonian"},{"code":"2142-8","display":"Belearic Islander","definition":"Belearic Islander"},{"code":"2143-6","display":"Gallego","definition":"Gallego"},{"code":"2144-4","display":"Valencian","definition":"Valencian"},{"code":"2145-1","display":"Canarian","definition":"Canarian"},{"code":"2146-9","display":"Spanish Basque","definition":"Spanish Basque"},{"code":"2149-3","display":"Mexican American","definition":"Mexican American"},{"code":"2150-1","display":"Mexicano","definition":"Mexicano"},{"code":"2151-9","display":"Chicano","definition":"Chicano"},{"code":"2152-7","display":"La Raza","definition":"La Raza"},{"code":"2153-5","display":"Mexican American Indian","definition":"Mexican American Indian"},{"code":"2156-8","display":"Costa Rican","definition":"Costa Rican"},{"code":"2157-6","display":"Guatemalan","definition":"Guatemalan"},{"code":"2158-4","display":"Honduran","definition":"Honduran"},{"code":"2159-2","display":"Nicaraguan","definition":"Nicaraguan"},{"code":"2160-0","display":"Panamanian","definition":"Panamanian"},{"code":"2161-8","display":"Salvadoran","definition":"Salvadoran"},{"code":"2162-6","display":"Central American Indian","definition":"Central American Indian"},{"code":"2163-4","display":"Canal Zone","definition":"Canal Zone"},{"code":"2166-7","display":"Argentinean","definition":"Argentinean"},{"code":"2167-5","display":"Bolivian","definition":"Bolivian"},{"code":"2168-3","display":"Chilean","definition":"Chilean"},{"code":"2169-1","display":"Colombian","definition":"Colombian"},{"code":"2170-9","display":"Ecuadorian","definition":"Ecuadorian"},{"code":"2171-7","display":"Paraguayan","definition":"Paraguayan"},{"code":"2172-5","display":"Peruvian","definition":"Peruvian"},{"code":"2173-3","display":"Uruguayan","definition":"Uruguayan"},{"code":"2174-1","display":"Venezuelan","definition":"Venezuelan"},{"code":"2175-8","display":"South American Indian","definition":"South American Indian"},{"code":"2176-6","display":"Criollo","definition":"Criollo"}]},{"code":"2186-5","display":"Not Hispanic or Latino","definition":"Note that this term remains in the table for completeness, even though within HL7, the notion of \"not otherwise coded\" term is deprecated."}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/CodeSystem-condition-category.json b/resources/uscore_v3.0.1/CodeSystem-condition-category.json new file mode 100644 index 000000000..8dd05c212 --- /dev/null +++ b/resources/uscore_v3.0.1/CodeSystem-condition-category.json @@ -0,0 +1 @@ +{"resourceType":"CodeSystem","id":"condition-category","text":{"status":"extensions","div":"

    US Core Condition Category Extension Codes

    Set of codes that are needed for implementation of the US-Core profiles. These codes are used as extensions to the FHIR and US Core value sets.

    \n

    Properties

    CodeURLDescriptionType
    statushttp://hl7.org/fhir/concept-properties#statusA property that indicates the status of the concept. One of active, experimental, deprecated, retiredcode

    This code system http://hl7.org/fhir/us/core/CodeSystem/condition-category defines the following codes:

    CodeDisplayDefinitionDeprecated
    problem ProblemThe patients problems as identified by the provider(s). Items on the provider’s problem listDeprecated
    health-concern Health ConcernAdditional health concerns from other stakeholders which are outside the provider’s problem list.
    "},"url":"http://hl7.org/fhir/us/core/CodeSystem/condition-category","version":"3.0.1","name":"USCoreConditionCategoryExtensionCodes","title":"US Core Condition Category Extension Codes","status":"active","date":"2019-09-12T23:50:40+00:00","publisher":"HL7 US Realm Steering Committee","description":"Set of codes that are needed for implementation of the US-Core profiles. These codes are used as extensions to the FHIR and US Core value sets.\n","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"caseSensitive":true,"content":"complete","property":[{"code":"status","uri":"http://hl7.org/fhir/concept-properties#status","description":"A property that indicates the status of the concept. One of active, experimental, deprecated, retired","type":"code"}],"concept":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/codesystem-replacedby","valueCoding":{"system":"http://terminology.hl7.org/CodeSystem/condition-category","code":"problem-list-item","display":"Problem List Item"}}],"code":"problem","display":"Problem","definition":"The patients problems as identified by the provider(s). Items on the provider’s problem list","property":[{"code":"status","valueCode":"deprecated"}]},{"code":"health-concern","display":"Health Concern","definition":"Additional health concerns from other stakeholders which are outside the provider’s problem list."}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/CodeSystem-us-core-documentreference-category.json b/resources/uscore_v3.0.1/CodeSystem-us-core-documentreference-category.json new file mode 100644 index 000000000..019eb1183 --- /dev/null +++ b/resources/uscore_v3.0.1/CodeSystem-us-core-documentreference-category.json @@ -0,0 +1 @@ +{"resourceType":"CodeSystem","id":"us-core-documentreference-category","text":{"status":"generated","div":"

    US Core DocumentReferences Category Codes

    The US Core DocumentReferences Type Code System is a 'starter set' of categories supported for fetching and storing DocumentReference Resources.

    \n

    This code system http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category defines the following codes:

    CodeDisplayDefinition
    clinical-note Clinical NotePart of health record where healthcare professionals record details to document a patient's clinical status or achievements during the course of a hospitalization or over the course of outpatient care ([Wikipedia](https://en.wikipedia.org/wiki/Progress_note))
    "},"url":"http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category","version":"3.0.1","name":"USCoreDocumentReferencesCategoryCodes","title":"US Core DocumentReferences Category Codes","status":"active","date":"2019-05-21T00:00:00+00:00","description":"The US Core DocumentReferences Type Code System is a 'starter set' of categories supported for fetching and storing DocumentReference Resources.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"caseSensitive":true,"valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-documentreference-category","content":"complete","count":2,"concept":[{"code":"clinical-note","display":"Clinical Note","definition":"Part of health record where healthcare professionals record details to document a patient's clinical status or achievements during the course of a hospitalization or over the course of outpatient care ([Wikipedia](https://en.wikipedia.org/wiki/Progress_note))"}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/CodeSystem-us-core-provenance-participant-type.json b/resources/uscore_v3.0.1/CodeSystem-us-core-provenance-participant-type.json new file mode 100644 index 000000000..388d43aa6 --- /dev/null +++ b/resources/uscore_v3.0.1/CodeSystem-us-core-provenance-participant-type.json @@ -0,0 +1 @@ +{"resourceType":"CodeSystem","id":"us-core-provenance-participant-type","text":{"status":"generated","div":"

    US Core Provenance Participant Type Extension Codes

    Set of codes that are needed for implementation of the US-Core profiles. These codes are used as extensions to the FHIR and US Core value sets.

    \n

    This code system http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type defines the following codes:

    CodeDisplayDefinition
    transmitter TransmitterThe entity that provided the copy to your system.
    "},"url":"http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type","version":"3.0.1","name":"USCoreProvenancePaticipantTypeExtensionCodes","title":"US Core Provenance Participant Type Extension Codes","status":"active","date":"2019-09-12T23:50:40+00:00","publisher":"HL7 US Realm Steering Committee","description":"Set of codes that are needed for implementation of the US-Core profiles. These codes are used as extensions to the FHIR and US Core value sets.\n","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"caseSensitive":true,"content":"complete","concept":[{"code":"transmitter","display":"Transmitter","definition":"The entity that provided the copy to your system."}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ConceptMap-ndc-cvx.json b/resources/uscore_v3.0.1/ConceptMap-ndc-cvx.json new file mode 100644 index 000000000..ddd3e2d70 --- /dev/null +++ b/resources/uscore_v3.0.1/ConceptMap-ndc-cvx.json @@ -0,0 +1 @@ +{"resourceType":"ConceptMap","id":"ndc-cvx","text":{"status":"generated","div":"

    USCoreNDCtoCVXCodeMapping (http://hl7.org/fhir/us/core/ConceptMap/ndc-cvx)

    Mapping from http://hl7.org/fhir/us/core/ValueSet/us-core-ndc-vaccine-codes to http://hl7.org/fhir/us/core/ValueSet/us-core-vaccines-cvx

    ACTIVE. Published on May 21, 2019, 12:00:00 AM by HL7 US Realm Steering Committee.

    Unit of Use [NDC code] (https://www2a.cdc.gov/vaccines/iis/iisstandards/ndc_crosswalk.asp) mapping to the CVX Vaccine codes. Note: source = NDC and target = CVX

    \n

    Source CodeEquivalenceDestination Code
    00005-0100-02wider162
    00005-0100-05wider162
    00005-0100-10wider162
    00005-1970-50wider100
    00005-1971-02wider133
    00005-1971-04wider133
    00005-1971-05wider133
    00006-4045-00wider62
    00006-4045-41wider62
    00006-4047-20wider116
    00006-4047-41wider116
    00006-4093-02wider08
    00006-4093-09wider08
    00006-4094-02wider43
    00006-4094-09wider43
    00006-4095-02wider83
    00006-4095-09wider83
    00006-4096-02wider52
    00006-4096-09wider52
    00006-4109-02wider62
    00006-4109-09wider62
    00006-4119-02wider165
    00006-4119-03wider165
    00006-4121-02wider165
    00006-4133-41wider09
    00006-4171-00wider94
    00006-4681-00wider03
    00006-4739-00wider33
    00006-4826-00wider21
    00006-4827-00wider21
    00006-4831-41wider83
    00006-4837-02wider33
    00006-4837-03wider33
    00006-4841-00wider52
    00006-4841-41wider52
    00006-4897-00wider49
    00006-4898-00wider51
    00006-4943-00wider33
    00006-4963-00wider121
    00006-4963-41wider121
    00006-4980-00wider08
    00006-4981-00wider08
    00006-4992-00wider44
    00006-4995-00wider43
    00006-4995-41wider43
    00006-4999-00wider94
    00052-0603-02wider19
    13533-0131-01wider09
    14362-0111-04wider09
    17478-0131-01wider09
    19515-0845-11wider141
    19515-0850-52wider140
    19515-0889-07wider141
    19515-0890-07wider141
    19515-0891-11wider158
    19515-0893-07wider141
    19515-0894-52wider150
    19515-0895-11wider158
    19515-0896-11wider158
    19515-0898-11wider158
    19515-0900-11wider158
    19515-0901-52wider150
    19515-0903-11wider158
    19515-0908-52wider150
    19515-0909-52wider150
    19515-0912-52wider150
    21695-0413-01wider09
    33332-0010-01wider140
    33332-0013-01wider140
    33332-0014-01wider140
    33332-0015-01wider140
    33332-0016-01wider140
    33332-0017-01wider140
    33332-0018-01wider140
    33332-0110-10wider141
    33332-0113-10wider141
    33332-0114-10wider141
    33332-0115-10wider141
    33332-0116-10wider141
    33332-0117-10wider141
    33332-0118-10wider141
    33332-0316-01wider150
    33332-0317-01wider150
    33332-0318-01wider150
    33332-0416-10wider158
    33332-0417-10wider158
    33332-0418-10wider158
    33332-0519-01wider126
    33332-0519-25wider126
    33332-0629-10wider127
    42515-0001-01wider134
    42515-0001-01wider134
    42515-0001-01wider134
    42515-0001-01wider134
    42515-0002-01wider134
    42874-0012-10wider155
    42874-0013-10wider155
    42874-0014-10wider155
    42874-0015-10wider155
    42874-0016-10wider155
    42874-0017-10wider155
    42874-0117-10wider185
    43528-0002-05wider189
    43528-0003-05wider189
    46028-0114-01wider163
    46028-0114-02wider163
    46028-0208-01wider136
    46028-0208-01wider136
    49281-0010-10wider140
    49281-0010-25wider140
    49281-0010-50wider140
    49281-0011-10wider140
    49281-0011-50wider140
    49281-0012-10wider140
    49281-0012-50wider140
    49281-0013-10wider140
    49281-0013-50wider140
    49281-0014-50wider140
    49281-0111-25wider140
    49281-0112-25wider140
    49281-0113-25wider140
    49281-0215-10wider113
    49281-0215-15wider113
    49281-0225-10wider28
    49281-0250-51wider175
    49281-0278-10wider28
    49281-0286-01wider106
    49281-0286-05wider106
    49281-0286-10wider106
    49281-0291-10wider113
    49281-0291-83wider113
    49281-0298-10wider20
    49281-0386-15wider141
    49281-0387-65wider135
    49281-0388-15wider141
    49281-0389-65wider135
    49281-0390-15wider141
    49281-0391-65wider135
    49281-0392-15wider141
    49281-0393-65wider135
    49281-0394-15wider141
    49281-0395-65wider135
    49281-0396-15wider141
    49281-0397-65wider135
    49281-0399-65wider135
    49281-0400-05wider115
    49281-0400-10wider115
    49281-0400-15wider115
    49281-0400-20wider115
    49281-0401-65wider135
    49281-0403-65wider135
    49281-0413-10wider150
    49281-0413-50wider150
    49281-0414-10wider150
    49281-0414-50wider150
    49281-0415-10wider150
    49281-0416-10wider150
    49281-0416-50wider150
    49281-0417-10wider150
    49281-0417-50wider150
    49281-0418-10wider150
    49281-0418-50wider150
    49281-0489-01wider32
    49281-0489-91wider32
    49281-0510-05wider120
    49281-0510-05wider120
    49281-0513-25wider161
    49281-0514-25wider161
    49281-0516-25wider161
    49281-0517-25wider161
    49281-0518-25wider161
    49281-0545-03wider48
    49281-0545-05wider48
    49281-0562-10wider130
    49281-0589-05wider114
    49281-0621-15wider158
    49281-0625-15wider158
    49281-0627-15wider158
    49281-0629-15wider158
    49281-0640-15wider127
    49281-0650-10wider126
    49281-0650-25wider126
    49281-0650-50wider126
    49281-0650-70wider126
    49281-0650-90wider126
    49281-0703-55wider144
    49281-0705-55wider144
    49281-0707-55wider144
    49281-0708-40wider166
    49281-0709-55wider144
    49281-0710-40wider166
    49281-0712-40wider166
    49281-0718-10wider185
    49281-0790-20wider101
    49281-0790-51wider101
    49281-0800-83wider35
    49281-0820-10wider35
    49281-0860-10wider10
    49281-0860-10wider10
    49281-0860-55wider10
    49281-0913-01wider183
    49281-0915-01wider37
    49281-0915-05wider37
    50090-1693-09wider10
    50090-2883-00wider20
    50090-3096-00wider176
    50090-3469-00wider189
    51285-0138-50wider143
    51285-0138-50wider143
    54868-0734-00wider43
    54868-0980-00wider03
    54868-2219-00wider43
    54868-2219-01wider43
    54868-3339-01wider33
    54868-4320-00wider33
    54868-6177-00wider141
    54868-6180-00wider140
    55045-3841-01wider52
    58160-0801-11wider148
    58160-0806-05wider48
    58160-0808-15wider160
    58160-0808-15wider160
    58160-0809-05wider148
    58160-0810-11wider20
    58160-0810-52wider20
    58160-0811-51wider110
    58160-0811-52wider110
    58160-0812-11wider130
    58160-0812-52wider130
    58160-0815-11wider104
    58160-0815-34wider104
    58160-0815-46wider104
    58160-0815-48wider104
    58160-0815-52wider104
    58160-0816-05wider48
    58160-0818-11wider48
    58160-0819-12wider187
    58160-0820-11wider08
    58160-0820-52wider08
    58160-0821-11wider43
    58160-0821-34wider43
    58160-0821-52wider43
    58160-0823-11wider187
    58160-0825-11wider83
    58160-0825-52wider83
    58160-0826-11wider52
    58160-0826-34wider52
    58160-0826-52wider52
    58160-0830-34wider118
    58160-0830-52wider118
    58160-0842-11wider115
    58160-0842-34wider115
    58160-0842-51wider115
    58160-0842-52wider115
    58160-0854-52wider119
    58160-0879-52wider140
    58160-0880-52wider140
    58160-0881-52wider140
    58160-0883-52wider140
    58160-0898-52wider150
    58160-0900-52wider150
    58160-0901-52wider150
    58160-0903-52wider150
    58160-0905-52wider150
    58160-0907-52wider150
    58160-0955-09wider136
    58160-0955-09wider136
    58160-0964-12wider176
    58160-0964-12wider176
    58160-0976-06wider163
    58160-0976-20wider163
    62195-0051-10wider134
    62577-0613-01wider153
    62577-0614-01wider153
    63851-0501-01wider176
    63851-0501-02wider176
    63851-0612-01wider153
    63851-0613-01wider153
    64678-0211-01wider24
    66019-0107-01wider111
    66019-0108-10wider111
    66019-0109-10wider111
    66019-0110-10wider111
    66019-0200-10wider125
    66019-0300-10wider149
    66019-0301-10wider149
    66019-0302-10wider149
    66019-0303-10wider149
    66019-0304-10wider149
    66019-0305-10wider149
    66521-0000-01wider168
    66521-0112-02wider140
    66521-0112-10wider141
    66521-0113-02wider140
    66521-0113-10wider141
    66521-0114-02wider140
    66521-0114-10wider141
    66521-0115-02wider140
    66521-0115-10wider141
    66521-0116-02wider140
    66521-0116-10wider141
    66521-0117-02wider140
    66521-0117-10wider141
    66521-0118-02wider140
    66521-0118-10wider141
    66521-0200-02wider127
    66521-0200-10wider126
    69401-0000-01wider25
    69401-0000-02wider25
    70460-0001-01wider174
    70461-0001-01wider168
    70461-0002-01wider168
    70461-0018-03wider168
    70461-0119-02wider140
    70461-0119-10wider141
    70461-0120-02wider140
    70461-0120-10wider141
    70461-0200-01wider171
    70461-0201-01wider171
    70461-0301-10wider186
    70461-0318-03wider171
    70461-0418-10wider186
    76420-0482-01wider150
    76420-0483-01wider150
    63361-0245-10wider146
    "},"url":"http://hl7.org/fhir/us/core/ConceptMap/ndc-cvx","version":"3.0.1","name":"USCoreNDCtoCVXCodeMapping","title":"US Core NDC to CVX Code Mapping","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","description":"Unit of Use [NDC code] (https://www2a.cdc.gov/vaccines/iis/iisstandards/ndc_crosswalk.asp) mapping to the [CVX Vaccine codes](https://www2a.cdc.gov/vaccines/iis/iisstandards/vaccines.asp?rpt=cvx). Note: source = NDC and target = CVX","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"purpose":"Based upon the 2015 Edition Certification Requirements, the NDC vaccine codes SHOULD be supported as translations to the CVX vaccine codes.","sourceCanonical":"http://hl7.org/fhir/us/core/ValueSet/us-core-ndc-vaccine-codes","targetCanonical":"http://hl7.org/fhir/us/core/ValueSet/us-core-vaccines-cvx","group":[{"element":[{"code":"00005-0100-02","target":[{"code":"162","equivalence":"wider"}]},{"code":"00005-0100-05","target":[{"code":"162","equivalence":"wider"}]},{"code":"00005-0100-10","target":[{"code":"162","equivalence":"wider"}]},{"code":"00005-1970-50","target":[{"code":"100","equivalence":"wider"}]},{"code":"00005-1971-02","target":[{"code":"133","equivalence":"wider"}]},{"code":"00005-1971-04","target":[{"code":"133","equivalence":"wider"}]},{"code":"00005-1971-05","target":[{"code":"133","equivalence":"wider"}]},{"code":"00006-4045-00","target":[{"code":"62","equivalence":"wider"}]},{"code":"00006-4045-41","target":[{"code":"62","equivalence":"wider"}]},{"code":"00006-4047-20","target":[{"code":"116","equivalence":"wider"}]},{"code":"00006-4047-41","target":[{"code":"116","equivalence":"wider"}]},{"code":"00006-4093-02","target":[{"code":"08","equivalence":"wider"}]},{"code":"00006-4093-09","target":[{"code":"08","equivalence":"wider"}]},{"code":"00006-4094-02","target":[{"code":"43","equivalence":"wider"}]},{"code":"00006-4094-09","target":[{"code":"43","equivalence":"wider"}]},{"code":"00006-4095-02","target":[{"code":"83","equivalence":"wider"}]},{"code":"00006-4095-09","target":[{"code":"83","equivalence":"wider"}]},{"code":"00006-4096-02","target":[{"code":"52","equivalence":"wider"}]},{"code":"00006-4096-09","target":[{"code":"52","equivalence":"wider"}]},{"code":"00006-4109-02","target":[{"code":"62","equivalence":"wider"}]},{"code":"00006-4109-09","target":[{"code":"62","equivalence":"wider"}]},{"code":"00006-4119-02","target":[{"code":"165","equivalence":"wider"}]},{"code":"00006-4119-03","target":[{"code":"165","equivalence":"wider"}]},{"code":"00006-4121-02","target":[{"code":"165","equivalence":"wider"}]},{"code":"00006-4133-41","target":[{"code":"09","equivalence":"wider"}]},{"code":"00006-4171-00","target":[{"code":"94","equivalence":"wider"}]},{"code":"00006-4681-00","target":[{"code":"03","equivalence":"wider"}]},{"code":"00006-4739-00","target":[{"code":"33","equivalence":"wider"}]},{"code":"00006-4826-00","target":[{"code":"21","equivalence":"wider"}]},{"code":"00006-4827-00","target":[{"code":"21","equivalence":"wider"}]},{"code":"00006-4831-41","target":[{"code":"83","equivalence":"wider"}]},{"code":"00006-4837-02","target":[{"code":"33","equivalence":"wider"}]},{"code":"00006-4837-03","target":[{"code":"33","equivalence":"wider"}]},{"code":"00006-4841-00","target":[{"code":"52","equivalence":"wider"}]},{"code":"00006-4841-41","target":[{"code":"52","equivalence":"wider"}]},{"code":"00006-4897-00","target":[{"code":"49","equivalence":"wider"}]},{"code":"00006-4898-00","target":[{"code":"51","equivalence":"wider"}]},{"code":"00006-4943-00","target":[{"code":"33","equivalence":"wider"}]},{"code":"00006-4963-00","target":[{"code":"121","equivalence":"wider"}]},{"code":"00006-4963-41","target":[{"code":"121","equivalence":"wider"}]},{"code":"00006-4980-00","target":[{"code":"08","equivalence":"wider"}]},{"code":"00006-4981-00","target":[{"code":"08","equivalence":"wider"}]},{"code":"00006-4992-00","target":[{"code":"44","equivalence":"wider"}]},{"code":"00006-4995-00","target":[{"code":"43","equivalence":"wider"}]},{"code":"00006-4995-41","target":[{"code":"43","equivalence":"wider"}]},{"code":"00006-4999-00","target":[{"code":"94","equivalence":"wider"}]},{"code":"00052-0603-02","target":[{"code":"19","equivalence":"wider"}]},{"code":"13533-0131-01","target":[{"code":"09","equivalence":"wider"}]},{"code":"14362-0111-04","target":[{"code":"09","equivalence":"wider"}]},{"code":"17478-0131-01","target":[{"code":"09","equivalence":"wider"}]},{"code":"19515-0845-11","target":[{"code":"141","equivalence":"wider"}]},{"code":"19515-0850-52","target":[{"code":"140","equivalence":"wider"}]},{"code":"19515-0889-07","target":[{"code":"141","equivalence":"wider"}]},{"code":"19515-0890-07","target":[{"code":"141","equivalence":"wider"}]},{"code":"19515-0891-11","target":[{"code":"158","equivalence":"wider"}]},{"code":"19515-0893-07","target":[{"code":"141","equivalence":"wider"}]},{"code":"19515-0894-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"19515-0895-11","target":[{"code":"158","equivalence":"wider"}]},{"code":"19515-0896-11","target":[{"code":"158","equivalence":"wider"}]},{"code":"19515-0898-11","target":[{"code":"158","equivalence":"wider"}]},{"code":"19515-0900-11","target":[{"code":"158","equivalence":"wider"}]},{"code":"19515-0901-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"19515-0903-11","target":[{"code":"158","equivalence":"wider"}]},{"code":"19515-0908-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"19515-0909-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"19515-0912-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"21695-0413-01","target":[{"code":"09","equivalence":"wider"}]},{"code":"33332-0010-01","target":[{"code":"140","equivalence":"wider"}]},{"code":"33332-0013-01","target":[{"code":"140","equivalence":"wider"}]},{"code":"33332-0014-01","target":[{"code":"140","equivalence":"wider"}]},{"code":"33332-0015-01","target":[{"code":"140","equivalence":"wider"}]},{"code":"33332-0016-01","target":[{"code":"140","equivalence":"wider"}]},{"code":"33332-0017-01","target":[{"code":"140","equivalence":"wider"}]},{"code":"33332-0018-01","target":[{"code":"140","equivalence":"wider"}]},{"code":"33332-0110-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"33332-0113-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"33332-0114-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"33332-0115-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"33332-0116-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"33332-0117-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"33332-0118-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"33332-0316-01","target":[{"code":"150","equivalence":"wider"}]},{"code":"33332-0317-01","target":[{"code":"150","equivalence":"wider"}]},{"code":"33332-0318-01","target":[{"code":"150","equivalence":"wider"}]},{"code":"33332-0416-10","target":[{"code":"158","equivalence":"wider"}]},{"code":"33332-0417-10","target":[{"code":"158","equivalence":"wider"}]},{"code":"33332-0418-10","target":[{"code":"158","equivalence":"wider"}]},{"code":"33332-0519-01","target":[{"code":"126","equivalence":"wider"}]},{"code":"33332-0519-25","target":[{"code":"126","equivalence":"wider"}]},{"code":"33332-0629-10","target":[{"code":"127","equivalence":"wider"}]},{"code":"42515-0001-01","target":[{"code":"134","equivalence":"wider"}]},{"code":"42515-0001-01","target":[{"code":"134","equivalence":"wider"}]},{"code":"42515-0001-01","target":[{"code":"134","equivalence":"wider"}]},{"code":"42515-0001-01","target":[{"code":"134","equivalence":"wider"}]},{"code":"42515-0002-01","target":[{"code":"134","equivalence":"wider"}]},{"code":"42874-0012-10","target":[{"code":"155","equivalence":"wider"}]},{"code":"42874-0013-10","target":[{"code":"155","equivalence":"wider"}]},{"code":"42874-0014-10","target":[{"code":"155","equivalence":"wider"}]},{"code":"42874-0015-10","target":[{"code":"155","equivalence":"wider"}]},{"code":"42874-0016-10","target":[{"code":"155","equivalence":"wider"}]},{"code":"42874-0017-10","target":[{"code":"155","equivalence":"wider"}]},{"code":"42874-0117-10","target":[{"code":"185","equivalence":"wider"}]},{"code":"43528-0002-05","target":[{"code":"189","equivalence":"wider"}]},{"code":"43528-0003-05","target":[{"code":"189","equivalence":"wider"}]},{"code":"46028-0114-01","target":[{"code":"163","equivalence":"wider"}]},{"code":"46028-0114-02","target":[{"code":"163","equivalence":"wider"}]},{"code":"46028-0208-01","target":[{"code":"136","equivalence":"wider"}]},{"code":"46028-0208-01","target":[{"code":"136","equivalence":"wider"}]},{"code":"49281-0010-10","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0010-25","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0010-50","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0011-10","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0011-50","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0012-10","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0012-50","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0013-10","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0013-50","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0014-50","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0111-25","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0112-25","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0113-25","target":[{"code":"140","equivalence":"wider"}]},{"code":"49281-0215-10","target":[{"code":"113","equivalence":"wider"}]},{"code":"49281-0215-15","target":[{"code":"113","equivalence":"wider"}]},{"code":"49281-0225-10","target":[{"code":"28","equivalence":"wider"}]},{"code":"49281-0250-51","target":[{"code":"175","equivalence":"wider"}]},{"code":"49281-0278-10","target":[{"code":"28","equivalence":"wider"}]},{"code":"49281-0286-01","target":[{"code":"106","equivalence":"wider"}]},{"code":"49281-0286-05","target":[{"code":"106","equivalence":"wider"}]},{"code":"49281-0286-10","target":[{"code":"106","equivalence":"wider"}]},{"code":"49281-0291-10","target":[{"code":"113","equivalence":"wider"}]},{"code":"49281-0291-83","target":[{"code":"113","equivalence":"wider"}]},{"code":"49281-0298-10","target":[{"code":"20","equivalence":"wider"}]},{"code":"49281-0386-15","target":[{"code":"141","equivalence":"wider"}]},{"code":"49281-0387-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0388-15","target":[{"code":"141","equivalence":"wider"}]},{"code":"49281-0389-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0390-15","target":[{"code":"141","equivalence":"wider"}]},{"code":"49281-0391-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0392-15","target":[{"code":"141","equivalence":"wider"}]},{"code":"49281-0393-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0394-15","target":[{"code":"141","equivalence":"wider"}]},{"code":"49281-0395-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0396-15","target":[{"code":"141","equivalence":"wider"}]},{"code":"49281-0397-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0399-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0400-05","target":[{"code":"115","equivalence":"wider"}]},{"code":"49281-0400-10","target":[{"code":"115","equivalence":"wider"}]},{"code":"49281-0400-15","target":[{"code":"115","equivalence":"wider"}]},{"code":"49281-0400-20","target":[{"code":"115","equivalence":"wider"}]},{"code":"49281-0401-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0403-65","target":[{"code":"135","equivalence":"wider"}]},{"code":"49281-0413-10","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0413-50","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0414-10","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0414-50","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0415-10","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0416-10","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0416-50","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0417-10","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0417-50","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0418-10","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0418-50","target":[{"code":"150","equivalence":"wider"}]},{"code":"49281-0489-01","target":[{"code":"32","equivalence":"wider"}]},{"code":"49281-0489-91","target":[{"code":"32","equivalence":"wider"}]},{"code":"49281-0510-05","target":[{"code":"120","equivalence":"wider"}]},{"code":"49281-0510-05","target":[{"code":"120","equivalence":"wider"}]},{"code":"49281-0513-25","target":[{"code":"161","equivalence":"wider"}]},{"code":"49281-0514-25","target":[{"code":"161","equivalence":"wider"}]},{"code":"49281-0516-25","target":[{"code":"161","equivalence":"wider"}]},{"code":"49281-0517-25","target":[{"code":"161","equivalence":"wider"}]},{"code":"49281-0518-25","target":[{"code":"161","equivalence":"wider"}]},{"code":"49281-0545-03","target":[{"code":"48","equivalence":"wider"}]},{"code":"49281-0545-05","target":[{"code":"48","equivalence":"wider"}]},{"code":"49281-0562-10","target":[{"code":"130","equivalence":"wider"}]},{"code":"49281-0589-05","target":[{"code":"114","equivalence":"wider"}]},{"code":"49281-0621-15","target":[{"code":"158","equivalence":"wider"}]},{"code":"49281-0625-15","target":[{"code":"158","equivalence":"wider"}]},{"code":"49281-0627-15","target":[{"code":"158","equivalence":"wider"}]},{"code":"49281-0629-15","target":[{"code":"158","equivalence":"wider"}]},{"code":"49281-0640-15","target":[{"code":"127","equivalence":"wider"}]},{"code":"49281-0650-10","target":[{"code":"126","equivalence":"wider"}]},{"code":"49281-0650-25","target":[{"code":"126","equivalence":"wider"}]},{"code":"49281-0650-50","target":[{"code":"126","equivalence":"wider"}]},{"code":"49281-0650-70","target":[{"code":"126","equivalence":"wider"}]},{"code":"49281-0650-90","target":[{"code":"126","equivalence":"wider"}]},{"code":"49281-0703-55","target":[{"code":"144","equivalence":"wider"}]},{"code":"49281-0705-55","target":[{"code":"144","equivalence":"wider"}]},{"code":"49281-0707-55","target":[{"code":"144","equivalence":"wider"}]},{"code":"49281-0708-40","target":[{"code":"166","equivalence":"wider"}]},{"code":"49281-0709-55","target":[{"code":"144","equivalence":"wider"}]},{"code":"49281-0710-40","target":[{"code":"166","equivalence":"wider"}]},{"code":"49281-0712-40","target":[{"code":"166","equivalence":"wider"}]},{"code":"49281-0718-10","target":[{"code":"185","equivalence":"wider"}]},{"code":"49281-0790-20","target":[{"code":"101","equivalence":"wider"}]},{"code":"49281-0790-51","target":[{"code":"101","equivalence":"wider"}]},{"code":"49281-0800-83","target":[{"code":"35","equivalence":"wider"}]},{"code":"49281-0820-10","target":[{"code":"35","equivalence":"wider"}]},{"code":"49281-0860-10","target":[{"code":"10","equivalence":"wider"}]},{"code":"49281-0860-10","target":[{"code":"10","equivalence":"wider"}]},{"code":"49281-0860-55","target":[{"code":"10","equivalence":"wider"}]},{"code":"49281-0913-01","target":[{"code":"183","equivalence":"wider"}]},{"code":"49281-0915-01","target":[{"code":"37","equivalence":"wider"}]},{"code":"49281-0915-05","target":[{"code":"37","equivalence":"wider"}]},{"code":"50090-1693-09","target":[{"code":"10","equivalence":"wider"}]},{"code":"50090-2883-00","target":[{"code":"20","equivalence":"wider"}]},{"code":"50090-3096-00","target":[{"code":"176","equivalence":"wider"}]},{"code":"50090-3469-00","target":[{"code":"189","equivalence":"wider"}]},{"code":"51285-0138-50","target":[{"code":"143","equivalence":"wider"}]},{"code":"51285-0138-50","target":[{"code":"143","equivalence":"wider"}]},{"code":"54868-0734-00","target":[{"code":"43","equivalence":"wider"}]},{"code":"54868-0980-00","target":[{"code":"03","equivalence":"wider"}]},{"code":"54868-2219-00","target":[{"code":"43","equivalence":"wider"}]},{"code":"54868-2219-01","target":[{"code":"43","equivalence":"wider"}]},{"code":"54868-3339-01","target":[{"code":"33","equivalence":"wider"}]},{"code":"54868-4320-00","target":[{"code":"33","equivalence":"wider"}]},{"code":"54868-6177-00","target":[{"code":"141","equivalence":"wider"}]},{"code":"54868-6180-00","target":[{"code":"140","equivalence":"wider"}]},{"code":"55045-3841-01","target":[{"code":"52","equivalence":"wider"}]},{"code":"58160-0801-11","target":[{"code":"148","equivalence":"wider"}]},{"code":"58160-0806-05","target":[{"code":"48","equivalence":"wider"}]},{"code":"58160-0808-15","target":[{"code":"160","equivalence":"wider"}]},{"code":"58160-0808-15","target":[{"code":"160","equivalence":"wider"}]},{"code":"58160-0809-05","target":[{"code":"148","equivalence":"wider"}]},{"code":"58160-0810-11","target":[{"code":"20","equivalence":"wider"}]},{"code":"58160-0810-52","target":[{"code":"20","equivalence":"wider"}]},{"code":"58160-0811-51","target":[{"code":"110","equivalence":"wider"}]},{"code":"58160-0811-52","target":[{"code":"110","equivalence":"wider"}]},{"code":"58160-0812-11","target":[{"code":"130","equivalence":"wider"}]},{"code":"58160-0812-52","target":[{"code":"130","equivalence":"wider"}]},{"code":"58160-0815-11","target":[{"code":"104","equivalence":"wider"}]},{"code":"58160-0815-34","target":[{"code":"104","equivalence":"wider"}]},{"code":"58160-0815-46","target":[{"code":"104","equivalence":"wider"}]},{"code":"58160-0815-48","target":[{"code":"104","equivalence":"wider"}]},{"code":"58160-0815-52","target":[{"code":"104","equivalence":"wider"}]},{"code":"58160-0816-05","target":[{"code":"48","equivalence":"wider"}]},{"code":"58160-0818-11","target":[{"code":"48","equivalence":"wider"}]},{"code":"58160-0819-12","target":[{"code":"187","equivalence":"wider"}]},{"code":"58160-0820-11","target":[{"code":"08","equivalence":"wider"}]},{"code":"58160-0820-52","target":[{"code":"08","equivalence":"wider"}]},{"code":"58160-0821-11","target":[{"code":"43","equivalence":"wider"}]},{"code":"58160-0821-34","target":[{"code":"43","equivalence":"wider"}]},{"code":"58160-0821-52","target":[{"code":"43","equivalence":"wider"}]},{"code":"58160-0823-11","target":[{"code":"187","equivalence":"wider"}]},{"code":"58160-0825-11","target":[{"code":"83","equivalence":"wider"}]},{"code":"58160-0825-52","target":[{"code":"83","equivalence":"wider"}]},{"code":"58160-0826-11","target":[{"code":"52","equivalence":"wider"}]},{"code":"58160-0826-34","target":[{"code":"52","equivalence":"wider"}]},{"code":"58160-0826-52","target":[{"code":"52","equivalence":"wider"}]},{"code":"58160-0830-34","target":[{"code":"118","equivalence":"wider"}]},{"code":"58160-0830-52","target":[{"code":"118","equivalence":"wider"}]},{"code":"58160-0842-11","target":[{"code":"115","equivalence":"wider"}]},{"code":"58160-0842-34","target":[{"code":"115","equivalence":"wider"}]},{"code":"58160-0842-51","target":[{"code":"115","equivalence":"wider"}]},{"code":"58160-0842-52","target":[{"code":"115","equivalence":"wider"}]},{"code":"58160-0854-52","target":[{"code":"119","equivalence":"wider"}]},{"code":"58160-0879-52","target":[{"code":"140","equivalence":"wider"}]},{"code":"58160-0880-52","target":[{"code":"140","equivalence":"wider"}]},{"code":"58160-0881-52","target":[{"code":"140","equivalence":"wider"}]},{"code":"58160-0883-52","target":[{"code":"140","equivalence":"wider"}]},{"code":"58160-0898-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"58160-0900-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"58160-0901-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"58160-0903-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"58160-0905-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"58160-0907-52","target":[{"code":"150","equivalence":"wider"}]},{"code":"58160-0955-09","target":[{"code":"136","equivalence":"wider"}]},{"code":"58160-0955-09","target":[{"code":"136","equivalence":"wider"}]},{"code":"58160-0964-12","target":[{"code":"176","equivalence":"wider"}]},{"code":"58160-0964-12","target":[{"code":"176","equivalence":"wider"}]},{"code":"58160-0976-06","target":[{"code":"163","equivalence":"wider"}]},{"code":"58160-0976-20","target":[{"code":"163","equivalence":"wider"}]},{"code":"62195-0051-10","target":[{"code":"134","equivalence":"wider"}]},{"code":"62577-0613-01","target":[{"code":"153","equivalence":"wider"}]},{"code":"62577-0614-01","target":[{"code":"153","equivalence":"wider"}]},{"code":"63851-0501-01","target":[{"code":"176","equivalence":"wider"}]},{"code":"63851-0501-02","target":[{"code":"176","equivalence":"wider"}]},{"code":"63851-0612-01","target":[{"code":"153","equivalence":"wider"}]},{"code":"63851-0613-01","target":[{"code":"153","equivalence":"wider"}]},{"code":"64678-0211-01","target":[{"code":"24","equivalence":"wider"}]},{"code":"66019-0107-01","target":[{"code":"111","equivalence":"wider"}]},{"code":"66019-0108-10","target":[{"code":"111","equivalence":"wider"}]},{"code":"66019-0109-10","target":[{"code":"111","equivalence":"wider"}]},{"code":"66019-0110-10","target":[{"code":"111","equivalence":"wider"}]},{"code":"66019-0200-10","target":[{"code":"125","equivalence":"wider"}]},{"code":"66019-0300-10","target":[{"code":"149","equivalence":"wider"}]},{"code":"66019-0301-10","target":[{"code":"149","equivalence":"wider"}]},{"code":"66019-0302-10","target":[{"code":"149","equivalence":"wider"}]},{"code":"66019-0303-10","target":[{"code":"149","equivalence":"wider"}]},{"code":"66019-0304-10","target":[{"code":"149","equivalence":"wider"}]},{"code":"66019-0305-10","target":[{"code":"149","equivalence":"wider"}]},{"code":"66521-0000-01","target":[{"code":"168","equivalence":"wider"}]},{"code":"66521-0112-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"66521-0112-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"66521-0113-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"66521-0113-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"66521-0114-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"66521-0114-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"66521-0115-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"66521-0115-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"66521-0116-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"66521-0116-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"66521-0117-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"66521-0117-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"66521-0118-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"66521-0118-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"66521-0200-02","target":[{"code":"127","equivalence":"wider"}]},{"code":"66521-0200-10","target":[{"code":"126","equivalence":"wider"}]},{"code":"69401-0000-01","target":[{"code":"25","equivalence":"wider"}]},{"code":"69401-0000-02","target":[{"code":"25","equivalence":"wider"}]},{"code":"70460-0001-01","target":[{"code":"174","equivalence":"wider"}]},{"code":"70461-0001-01","target":[{"code":"168","equivalence":"wider"}]},{"code":"70461-0002-01","target":[{"code":"168","equivalence":"wider"}]},{"code":"70461-0018-03","target":[{"code":"168","equivalence":"wider"}]},{"code":"70461-0119-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"70461-0119-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"70461-0120-02","target":[{"code":"140","equivalence":"wider"}]},{"code":"70461-0120-10","target":[{"code":"141","equivalence":"wider"}]},{"code":"70461-0200-01","target":[{"code":"171","equivalence":"wider"}]},{"code":"70461-0201-01","target":[{"code":"171","equivalence":"wider"}]},{"code":"70461-0301-10","target":[{"code":"186","equivalence":"wider"}]},{"code":"70461-0318-03","target":[{"code":"171","equivalence":"wider"}]},{"code":"70461-0418-10","target":[{"code":"186","equivalence":"wider"}]},{"code":"76420-0482-01","target":[{"code":"150","equivalence":"wider"}]},{"code":"76420-0483-01","target":[{"code":"150","equivalence":"wider"}]},{"code":"63361-0245-10","target":[{"code":"146","equivalence":"wider"}]}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ImplementationGuide-hl7.fhir.us.core.json b/resources/uscore_v3.0.1/ImplementationGuide-hl7.fhir.us.core.json new file mode 100644 index 000000000..c13a059c7 --- /dev/null +++ b/resources/uscore_v3.0.1/ImplementationGuide-hl7.fhir.us.core.json @@ -0,0 +1 @@ +{"resourceType":"ImplementationGuide","id":"hl7.fhir.us.core","text":{"status":"generated","div":"

    USCore

    The official URL for this implementation guide is:

    http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core
    "},"url":"http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core","version":"3.0.1","name":"USCore","title":"US Core","status":"active","date":"2019-09-12T23:50:40+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"Used by permission of HL7 International, all rights reserved Creative Commons License","packageId":"hl7.fhir.us.core","license":"CC0-1.0","fhirVersion":["4.0.0"],"definition":{"grouping":[{"name":"base"},{"id":"implantable-device-us-core-profile-spreadsheet.xml","name":"USCoreImplantableDeviceProfile"},{"id":"medicationrequest-us-core-profile-spreadsheet.xml","name":"USCoreMedicationRequestProfile"},{"id":"goal-us-core-profile-spreadsheet.xml","name":"USCoreGoalProfile"},{"id":"observation-us-core-pediatric-weight-for-height-spreadsheet.xml","name":"USCorePediatricWeightForHeightObservationProfile"},{"id":"condition-us-core-profile-spreadsheet.xml","name":"USCoreCondition"},{"id":"organization-us-core-profile-spreadsheet.xml","name":"USCoreOrganizationProfile"},{"id":"observation-us-core-smokingstatus-profile-spreadsheet.xml","name":"USCoreSmokingStatusProfile"},{"id":"careplan-us-core-profile-spreadsheet.xml","name":"USCoreCarePlanProfile"},{"id":"careteam-us-core-profile-spreadsheet.xml","name":"USCoreCareTeam"},{"id":"documentreference-us-core-profile-spreadsheet.xml","name":"USCoreDocumentReferenceProfile"},{"id":"medication-us-core-profile-spreadsheet.xml","name":"USCoreMedicationProfile"},{"id":"procedure-us-core-profile-spreadsheet.xml","name":"USCoreProcedureProfile"},{"id":"location-us-core-profile-spreadsheet.xml","name":"USCoreLocation"},{"id":"observation-us-core-pulse-oximetry-spreadsheet.xml","name":"USCorePulseOximetryProfile"},{"id":"patient-us-core-profile-spreadsheet.xml","name":"USCorePatientProfile"},{"id":"encounter-us-core-profile-spreadsheet.xml","name":"/scratch/ig-build-temp-E7MEA4/repo/source/resources/encounter-us-core-profile-spreadsheet"},{"id":"practitioner-us-core-profile-spreadsheet.xml","name":"USCorePractitionerProfile"},{"id":"allergyintolerance-us-core-profile-spreadsheet.xml","name":"USCoreAllergyIntolerance"},{"id":"observation-us-core-pediatric-bmi-for age-spreadsheet.xml","name":"USCorePediatricBMIforAgeObservationProfile"},{"id":"us-core-observation-lab-profile-spreadsheet.xml","name":"USCoreLaboratoryResultObservationProfile"},{"id":"practitionerrole-us-core-profile-spreadsheet.xml","name":"/scratch/ig-build-temp-E7MEA4/repo/source/resources/practitionerrole-us-core-profile-spreadsheet"},{"id":"immunization-us-core-profile-spreadsheet.xml","name":"USCoreImmunizationProfile"}],"resource":[{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-glucose.html"}],"reference":{"reference":"Observation/urine-glucose"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Procedure"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Procedure-rehab.html"}],"reference":{"reference":"Procedure/rehab"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CareTeam"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CareTeam-example.html"}],"reference":{"reference":"CareTeam/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-leukocyte-esterase.html"}],"reference":{"reference":"Observation/urine-leukocyte-esterase"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Bundle"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-66c8856b-ba11-4876-8aa8-467aad8c11a2.html"}],"reference":{"reference":"Bundle/66c8856b-ba11-4876-8aa8-467aad8c11a2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-bilirubin.html"}],"reference":{"reference":"Observation/urine-bilirubin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Condition"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Condition-hc1.html"}],"reference":{"reference":"Condition/hc1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-sediment.html"}],"reference":{"reference":"Observation/urine-sediment"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Immunization"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Immunization-imm-1.html"}],"reference":{"reference":"Immunization/imm-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-pediatric-wt-example.html"}],"reference":{"reference":"Observation/pediatric-wt-example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Organization"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-saint-luke-w-endpoint.html"}],"reference":{"reference":"Organization/saint-luke-w-endpoint"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-ph.html"}],"reference":{"reference":"Observation/urine-ph"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Encounter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Encounter-example-1.html"}],"reference":{"reference":"Encounter/example-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-chest-xray-report.html"}],"reference":{"reference":"DiagnosticReport/chest-xray-report"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-sodium.html"}],"reference":{"reference":"Observation/serum-sodium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-cbc.html"}],"reference":{"reference":"DiagnosticReport/cbc"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-potassium.html"}],"reference":{"reference":"Observation/serum-potassium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Encounter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Encounter-1036.html"}],"reference":{"reference":"Encounter/1036"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-some-day-smoker.html"}],"reference":{"reference":"Observation/some-day-smoker"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Location"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Location-hl7east.html"}],"reference":{"reference":"Location/hl7east"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-co2.html"}],"reference":{"reference":"Observation/serum-co2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-protein.html"}],"reference":{"reference":"Observation/urine-protein"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Procedure"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Procedure-defib-implant.html"}],"reference":{"reference":"Procedure/defib-implant"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-usg.html"}],"reference":{"reference":"Observation/usg"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-chloride.html"}],"reference":{"reference":"Observation/serum-chloride"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-calcium.html"}],"reference":{"reference":"Observation/serum-calcium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-color.html"}],"reference":{"reference":"Observation/urine-color"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bp-data-absent.html"}],"reference":{"reference":"Observation/bp-data-absent"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Patient"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Patient-example.html"}],"reference":{"reference":"Patient/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-temperature.html"}],"reference":{"reference":"Observation/temperature"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bmi.html"}],"reference":{"reference":"Observation/bmi"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Medication"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Medication-uscore-med2.html"}],"reference":{"reference":"Medication/uscore-med2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-cells.html"}],"reference":{"reference":"Observation/urine-cells"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-length.html"}],"reference":{"reference":"Observation/length"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Device"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Device-udi-2.html"}],"reference":{"reference":"Device/udi-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"MedicationRequest"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationRequest-uscore-mo1.html"}],"reference":{"reference":"MedicationRequest/uscore-mo1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Practitioner"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Practitioner-practitioner-2.html"}],"reference":{"reference":"Practitioner/practitioner-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Goal"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Goal-goal-1.html"}],"reference":{"reference":"Goal/goal-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-rbcs.html"}],"reference":{"reference":"Observation/urine-rbcs"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urobilinogen.html"}],"reference":{"reference":"Observation/urobilinogen"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Medication"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Medication-uscore-med1.html"}],"reference":{"reference":"Medication/uscore-med1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-bacteria.html"}],"reference":{"reference":"Observation/urine-bacteria"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Bundle"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-uscore-mo3.html"}],"reference":{"reference":"Bundle/uscore-mo3"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-head-circumference.html"}],"reference":{"reference":"Observation/head-circumference"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"MedicationRequest"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationRequest-self-tylenol.html"}],"reference":{"reference":"MedicationRequest/self-tylenol"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-metabolic-panel.html"}],"reference":{"reference":"DiagnosticReport/metabolic-panel"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Device"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Device-udi-3.html"}],"reference":{"reference":"Device/udi-3"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"MedicationRequest"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationRequest-uscore-mo2.html"}],"reference":{"reference":"MedicationRequest/uscore-mo2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Bundle"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-c887e62f-6166-419f-8268-b5ecd6c7b901.html"}],"reference":{"reference":"Bundle/c887e62f-6166-419f-8268-b5ecd6c7b901"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bun.html"}],"reference":{"reference":"Observation/bun"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Practitioner"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Practitioner-practitioner-1.html"}],"reference":{"reference":"Practitioner/practitioner-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-neutrophils.html"}],"reference":{"reference":"Observation/neutrophils"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-nitrite.html"}],"reference":{"reference":"Observation/urine-nitrite"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-oxygen-saturation.html"}],"reference":{"reference":"Observation/oxygen-saturation"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-cardiology-report.html"}],"reference":{"reference":"DiagnosticReport/cardiology-report"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-vitals-panel.html"}],"reference":{"reference":"Observation/vitals-panel"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-blood-pressure.html"}],"reference":{"reference":"Observation/blood-pressure"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-wbcs.html"}],"reference":{"reference":"Observation/urine-wbcs"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-height.html"}],"reference":{"reference":"Observation/height"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Organization"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-acme-lab.html"}],"reference":{"reference":"Organization/acme-lab"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Device"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Device-udi-1.html"}],"reference":{"reference":"Device/udi-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-hemoglobin.html"}],"reference":{"reference":"Observation/hemoglobin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DocumentReference"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DocumentReference-episode-summary.html"}],"reference":{"reference":"DocumentReference/episode-summary"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-hemoglobin.html"}],"reference":{"reference":"Observation/urine-hemoglobin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-heart-rate.html"}],"reference":{"reference":"Observation/heart-rate"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-epi-cells.html"}],"reference":{"reference":"Observation/urine-epi-cells"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"AllergyIntolerance"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"AllergyIntolerance-example.html"}],"reference":{"reference":"AllergyIntolerance/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-blood-glucose.html"}],"reference":{"reference":"Observation/blood-glucose"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-urinalysis.html"}],"reference":{"reference":"DiagnosticReport/urinalysis"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Condition"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Condition-example.html"}],"reference":{"reference":"Condition/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-creatinine.html"}],"reference":{"reference":"Observation/serum-creatinine"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-satO2-fiO2.html"}],"reference":{"reference":"Observation/satO2-fiO2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-total-bilirubin.html"}],"reference":{"reference":"Observation/serum-total-bilirubin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-pediatric-bmi-example.html"}],"reference":{"reference":"Observation/pediatric-bmi-example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Organization"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-example-organization-2.html"}],"reference":{"reference":"Organization/example-organization-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-weight.html"}],"reference":{"reference":"Observation/weight"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-mchc.html"}],"reference":{"reference":"Observation/mchc"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-clarity.html"}],"reference":{"reference":"Observation/urine-clarity"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CarePlan"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CarePlan-colonoscopy.html"}],"reference":{"reference":"CarePlan/colonoscopy"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-erythrocytes.html"}],"reference":{"reference":"Observation/erythrocytes"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-ketone.html"}],"reference":{"reference":"Observation/urine-ketone"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-respiratory-rate.html"}],"reference":{"reference":"Observation/respiratory-rate"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-medication-codes.html"}],"reference":{"reference":"ValueSet/us-core-medication-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-immunization.html"}],"reference":{"reference":"StructureDefinition/us-core-immunization"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-state.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-state"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitionerrole-practitioner.html"}],"reference":{"reference":"SearchParameter/us-core-practitionerrole-practitioner"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-smokingstatus.html"}],"reference":{"reference":"ValueSet/us-core-observation-smokingstatus"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-omb-race-category.html"}],"reference":{"reference":"ValueSet/omb-race-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-practitionerrole.html"}],"reference":{"reference":"StructureDefinition/us-core-practitionerrole"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-allergy-substance.html"}],"reference":{"reference":"ValueSet/us-core-allergy-substance"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-narrative-status.html"}],"reference":{"reference":"ValueSet/us-core-narrative-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-cdcrec.html"}],"reference":{"reference":"CodeSystem/cdcrec"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-organization-name.html"}],"reference":{"reference":"SearchParameter/us-core-organization-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-observation-lab.html"}],"reference":{"reference":"StructureDefinition/us-core-observation-lab"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-code.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-pediatric-bmi-for-age.html"}],"reference":{"reference":"StructureDefinition/pediatric-bmi-for-age"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-allergyintolerance.html"}],"reference":{"reference":"StructureDefinition/us-core-allergyintolerance"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-lifecycle-status.html"}],"reference":{"reference":"SearchParameter/us-core-goal-lifecycle-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-code.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-documentreference-type.html"}],"reference":{"reference":"ValueSet/us-core-documentreference-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-provenance-participant-type.html"}],"reference":{"reference":"ValueSet/us-core-provenance-participant-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-gender.html"}],"reference":{"reference":"SearchParameter/us-core-patient-gender"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-practitioner.html"}],"reference":{"reference":"StructureDefinition/us-core-practitioner"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-diagnosticreport-note.html"}],"reference":{"reference":"StructureDefinition/us-core-diagnosticreport-note"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-omb-ethnicity-category.html"}],"reference":{"reference":"ValueSet/omb-ethnicity-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-provenance.html"}],"reference":{"reference":"StructureDefinition/us-core-provenance"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"OperationDefinition"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"OperationDefinition-docref.html"}],"reference":{"reference":"OperationDefinition/docref"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-clinical-status.html"}],"reference":{"reference":"SearchParameter/us-core-condition-clinical-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:extension"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-birthsex.html"}],"reference":{"reference":"StructureDefinition/us-core-birthsex"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-id.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-category.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-class.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-class"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-patient.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CapabilityStatement"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CapabilityStatement-us-core-server.html"}],"reference":{"reference":"CapabilityStatement/us-core-server"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-condition-category.html"}],"reference":{"reference":"ValueSet/us-core-condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-detailed-ethnicity.html"}],"reference":{"reference":"ValueSet/detailed-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-patient.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-encounter.html"}],"reference":{"reference":"StructureDefinition/us-core-encounter"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-ndc-vaccine-codes.html"}],"reference":{"reference":"ValueSet/us-core-ndc-vaccine-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-patient.html"}],"reference":{"reference":"StructureDefinition/us-core-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-date.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-procedure-icd10pcs.html"}],"reference":{"reference":"ValueSet/us-core-procedure-icd10pcs"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-provider-specialty.html"}],"reference":{"reference":"ValueSet/us-core-provider-specialty"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-date.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-vaccines-cvx.html"}],"reference":{"reference":"ValueSet/us-core-vaccines-cvx"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-pulse-oximetry.html"}],"reference":{"reference":"StructureDefinition/us-core-pulse-oximetry"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-allergyintolerance-clinical-status.html"}],"reference":{"reference":"SearchParameter/us-core-allergyintolerance-clinical-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-date.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-intent.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-intent"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-location.html"}],"reference":{"reference":"StructureDefinition/us-core-location"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address.html"}],"reference":{"reference":"SearchParameter/us-core-location-address"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-smoking-status-status.html"}],"reference":{"reference":"ValueSet/us-core-observation-smoking-status-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-usps-state.html"}],"reference":{"reference":"ValueSet/us-core-usps-state"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitioner-name.html"}],"reference":{"reference":"SearchParameter/us-core-practitioner-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-encounter-type.html"}],"reference":{"reference":"ValueSet/us-core-encounter-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-period.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-period"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-code.html"}],"reference":{"reference":"SearchParameter/us-core-observation-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-name.html"}],"reference":{"reference":"SearchParameter/us-core-location-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-onset-date.html"}],"reference":{"reference":"SearchParameter/us-core-condition-onset-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-given.html"}],"reference":{"reference":"SearchParameter/us-core-patient-given"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-procedure.html"}],"reference":{"reference":"StructureDefinition/us-core-procedure"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-type.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-problem.html"}],"reference":{"reference":"ValueSet/us-core-problem"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-condition-category.html"}],"reference":{"reference":"CodeSystem/condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-encounter.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-encounter"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-patient.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-organization-address.html"}],"reference":{"reference":"SearchParameter/us-core-organization-address"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-category.html"}],"reference":{"reference":"SearchParameter/us-core-observation-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-medication.html"}],"reference":{"reference":"StructureDefinition/us-core-medication"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-status.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-date.html"}],"reference":{"reference":"SearchParameter/us-core-observation-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-birthsex.html"}],"reference":{"reference":"ValueSet/birthsex"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-category.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-status.html"}],"reference":{"reference":"SearchParameter/us-core-observation-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-report-and-note-codes.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-report-and-note-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-provider-role.html"}],"reference":{"reference":"ValueSet/us-core-provider-role"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-ethnicity.html"}],"reference":{"reference":"SearchParameter/us-core-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-documentreference.html"}],"reference":{"reference":"StructureDefinition/us-core-documentreference"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:extension"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-direct.html"}],"reference":{"reference":"StructureDefinition/us-core-direct"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-smoking-status-observation-codes.html"}],"reference":{"reference":"ValueSet/us-core-smoking-status-observation-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-careteam-provider-roles.html"}],"reference":{"reference":"ValueSet/us-core-careteam-provider-roles"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-type.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-date.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-category.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-birthdate.html"}],"reference":{"reference":"SearchParameter/us-core-patient-birthdate"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-careteam.html"}],"reference":{"reference":"StructureDefinition/us-core-careteam"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-status.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-clinical-note-type.html"}],"reference":{"reference":"ValueSet/us-core-clinical-note-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-status.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ConceptMap"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ConceptMap-ndc-cvx.html"}],"reference":{"reference":"ConceptMap/ndc-cvx"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:extension"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-ethnicity.html"}],"reference":{"reference":"StructureDefinition/us-core-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-status.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-careplan.html"}],"reference":{"reference":"StructureDefinition/us-core-careplan"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-patient.html"}],"reference":{"reference":"SearchParameter/us-core-condition-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-allergyintolerance-patient.html"}],"reference":{"reference":"SearchParameter/us-core-allergyintolerance-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-device-patient.html"}],"reference":{"reference":"SearchParameter/us-core-device-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-code.html"}],"reference":{"reference":"SearchParameter/us-core-condition-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-patient.html"}],"reference":{"reference":"SearchParameter/us-core-observation-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-race.html"}],"reference":{"reference":"SearchParameter/us-core-race"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-patient.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-family.html"}],"reference":{"reference":"SearchParameter/us-core-patient-family"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-smokingstatus.html"}],"reference":{"reference":"StructureDefinition/us-core-smokingstatus"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-status.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:extension"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-race.html"}],"reference":{"reference":"StructureDefinition/us-core-race"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-postalcode.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-postalcode"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-id.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-authoredon.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-authoredon"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-status.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-documentreference-category.html"}],"reference":{"reference":"ValueSet/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-patient.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-target-date.html"}],"reference":{"reference":"SearchParameter/us-core-goal-target-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-patient.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-date.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careteam-patient.html"}],"reference":{"reference":"SearchParameter/us-core-careteam-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-organization.html"}],"reference":{"reference":"StructureDefinition/us-core-organization"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-date.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitionerrole-specialty.html"}],"reference":{"reference":"SearchParameter/us-core-practitionerrole-specialty"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-name.html"}],"reference":{"reference":"SearchParameter/us-core-patient-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-device-type.html"}],"reference":{"reference":"SearchParameter/us-core-device-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-procedure-code.html"}],"reference":{"reference":"ValueSet/us-core-procedure-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-diagnosticreport-lab.html"}],"reference":{"reference":"StructureDefinition/us-core-diagnosticreport-lab"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-patient.html"}],"reference":{"reference":"SearchParameter/us-core-goal-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-simple-language.html"}],"reference":{"reference":"ValueSet/simple-language"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-patient.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-condition.html"}],"reference":{"reference":"StructureDefinition/us-core-condition"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-pediatric-weight-for-height.html"}],"reference":{"reference":"StructureDefinition/pediatric-weight-for-height"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-value-codes.html"}],"reference":{"reference":"ValueSet/us-core-observation-value-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-id.html"}],"reference":{"reference":"SearchParameter/us-core-patient-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-city.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-city"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-goal.html"}],"reference":{"reference":"StructureDefinition/us-core-goal"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careteam-status.html"}],"reference":{"reference":"SearchParameter/us-core-careteam-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-us-core-documentreference-category.html"}],"reference":{"reference":"CodeSystem/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-us-core-provenance-participant-type.html"}],"reference":{"reference":"CodeSystem/us-core-provenance-participant-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-lab-codes.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-lab-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-careplan-category.html"}],"reference":{"reference":"CodeSystem/careplan-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-category.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CapabilityStatement"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CapabilityStatement-us-core-client.html"}],"reference":{"reference":"CapabilityStatement/us-core-client"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitioner-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-practitioner-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-patient-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-category.html"}],"reference":{"reference":"SearchParameter/us-core-condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-status.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-medicationrequest.html"}],"reference":{"reference":"StructureDefinition/us-core-medicationrequest"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-implantable-device.html"}],"reference":{"reference":"StructureDefinition/us-core-implantable-device"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-detailed-race.html"}],"reference":{"reference":"ValueSet/detailed-race"},"exampleBoolean":false}],"page":{"nameUrl":"index.html","title":"Home","generation":"markdown","page":[{"nameUrl":"guidance.html","title":"Guidance","generation":"markdown","page":[{"nameUrl":"general-guidance.html","title":"General Guidance","generation":"markdown"},{"nameUrl":"clinical-notes-guidance.html","title":"Clinical Notes Guidance","generation":"markdown"},{"nameUrl":"all-meds.html","title":"Medication List Guidance","generation":"markdown"},{"nameUrl":"basic-provenance.html","title":"Basic Provenance","generation":"markdown"},{"nameUrl":"r2-r4-guidance.html","title":"DSTU2 to R4 Conversion","generation":"markdown"},{"nameUrl":"future-of-us-core.html","title":"Future of US Core","generation":"markdown"}]},{"nameUrl":"profiles.html","title":"Profiles and Extensions","generation":"markdown","page":[{"nameUrl":"StructureDefinition-us-core-immunization.html","title":"StructureDefinition US Core Immunization","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-practitionerrole.html","title":"StructureDefinition US Core PractitionerRole","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-observation-lab.html","title":"StructureDefinition US Core Observation Lab","generation":"generated"},{"nameUrl":"StructureDefinition-pediatric-bmi-for-age.html","title":"StructureDefinition Pediatric Bmi For Age","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-allergyintolerance.html","title":"StructureDefinition US Core AllergyIntolerance","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-practitioner.html","title":"StructureDefinition US Core Practitioner","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-diagnosticreport-note.html","title":"StructureDefinition US Core DiagnosticReport Note","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-provenance.html","title":"StructureDefinition US Core Provenance","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-birthsex.html","title":"StructureDefinition US Core Birthsex","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-encounter.html","title":"StructureDefinition US Core Encounter","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-patient.html","title":"StructureDefinition US Core Patient","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-pulse-oximetry.html","title":"StructureDefinition US Core Pulse Oximetry","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-location.html","title":"StructureDefinition US Core Location","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-procedure.html","title":"StructureDefinition US Core Procedure","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-medication.html","title":"StructureDefinition US Core Medication","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-documentreference.html","title":"StructureDefinition US Core DocumentReference","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-direct.html","title":"StructureDefinition US Core Direct","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-careteam.html","title":"StructureDefinition US Core CareTeam","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-ethnicity.html","title":"StructureDefinition US Core Ethnicity","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-careplan.html","title":"StructureDefinition US Core CarePlan","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-smokingstatus.html","title":"StructureDefinition US Core Smokingstatus","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-race.html","title":"StructureDefinition US Core Race","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-organization.html","title":"StructureDefinition US Core Organization","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-diagnosticreport-lab.html","title":"StructureDefinition US Core DiagnosticReport Lab","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-condition.html","title":"StructureDefinition US Core Condition","generation":"generated"},{"nameUrl":"StructureDefinition-pediatric-weight-for-height.html","title":"StructureDefinition Pediatric Weight For Height","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-goal.html","title":"StructureDefinition US Core Goal","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-medicationrequest.html","title":"StructureDefinition US Core MedicationRequest","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-implantable-device.html","title":"StructureDefinition US Core Implantable Device","generation":"generated"}]},{"nameUrl":"operations.html","title":"Operations","generation":"markdown","page":[{"nameUrl":"OperationDefinition-docref.html","title":"OperationDefinition Docref","generation":"generated"}]},{"nameUrl":"terminology.html","title":"Terminology","generation":"markdown","page":[{"nameUrl":"ValueSet-us-core-medication-codes.html","title":"ValueSet US Core Medication Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-smokingstatus.html","title":"ValueSet US Core Observation Smokingstatus","generation":"generated"},{"nameUrl":"ValueSet-omb-race-category.html","title":"ValueSet Omb Race Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-allergy-substance.html","title":"ValueSet US Core Allergy Substance","generation":"generated"},{"nameUrl":"ValueSet-us-core-narrative-status.html","title":"ValueSet US Core Narrative Status","generation":"generated"},{"nameUrl":"ValueSet-us-core-documentreference-type.html","title":"ValueSet US Core DocumentReference Type","generation":"generated"},{"nameUrl":"ValueSet-omb-ethnicity-category.html","title":"ValueSet Omb Ethnicity Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-condition-category.html","title":"ValueSet US Core Condition Category","generation":"generated"},{"nameUrl":"ValueSet-detailed-ethnicity.html","title":"ValueSet Detailed Ethnicity","generation":"generated"},{"nameUrl":"ValueSet-us-core-ndc-vaccine-codes.html","title":"ValueSet US Core Ndc Vaccine Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-procedure-icd10pcs.html","title":"ValueSet US Core Procedure Icd10pcs","generation":"generated"},{"nameUrl":"ValueSet-us-core-provider-specialty.html","title":"ValueSet US Core Provider Specialty","generation":"generated"},{"nameUrl":"ValueSet-us-core-vaccines-cvx.html","title":"ValueSet US Core Vaccines Cvx","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-smoking-status-status.html","title":"ValueSet US Core Observation Smoking Status Status","generation":"generated"},{"nameUrl":"ValueSet-us-core-usps-state.html","title":"ValueSet US Core Usps State","generation":"generated"},{"nameUrl":"ValueSet-us-core-encounter-type.html","title":"ValueSet US Core Encounter Type","generation":"generated"},{"nameUrl":"ValueSet-us-core-problem.html","title":"ValueSet US Core Problem","generation":"generated"},{"nameUrl":"ValueSet-birthsex.html","title":"ValueSet Birthsex","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-report-and-note-codes.html","title":"ValueSet US Core DiagnosticReport Report And Note Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-provider-role.html","title":"ValueSet US Core Provider Role","generation":"generated"},{"nameUrl":"ValueSet-us-core-smoking-status-observation-codes.html","title":"ValueSet US Core Smoking Status Observation Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-careteam-provider-roles.html","title":"ValueSet US Core CareTeam Provider Roles","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-category.html","title":"ValueSet US Core DiagnosticReport Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-clinical-note-type.html","title":"ValueSet US Core Clinical Note Type","generation":"generated"},{"nameUrl":"ValueSet-us-core-documentreference-category.html","title":"ValueSet US Core DocumentReference Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-procedure-code.html","title":"ValueSet US Core Procedure Code","generation":"generated"},{"nameUrl":"ValueSet-simple-language.html","title":"ValueSet Simple Language","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-value-codes.html","title":"ValueSet US Core Observation Value Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-lab-codes.html","title":"ValueSet US Core DiagnosticReport Lab Codes","generation":"generated"},{"nameUrl":"ValueSet-detailed-race.html","title":"ValueSet Detailed Race","generation":"generated"},{"nameUrl":"CodeSystem-cdcrec.html","title":"CodeSystem Cdcrec","generation":"generated"},{"nameUrl":"CodeSystem-condition-category.html","title":"CodeSystem Condition Category","generation":"generated"},{"nameUrl":"CodeSystem-us-core-documentreference-category.html","title":"CodeSystem US Core DocumentReference Category","generation":"generated"},{"nameUrl":"CodeSystem-careplan-category.html","title":"CodeSystem CarePlan Category","generation":"generated"},{"nameUrl":"ConceptMap-ndc-cvx.html","title":"ConceptMap Ndc Cvx","generation":"generated"}]},{"nameUrl":"searchparameters.html","title":"Search Parameters","generation":"markdown","page":[{"nameUrl":"SearchParameter-us-core-location-address-state.html","title":"SearchParameter US Core Location Address State","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitionerrole-practitioner.html","title":"SearchParameter US Core PractitionerRole Practitioner","generation":"generated"},{"nameUrl":"SearchParameter-us-core-organization-name.html","title":"SearchParameter US Core Organization Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-code.html","title":"SearchParameter US Core DiagnosticReport Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-lifecycle-status.html","title":"SearchParameter US Core Goal Lifecycle Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-code.html","title":"SearchParameter US Core Procedure Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-gender.html","title":"SearchParameter US Core Patient Gender","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-clinical-status.html","title":"SearchParameter US Core Condition Clinical Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-id.html","title":"SearchParameter US Core DocumentReference Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-category.html","title":"SearchParameter US Core CarePlan Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-class.html","title":"SearchParameter US Core Encounter Class","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-patient.html","title":"SearchParameter US Core MedicationRequest Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-patient.html","title":"SearchParameter US Core DocumentReference Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-date.html","title":"SearchParameter US Core DiagnosticReport Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-date.html","title":"SearchParameter US Core Procedure Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-allergyintolerance-clinical-status.html","title":"SearchParameter US Core AllergyIntolerance Clinical Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-date.html","title":"SearchParameter US Core DocumentReference Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-intent.html","title":"SearchParameter US Core MedicationRequest Intent","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address.html","title":"SearchParameter US Core Location Address","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitioner-name.html","title":"SearchParameter US Core Practitioner Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-period.html","title":"SearchParameter US Core DocumentReference Period","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-code.html","title":"SearchParameter US Core Observation Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-name.html","title":"SearchParameter US Core Location Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-onset-date.html","title":"SearchParameter US Core Condition Onset Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-given.html","title":"SearchParameter US Core Patient Given","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-type.html","title":"SearchParameter US Core Encounter Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-encounter.html","title":"SearchParameter US Core MedicationRequest Encounter","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-patient.html","title":"SearchParameter US Core Encounter Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-organization-address.html","title":"SearchParameter US Core Organization Address","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-category.html","title":"SearchParameter US Core Observation Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-status.html","title":"SearchParameter US Core DiagnosticReport Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-date.html","title":"SearchParameter US Core Observation Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-category.html","title":"SearchParameter US Core DiagnosticReport Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-status.html","title":"SearchParameter US Core Observation Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-ethnicity.html","title":"SearchParameter US Core Ethnicity","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-type.html","title":"SearchParameter US Core DocumentReference Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-date.html","title":"SearchParameter US Core Encounter Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-birthdate.html","title":"SearchParameter US Core Patient Birthdate","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-status.html","title":"SearchParameter US Core Procedure Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-status.html","title":"SearchParameter US Core Encounter Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-status.html","title":"SearchParameter US Core CarePlan Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-patient.html","title":"SearchParameter US Core Condition Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-allergyintolerance-patient.html","title":"SearchParameter US Core AllergyIntolerance Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-device-patient.html","title":"SearchParameter US Core Device Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-code.html","title":"SearchParameter US Core Condition Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-patient.html","title":"SearchParameter US Core Observation Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-race.html","title":"SearchParameter US Core Race","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-patient.html","title":"SearchParameter US Core CarePlan Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-family.html","title":"SearchParameter US Core Patient Family","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-status.html","title":"SearchParameter US Core MedicationRequest Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address-postalcode.html","title":"SearchParameter US Core Location Address Postalcode","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-id.html","title":"SearchParameter US Core Encounter Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-authoredon.html","title":"SearchParameter US Core MedicationRequest Authoredon","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-status.html","title":"SearchParameter US Core DocumentReference Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-patient.html","title":"SearchParameter US Core Procedure Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-target-date.html","title":"SearchParameter US Core Goal Target Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-patient.html","title":"SearchParameter US Core DiagnosticReport Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-date.html","title":"SearchParameter US Core CarePlan Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careteam-patient.html","title":"SearchParameter US Core CareTeam Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-date.html","title":"SearchParameter US Core Immunization Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-identifier.html","title":"SearchParameter US Core Encounter Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitionerrole-specialty.html","title":"SearchParameter US Core PractitionerRole Specialty","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-name.html","title":"SearchParameter US Core Patient Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-device-type.html","title":"SearchParameter US Core Device Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-patient.html","title":"SearchParameter US Core Goal Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-patient.html","title":"SearchParameter US Core Immunization Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-id.html","title":"SearchParameter US Core Patient Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address-city.html","title":"SearchParameter US Core Location Address City","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careteam-status.html","title":"SearchParameter US Core CareTeam Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-category.html","title":"SearchParameter US Core DocumentReference Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitioner-identifier.html","title":"SearchParameter US Core Practitioner Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-identifier.html","title":"SearchParameter US Core Patient Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-category.html","title":"SearchParameter US Core Condition Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-status.html","title":"SearchParameter US Core Immunization Status","generation":"generated"}]},{"nameUrl":"capstatements.html","title":"Capability Statements","generation":"markdown","page":[{"nameUrl":"CapabilityStatement-us-core-server.html","title":"CapabilityStatement US Core Server","generation":"generated"},{"nameUrl":"CapabilityStatement-us-core-client.html","title":"CapabilityStatement US Core Client","generation":"generated"}]},{"nameUrl":"security.html","title":"Security","generation":"markdown"},{"nameUrl":"downloads.html","title":"Downloads","generation":"markdown"},{"nameUrl":"all-examples.html","title":"All Examples","generation":"markdown"},{"nameUrl":"toc.html","title":"Table of Contents","generation":"html"}]}}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/OperationDefinition-docref.json b/resources/uscore_v3.0.1/OperationDefinition-docref.json new file mode 100644 index 000000000..3b2141d31 --- /dev/null +++ b/resources/uscore_v3.0.1/OperationDefinition-docref.json @@ -0,0 +1 @@ +{"resourceType":"OperationDefinition","id":"docref","text":{"status":"generated","div":"

    USCoreFetchDocumentReferences

    OPERATION: USCoreFetchDocumentReferences

    The official URL for this operation definition is:

    http://hl7.org/fhir/us/core/OperationDefinition/docref

    This operation is used to return all the references to documents related to a patient.

    \n

    The operation takes the optional input parameters:

    \n
      \n
    • patient id
    • \n
    • start date
    • \n
    • end date
    • \n
    • document type
    • \n
    \n

    and returns a Bundle of type "searchset" containing US Core DocumentReference Profiles for the patient. If the server has or can create documents that are related to the patient, and that are available for the given user, the server returns the DocumentReference profiles needed to support the records. The principle intended use for this operation is to provide a provider or patient with access to their available document information.

    \n

    This operation is different from a search by patient and type and date range because:

    \n
      \n
    1. \n

      It is used to request a server generate a document based on the specified parameters.

      \n
    2. \n
    3. \n

      If no parameters are specified, the server SHALL return a DocumentReference to the patient's most current CCD

      \n
    4. \n
    5. \n

      If the server cannot generate a document based on the specified parameters, the operation will return an empty search bundle.

      \n
    6. \n
    \n

    This operation is the same as a FHIR RESTful search by patient,type and date range because:

    \n
      \n
    1. References for existing documents that meet the requirements of the request SHOULD also be returned unless the client indicates they are only interested in 'on-demand' documents using the on-demand parameter.
    2. \n
    \n

    Parameters

    UseNameCardinalityTypeBindingDocumentation
    INpatient1..1id

    The id of the patient resource located on the server on which this operation is executed. If there is no match, an empty Bundle is returned

    \n
    INstart0..1date

    The date range relates to care dates, not record currency dates - e.g. all records relating to care provided in a certain date range. If no start date is provided, all documents prior to the end date are in scope. If neither a start date nor an end date is provided, the most recent or current document is in scope.

    \n
    INend0..1date

    The date range relates to care dates, not record currency dates - e.g. all records relating to care provided in a certain date range. If no end date is provided, all documents subsequent to the start date are in scope. If neither a start date nor an end date is provided, the most recent or current document is in scope

    \n
    INtype0..1CodeableConcepthttp://hl7.org/fhir/ValueSet/c80-doc-typecodes (Required)

    The type relates to document type e.g. for the LOINC code for a C-CDA Clinical Summary of Care (CCD) is 34133-9 (Summary of episode note). If no type is provided, the CCD document, if available, SHALL be in scope and all other document types MAY be in scope

    \n
    INon-demand0..1boolean

    This on-demand parameter allows client to dictate whether they are requesting only ‘on-demand’ or both ‘on-demand’ and 'stable' documents (or delayed/deferred assembly) that meet the query parameters

    \n
    OUTreturn1..1Bundle

    The bundle type is "searchset"containing US Core DocumentReference Profiles

    \n
      \n
    • \n

      The server is responsible for determining what resources, if any, to return as included resources rather than the client specifying which ones. This frees the client from needing to determine what it could or should ask for. For example, the server may return the referenced document as an included FHIR Binary resource within the return bundle. The server's CapabilityStatement should document this behavior.

      \n
    • \n
    • \n

      The document itself can be subsequently retrieved using the link provided in the DocumentReference.content.attachment.url element. The link could be a FHIR endpoint to a Binary Resource or some other document repository.

      \n
    • \n
    • \n

      It is assumed that the server has identified and secured the context appropriately, and can either associate the authorization context with a single patient, or determine whether the context has the rights to the nominated patient, if there is one. If there is no nominated patient (e.g. the operation is invoked at the system level) and the context is not associated with a single patient record, then the server should return an error. Specifying the relationship between the context, a user and patient records is outside the scope of this specification

      \n
    • \n
    \n
    "},"url":"http://hl7.org/fhir/us/core/OperationDefinition/docref","name":"USCoreFetchDocumentReferences","title":"US Core Fetch DocumentReferences","status":"active","kind":"operation","date":"2019-05-21T00:00:00+00:00","publisher":"US Core Project","description":"This operation is used to return all the references to documents related to a patient. \n\n The operation takes the optional input parameters: \n - patient id\n - start date\n - end date\n - document type \n\n and returns a [Bundle](http://hl7.org/fhir/bundle.html) of type \"searchset\" containing [US Core DocumentReference Profiles](http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference) for the patient. If the server has or can create documents that are related to the patient, and that are available for the given user, the server returns the DocumentReference profiles needed to support the records. The principle intended use for this operation is to provide a provider or patient with access to their available document information. \n\n This operation is *different* from a search by patient and type and date range because: \n\n 1. It is used to request a server *generate* a document based on the specified parameters. \n\n 1. If no parameters are specified, the server SHALL return a DocumentReference to the patient's most current CCD \n\n 1. If the server cannot *generate* a document based on the specified parameters, the operation will return an empty search bundle. \n\n This operation is the *same* as a FHIR RESTful search by patient,type and date range because: \n\n 1. References for *existing* documents that meet the requirements of the request SHOULD also be returned unless the client indicates they are only interested in 'on-demand' documents using the *on-demand* parameter.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"docref","comment":" - The server is responsible for determining what resources, if any, to return as [included](http://hl7.org/fhir/R4/search.html#revinclude) resources rather than the client specifying which ones. This frees the client from needing to determine what it could or should ask for. For example, the server may return the referenced document as an included FHIR Binary resource within the return bundle. The server's CapabilityStatement should document this behavior. \n\n - The document itself can be subsequently retrieved using the link provided in the `DocumentReference.content.attachment.url element`. The link could be a FHIR endpoint to a [Binary](http://hl7.org/fhir/R4/binary.html) Resource or some other document repository. \n\n - It is assumed that the server has identified and secured the context appropriately, and can either associate the authorization context with a single patient, or determine whether the context has the rights to the nominated patient, if there is one. If there is no nominated patient (e.g. the operation is invoked at the system level) and the context is not associated with a single patient record, then the server should return an error. Specifying the relationship between the context, a user and patient records is outside the scope of this specification","system":false,"type":true,"instance":false,"parameter":[{"name":"patient","use":"in","min":1,"max":"1","documentation":"The id of the patient resource located on the server on which this operation is executed. If there is no match, an empty Bundle is returned","type":"id"},{"name":"start","use":"in","min":0,"max":"1","documentation":"The date range relates to care dates, not record currency dates - e.g. all records relating to care provided in a certain date range. If no start date is provided, all documents prior to the end date are in scope. If neither a start date nor an end date is provided, the most recent or current document is in scope.","type":"date"},{"name":"end","use":"in","min":0,"max":"1","documentation":"The date range relates to care dates, not record currency dates - e.g. all records relating to care provided in a certain date range. If no end date is provided, all documents subsequent to the start date are in scope. If neither a start date nor an end date is provided, the most recent or current document is in scope","type":"date"},{"name":"type","use":"in","min":0,"max":"1","documentation":"The type relates to document type e.g. for the LOINC code for a C-CDA Clinical Summary of Care (CCD) is 34133-9 (Summary of episode note). If no type is provided, the CCD document, if available, SHALL be in scope and all other document types MAY be in scope","type":"CodeableConcept","binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/c80-doc-typecodes"}},{"name":"on-demand","use":"in","min":0,"max":"1","documentation":"This on-demand parameter allows client to dictate whether they are requesting only ‘on-demand’ or both ‘on-demand’ and 'stable' documents (or delayed/deferred assembly) that meet the query parameters","type":"boolean"},{"name":"return","use":"out","min":1,"max":"1","documentation":"The bundle type is \"searchset\"containing [US Core DocumentReference Profiles](http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference)","type":"Bundle"}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-allergyintolerance-clinical-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-allergyintolerance-clinical-status.json new file mode 100644 index 000000000..e2be5ea46 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-allergyintolerance-clinical-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-allergyintolerance-clinical-status","text":{"status":"generated","div":"

    SearchParameter: USCoreAllergyintoleranceClinicalStatus

    description : active | inactive | resolved
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-allergyintolerance-clinical-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-allergyintolerance-clinical-status\n\t\t\t

    version : 4.1.0

    name : USCoreAllergyintoleranceClinicalStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/AllergyIntolerance-clinical-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : clinical-status\n\t\t\t

    base :AllergyIntolerance

    type : token

    expression : AllergyIntolerance.clinicalStatus\n\t\t\t

    xpath : f:AllergyIntolerance/f:clinicalStatus\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-allergyintolerance-clinical-status","version":"3.0.1","name":"USCoreAllergyintoleranceClinicalStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/AllergyIntolerance-clinical-status","status":"active","experimental":false,"date":"2019-08-26T20:15:50+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"active | inactive | resolved
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"clinical-status","base":["AllergyIntolerance"],"type":"token","expression":"AllergyIntolerance.clinicalStatus","xpath":"f:AllergyIntolerance/f:clinicalStatus","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-allergyintolerance-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-allergyintolerance-patient.json new file mode 100644 index 000000000..88d98998c --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-allergyintolerance-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-allergyintolerance-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreAllergyintolerancePatient

    description : Who the sensitivity is for
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-allergyintolerance-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-allergyintolerance-patient\n\t\t\t

    version : 4.1.0

    name : USCoreAllergyintolerancePatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :AllergyIntolerance

    type : reference

    expression : AllergyIntolerance.patient\n\t\t\t

    xpath : f:AllergyIntolerance/f:patient\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-allergyintolerance-patient","version":"3.0.1","name":"USCoreAllergyintolerancePatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Who the sensitivity is for
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["AllergyIntolerance"],"type":"reference","expression":"AllergyIntolerance.patient","xpath":"f:AllergyIntolerance/f:patient","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-category.json b/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-category.json new file mode 100644 index 000000000..c2eccf00f --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-category.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-careplan-category","text":{"status":"generated","div":"

    SearchParameter: USCoreCareplanCategory

    description : Type of plan
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-careplan-category

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-category\n\t\t\t

    version : 4.1.0

    name : USCoreCareplanCategory

    derivedFrom : http://hl7.org/fhir/SearchParameter/CarePlan-category\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : category\n\t\t\t

    base :CarePlan

    type : token

    expression : CarePlan.category\n\t\t\t

    xpath : f:CarePlan/f:category\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-category","version":"3.0.1","name":"USCoreCareplanCategory","derivedFrom":"http://hl7.org/fhir/SearchParameter/CarePlan-category","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Type of plan
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"category","base":["CarePlan"],"type":"token","expression":"CarePlan.category","xpath":"f:CarePlan/f:category","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-date.json new file mode 100644 index 000000000..a725322e8 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-date.json @@ -0,0 +1,142 @@ +{ + "id": "us-core-careplan-date", + "base": [ + "CarePlan" + ], + "code": "date", + "comparator": [ + "eq", + "ne", + "gt", + "lt", + "le", + "sa", + "eb", + "ap" + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.hl7.org/Special/committees/usrealm/index.cfm" + } + ] + } + ], + "date": "2019-08-26T20:15:53.722361Z", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/clinical-date", + "description": "Time period plan covers
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ", + "experimental": false, + "expression": "CarePlan.period", + "modifier": [ + "missing" + ], + "multipleAnd": true, + "multipleOr": true, + "name": "USCoreCareplanDate", + "publisher": "HL7 International - US Realm Steering Committee", + "status": "active", + "type": "date", + "url": "http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-date", + "version": "4.1.0", + "xpath": "f:CarePlan/f:period", + "xpathUsage": "normal", + "resourceType": "SearchParameter", + "_multipleOr": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + "_multipleAnd": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHOULD" + } + ] + }, + "_modifier": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "_comparator": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "text": { + "div": "

    SearchParameter: USCoreCareplanDate

    description : Time period plan covers

    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:

    \n - multipleAnd

    \n - multipleOr

    \n - modifier

    \n - comparator

    \n - chain

    \n



    id us-core-careplan-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-date\n\t\t\t

    version : 4.1.0

    name : USCoreCareplanDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : date\n\t\t\t

    base :CarePlan

    type : date

    expression : CarePlan.period\n\t\t\t

    xpath : f:CarePlan/f:period\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    ", + "status": "generated" + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-patient.json new file mode 100644 index 000000000..6390454d5 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-careplan-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreCareplanPatient

    description : Who the care plan is for
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-careplan-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-patient\n\t\t\t

    version : 4.1.0

    name : USCoreCareplanPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :CarePlan

    type : reference

    expression : CarePlan.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:CarePlan/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-patient","version":"3.0.1","name":"USCoreCareplanPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Who the care plan is for
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["CarePlan"],"type":"reference","expression":"CarePlan.subject.where(resolve() is Patient)","xpath":"f:CarePlan/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-status.json new file mode 100644 index 000000000..352135c7c --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-careplan-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-careplan-status","text":{"status":"generated","div":"

    SearchParameter: USCoreCareplanStatus

    description : draft | active | suspended | completed | entered-in-error | cancelled | unknown
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-careplan-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-status\n\t\t\t

    version : 4.1.0

    name : USCoreCareplanStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/CarePlan-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :CarePlan

    type : token

    expression : CarePlan.status\n\t\t\t

    xpath : f:CarePlan/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHALL)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careplan-status","version":"3.0.1","name":"USCoreCareplanStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/CarePlan-status","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"draft | active | suspended | completed | entered-in-error | cancelled | unknown
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["CarePlan"],"type":"token","expression":"CarePlan.status","xpath":"f:CarePlan/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-careteam-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-careteam-patient.json new file mode 100644 index 000000000..7786a7d39 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-careteam-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-careteam-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreCareteamPatient

    description : Who care team is for
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-careteam-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-careteam-patient\n\t\t\t

    version : 4.1.0

    name : USCoreCareteamPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :CareTeam

    type : reference

    expression : CareTeam.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:CareTeam/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careteam-patient","version":"3.0.1","name":"USCoreCareteamPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Who care team is for
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["CareTeam"],"type":"reference","expression":"CareTeam.subject.where(resolve() is Patient)","xpath":"f:CareTeam/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-careteam-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-careteam-status.json new file mode 100644 index 000000000..dae1bc131 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-careteam-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-careteam-status","text":{"status":"generated","div":"

    SearchParameter: USCoreCareteamStatus

    description : proposed | active | suspended | inactive | entered-in-error
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-careteam-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-careteam-status\n\t\t\t

    version : 4.1.0

    name : USCoreCareteamStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/CareTeam-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :CareTeam

    type : token

    expression : CareTeam.status\n\t\t\t

    xpath : f:CareTeam/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHALL)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-careteam-status","version":"3.0.1","name":"USCoreCareteamStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/CareTeam-status","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"proposed | active | suspended | inactive | entered-in-error
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["CareTeam"],"type":"token","expression":"CareTeam.status","xpath":"f:CareTeam/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-condition-category.json b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-category.json new file mode 100644 index 000000000..69ab92091 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-category.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-condition-category","text":{"status":"generated","div":"

    SearchParameter: USCoreConditionCategory

    description : The category of the condition
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-condition-category

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-category\n\t\t\t

    version : 4.1.0

    name : USCoreConditionCategory

    derivedFrom : http://hl7.org/fhir/SearchParameter/Condition-category\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : category\n\t\t\t

    base :Condition

    type : token

    expression : Condition.category\n\t\t\t

    xpath : f:Condition/f:category\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-category","version":"3.0.1","name":"USCoreConditionCategory","derivedFrom":"http://hl7.org/fhir/SearchParameter/Condition-category","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The category of the condition
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"category","base":["Condition"],"type":"token","expression":"Condition.category","xpath":"f:Condition/f:category","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-condition-clinical-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-clinical-status.json new file mode 100644 index 000000000..c03162aee --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-clinical-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-condition-clinical-status","text":{"status":"generated","div":"

    SearchParameter: USCoreConditionClinicalStatus

    description : The clinical status of the condition
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-condition-clinical-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-clinical-status\n\t\t\t

    version : 4.1.0

    name : USCoreConditionClinicalStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/Condition-clinical-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : clinical-status\n\t\t\t

    base :Condition

    type : token

    expression : Condition.clinicalStatus\n\t\t\t

    xpath : f:Condition/f:clinicalStatus\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-clinical-status","version":"3.0.1","name":"USCoreConditionClinicalStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/Condition-clinical-status","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The clinical status of the condition
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"clinical-status","base":["Condition"],"type":"token","expression":"Condition.clinicalStatus","xpath":"f:Condition/f:clinicalStatus","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-condition-code.json b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-code.json new file mode 100644 index 000000000..d84d599f7 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-code.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-condition-code","text":{"status":"generated","div":"

    SearchParameter: USCoreConditionCode

    description : Code for the condition
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-condition-code

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-code\n\t\t\t

    version : 4.1.0

    name : USCoreConditionCode

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-code\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : code\n\t\t\t

    base :Condition

    type : token

    expression : Condition.code\n\t\t\t

    xpath : f:Condition/f:code\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-code","version":"3.0.1","name":"USCoreConditionCode","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-code","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Code for the condition
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"code","base":["Condition"],"type":"token","expression":"Condition.code","xpath":"f:Condition/f:code","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-condition-onset-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-onset-date.json new file mode 100644 index 000000000..747b39b4d --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-onset-date.json @@ -0,0 +1,142 @@ +{ + "id": "us-core-condition-onset-date", + "base": [ + "Condition" + ], + "code": "onset-date", + "comparator": [ + "eq", + "ne", + "gt", + "lt", + "le", + "sa", + "eb", + "ap" + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.hl7.org/Special/committees/usrealm/index.cfm" + } + ] + } + ], + "date": "2019-08-26T20:15:51.886649Z", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/Condition-onset-date", + "description": "Date related onsets (dateTime and Period)
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ", + "experimental": false, + "expression": "Condition.onset.as(dateTime)", + "modifier": [ + "missing" + ], + "multipleAnd": true, + "multipleOr": true, + "name": "USCoreConditionOnsetDate", + "publisher": "HL7 International - US Realm Steering Committee", + "status": "active", + "type": "date", + "url": "http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-onset-date", + "version": "4.1.0", + "xpath": "f:Condition/f:onsetDateTime", + "xpathUsage": "normal", + "resourceType": "SearchParameter", + "_multipleOr": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + "_multipleAnd": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHOULD" + } + ] + }, + "_modifier": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "_comparator": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "text": { + "div": "

    SearchParameter: USCoreConditionOnsetDate

    description : Date related onsets (dateTime and Period)

    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:

    \n - multipleAnd

    \n - multipleOr

    \n - modifier

    \n - comparator

    \n - chain

    \n



    id us-core-condition-onset-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-onset-date\n\t\t\t

    version : 4.1.0

    name : USCoreConditionOnsetDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/Condition-onset-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : onset-date\n\t\t\t

    base :Condition

    type : date

    expression : Condition.onset.as(dateTime)\n\t\t\t

    xpath : f:Condition/f:onsetDateTime\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    ", + "status": "generated" + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-condition-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-patient.json new file mode 100644 index 000000000..4b440f4ee --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-condition-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-condition-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreConditionPatient

    description : Who has the condition?
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-condition-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-patient\n\t\t\t

    version : 4.1.0

    name : USCoreConditionPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :Condition

    type : reference

    expression : Condition.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:Condition/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-condition-patient","version":"3.0.1","name":"USCoreConditionPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Who has the condition?
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["Condition"],"type":"reference","expression":"Condition.subject.where(resolve() is Patient)","xpath":"f:Condition/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-device-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-device-patient.json new file mode 100644 index 000000000..2e6156fd9 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-device-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-device-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreDevicePatient

    description : Patient information, if the resource is affixed to a person
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-device-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-device-patient\n\t\t\t

    version : 4.1.0

    name : USCoreDevicePatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/Device-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :Device

    type : reference

    expression : Device.patient\n\t\t\t

    xpath : f:Device/f:patient\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-device-patient","version":"3.0.1","name":"USCoreDevicePatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/Device-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Patient information, if the resource is affixed to a person
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["Device"],"type":"reference","expression":"Device.patient","xpath":"f:Device/f:patient","xpathUsage":"normal","target":["Patient"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-device-type.json b/resources/uscore_v3.0.1/SearchParameter-us-core-device-type.json new file mode 100644 index 000000000..1f7eff46c --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-device-type.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-device-type","text":{"status":"generated","div":"

    SearchParameter: USCoreDeviceType

    description : The type of the device
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-device-type

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-device-type\n\t\t\t

    version : 4.1.0

    name : USCoreDeviceType

    derivedFrom : http://hl7.org/fhir/SearchParameter/Device-type\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : type\n\t\t\t

    base :Device

    type : token

    expression : Device.type\n\t\t\t

    xpath : f:Device/f:type\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-device-type","version":"3.0.1","name":"USCoreDeviceType","derivedFrom":"http://hl7.org/fhir/SearchParameter/Device-type","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The type of the device
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"type","base":["Device"],"type":"token","expression":"Device.type","xpath":"f:Device/f:type","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-category.json b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-category.json new file mode 100644 index 000000000..c363662cc --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-category.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-diagnosticreport-category","text":{"status":"generated","div":"

    SearchParameter: USCoreDiagnosticreportCategory

    description : Which diagnostic discipline/department created the report
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-diagnosticreport-category

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-category\n\t\t\t

    version : 4.1.0

    name : USCoreDiagnosticreportCategory

    derivedFrom : http://hl7.org/fhir/SearchParameter/DiagnosticReport-category\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : category\n\t\t\t

    base :DiagnosticReport

    type : token

    expression : DiagnosticReport.category\n\t\t\t

    xpath : f:DiagnosticReport/f:category\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-category","version":"3.0.1","name":"USCoreDiagnosticreportCategory","derivedFrom":"http://hl7.org/fhir/SearchParameter/DiagnosticReport-category","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Which diagnostic discipline/department created the report
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"category","base":["DiagnosticReport"],"type":"token","expression":"DiagnosticReport.category","xpath":"f:DiagnosticReport/f:category","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-code.json b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-code.json new file mode 100644 index 000000000..462e74bf1 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-code.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-diagnosticreport-code","text":{"status":"generated","div":"

    SearchParameter: USCoreDiagnosticreportCode

    description : The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-diagnosticreport-code

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-code\n\t\t\t

    version : 4.1.0

    name : USCoreDiagnosticreportCode

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-code\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : code\n\t\t\t

    base :DiagnosticReport

    type : token

    expression : DiagnosticReport.code\n\t\t\t

    xpath : f:DiagnosticReport/f:code\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHOULD)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-code","version":"3.0.1","name":"USCoreDiagnosticreportCode","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-code","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"code","base":["DiagnosticReport"],"type":"token","expression":"DiagnosticReport.code","xpath":"f:DiagnosticReport/f:code","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-date.json new file mode 100644 index 000000000..b32700925 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-date.json @@ -0,0 +1,142 @@ +{ + "id": "us-core-diagnosticreport-date", + "base": [ + "DiagnosticReport" + ], + "code": "date", + "comparator": [ + "eq", + "ne", + "gt", + "lt", + "le", + "sa", + "eb", + "ap" + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.hl7.org/Special/committees/usrealm/index.cfm" + } + ] + } + ], + "date": "2019-08-26T20:15:52.717671Z", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/clinical-date", + "description": "The clinically relevant time of the report
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ", + "experimental": false, + "expression": "DiagnosticReport.effective", + "modifier": [ + "missing" + ], + "multipleAnd": true, + "multipleOr": true, + "name": "USCoreDiagnosticreportDate", + "publisher": "HL7 International - US Realm Steering Committee", + "status": "active", + "type": "date", + "url": "http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-date", + "version": "4.1.0", + "xpath": "f:DiagnosticReport/f:effectiveDateTime", + "xpathUsage": "normal", + "resourceType": "SearchParameter", + "_multipleOr": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + "_multipleAnd": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHOULD" + } + ] + }, + "_modifier": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "_comparator": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "text": { + "div": "

    SearchParameter: USCoreDiagnosticreportDate

    description : The clinically relevant time of the report

    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:

    \n - multipleAnd

    \n - multipleOr

    \n - modifier

    \n - comparator

    \n - chain

    \n



    id us-core-diagnosticreport-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-date\n\t\t\t

    version : 4.1.0

    name : USCoreDiagnosticreportDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : date\n\t\t\t

    base :DiagnosticReport

    type : date

    expression : DiagnosticReport.effective\n\t\t\t

    xpath : f:DiagnosticReport/f:effectiveDateTime\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    ", + "status": "generated" + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-patient.json new file mode 100644 index 000000000..386ae9da4 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-diagnosticreport-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreDiagnosticreportPatient

    description : The subject of the report if a patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-diagnosticreport-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-patient\n\t\t\t

    version : 4.1.0

    name : USCoreDiagnosticreportPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :DiagnosticReport

    type : reference

    expression : DiagnosticReport.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:DiagnosticReport/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-patient","version":"3.0.1","name":"USCoreDiagnosticreportPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The subject of the report if a patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["DiagnosticReport"],"type":"reference","expression":"DiagnosticReport.subject.where(resolve() is Patient)","xpath":"f:DiagnosticReport/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-status.json new file mode 100644 index 000000000..9099c04e0 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-diagnosticreport-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-diagnosticreport-status","text":{"status":"generated","div":"

    SearchParameter: USCoreDiagnosticreportStatus

    description : The status of the report
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-diagnosticreport-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-status\n\t\t\t

    version : 4.1.0

    name : USCoreDiagnosticreportStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/DiagnosticReport-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :DiagnosticReport

    type : token

    expression : DiagnosticReport.status\n\t\t\t

    xpath : f:DiagnosticReport/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHALL)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-diagnosticreport-status","version":"3.0.1","name":"USCoreDiagnosticreportStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/DiagnosticReport-status","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The status of the report
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["DiagnosticReport"],"type":"token","expression":"DiagnosticReport.status","xpath":"f:DiagnosticReport/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-category.json b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-category.json new file mode 100644 index 000000000..344f4b021 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-category.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-documentreference-category","text":{"status":"generated","div":"

    SearchParameter: USCoreDocumentreferenceCategory

    description : Categorization of document
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-documentreference-category

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-category\n\t\t\t

    version : 4.1.0

    name : USCoreDocumentreferenceCategory

    derivedFrom : http://hl7.org/fhir/SearchParameter/DocumentReference-category\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : category\n\t\t\t

    base :DocumentReference

    type : token

    expression : DocumentReference.category\n\t\t\t

    xpath : f:DocumentReference/f:category\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-category","version":"3.0.1","name":"USCoreDocumentreferenceCategory","derivedFrom":"http://hl7.org/fhir/SearchParameter/DocumentReference-category","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Categorization of document
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"category","base":["DocumentReference"],"type":"token","expression":"DocumentReference.category","xpath":"f:DocumentReference/f:category","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-date.json new file mode 100644 index 000000000..de0a0c556 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-date.json @@ -0,0 +1,142 @@ +{ + "id": "us-core-documentreference-date", + "base": [ + "DocumentReference" + ], + "code": "date", + "comparator": [ + "eq", + "ne", + "gt", + "lt", + "le", + "sa", + "eb", + "ap" + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.hl7.org/Special/committees/usrealm/index.cfm" + } + ] + } + ], + "date": "2019-08-26T20:15:52.388335Z", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/DocumentReference-date", + "description": "When this document reference was created
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ", + "experimental": false, + "expression": "DocumentReference.date", + "modifier": [ + "missing" + ], + "multipleAnd": true, + "multipleOr": true, + "name": "USCoreDocumentreferenceDate", + "publisher": "HL7 International - US Realm Steering Committee", + "status": "active", + "type": "date", + "url": "http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-date", + "version": "4.1.0", + "xpath": "f:DocumentReference/f:date", + "xpathUsage": "normal", + "resourceType": "SearchParameter", + "_multipleOr": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + "_multipleAnd": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHOULD" + } + ] + }, + "_modifier": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "_comparator": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "text": { + "div": "

    SearchParameter: USCoreDocumentreferenceDate

    description : When this document reference was created

    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:

    \n - multipleAnd

    \n - multipleOr

    \n - modifier

    \n - comparator

    \n - chain

    \n



    id us-core-documentreference-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-date\n\t\t\t

    version : 4.1.0

    name : USCoreDocumentreferenceDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/DocumentReference-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : date\n\t\t\t

    base :DocumentReference

    type : date

    expression : DocumentReference.date\n\t\t\t

    xpath : f:DocumentReference/f:date\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    ", + "status": "generated" + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-id.json b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-id.json new file mode 100644 index 000000000..e7c34ccc2 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-id.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-documentreference-id","text":{"status":"generated","div":"

    SearchParameter: USCoreDocumentreferenceId

    description : Logical id of this artifact
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-documentreference-id

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-id\n\t\t\t

    version : 4.1.0

    name : USCoreDocumentreferenceId

    derivedFrom : http://hl7.org/fhir/SearchParameter/Resource-id\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : _id\n\t\t\t

    base :DocumentReference

    type : token

    expression : DocumentReference.id\n\t\t\t

    xpath : DocumentReference.id\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-id","version":"3.0.1","name":"USCoreDocumentreferenceId","derivedFrom":"http://hl7.org/fhir/SearchParameter/Resource-id","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Logical id of this artifact
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"_id","base":["DocumentReference"],"type":"token","expression":"DocumentReference.id","xpath":"DocumentReference.id","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-patient.json new file mode 100644 index 000000000..3c2214db5 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-documentreference-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreDocumentreferencePatient

    description : Who/what is the subject of the document
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-documentreference-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-patient\n\t\t\t

    version : 4.1.0

    name : USCoreDocumentreferencePatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :DocumentReference

    type : reference

    expression : DocumentReference.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:DocumentReference/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-patient","version":"3.0.1","name":"USCoreDocumentreferencePatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Who/what is the subject of the document
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["DocumentReference"],"type":"reference","expression":"DocumentReference.subject.where(resolve() is Patient)","xpath":"f:DocumentReference/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-period.json b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-period.json new file mode 100644 index 000000000..03c615b88 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-period.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-documentreference-period","text":{"status":"generated","div":"

    SearchParameter: USCoreDocumentreferencePeriod

    description : Time of service that is being documented
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-documentreference-period

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-period\n\t\t\t

    version : 4.1.0

    name : USCoreDocumentreferencePeriod

    derivedFrom : http://hl7.org/fhir/SearchParameter/DocumentReference-period\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : period\n\t\t\t

    base :DocumentReference

    type : date

    expression : DocumentReference.context.period\n\t\t\t

    xpath : f:DocumentReference/f:context/f:period\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-period","version":"3.0.1","name":"USCoreDocumentreferencePeriod","derivedFrom":"http://hl7.org/fhir/SearchParameter/DocumentReference-period","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Time of service that is being documented
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"period","base":["DocumentReference"],"type":"date","expression":"DocumentReference.context.period","xpath":"f:DocumentReference/f:context/f:period","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}]},"comparator":["eq","ne","gt","lt","le","sa","eb","ap"],"modifier":["missing"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-status.json new file mode 100644 index 000000000..0ffce3ee8 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-documentreference-status","text":{"status":"generated","div":"

    SearchParameter: USCoreDocumentreferenceStatus

    description : current | superseded | entered-in-error
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-documentreference-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-status\n\t\t\t

    version : 4.1.0

    name : USCoreDocumentreferenceStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/DocumentReference-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :DocumentReference

    type : token

    expression : DocumentReference.status\n\t\t\t

    xpath : f:DocumentReference/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHALL)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-status","version":"3.0.1","name":"USCoreDocumentreferenceStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/DocumentReference-status","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"current | superseded | entered-in-error
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["DocumentReference"],"type":"token","expression":"DocumentReference.status","xpath":"f:DocumentReference/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-type.json b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-type.json new file mode 100644 index 000000000..1398d43a4 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-documentreference-type.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-documentreference-type","text":{"status":"generated","div":"

    SearchParameter: USCoreDocumentreferenceType

    description : Kind of document (LOINC if possible)
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-documentreference-type

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-type\n\t\t\t

    version : 4.1.0

    name : USCoreDocumentreferenceType

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-type\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : type\n\t\t\t

    base :DocumentReference

    type : token

    expression : DocumentReference.type\n\t\t\t

    xpath : f:DocumentReference/f:type\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-documentreference-type","version":"3.0.1","name":"USCoreDocumentreferenceType","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-type","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Kind of document (LOINC if possible)
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"type","base":["DocumentReference"],"type":"token","expression":"DocumentReference.type","xpath":"f:DocumentReference/f:type","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-class.json b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-class.json new file mode 100644 index 000000000..b4560ca41 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-class.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-encounter-class","text":{"status":"generated","div":"

    SearchParameter: USCoreEncounterClass

    description : Classification of patient encounter
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-encounter-class

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-class\n\t\t\t

    version : 4.1.0

    name : USCoreEncounterClass

    derivedFrom : http://hl7.org/fhir/SearchParameter/Encounter-class\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : class\n\t\t\t

    base :Encounter

    type : token

    expression : Encounter.class\n\t\t\t

    xpath : f:Encounter/f:class\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-class","version":"3.0.1","name":"USCoreEncounterClass","derivedFrom":"http://hl7.org/fhir/SearchParameter/Encounter-class","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Classification of patient encounter
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"class","base":["Encounter"],"type":"token","expression":"Encounter.class","xpath":"f:Encounter/f:class","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-date.json new file mode 100644 index 000000000..717166579 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-date.json @@ -0,0 +1,142 @@ +{ + "id": "us-core-encounter-date", + "base": [ + "Encounter" + ], + "code": "date", + "comparator": [ + "eq", + "ne", + "gt", + "lt", + "le", + "sa", + "eb", + "ap" + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.hl7.org/Special/committees/usrealm/index.cfm" + } + ] + } + ], + "date": "2019-08-26T20:15:51.325701Z", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/clinical-date", + "description": "A date within the period the Encounter lasted
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ", + "experimental": false, + "expression": "Encounter.period", + "modifier": [ + "missing" + ], + "multipleAnd": true, + "multipleOr": true, + "name": "USCoreEncounterDate", + "publisher": "HL7 International - US Realm Steering Committee", + "status": "active", + "type": "date", + "url": "http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-date", + "version": "4.1.0", + "xpath": "f:Encounter/f:period", + "xpathUsage": "normal", + "resourceType": "SearchParameter", + "_multipleOr": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + "_multipleAnd": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHOULD" + } + ] + }, + "_modifier": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "_comparator": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "text": { + "div": "

    SearchParameter: USCoreEncounterDate

    description : A date within the period the Encounter lasted

    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:

    \n - multipleAnd

    \n - multipleOr

    \n - modifier

    \n - comparator

    \n - chain

    \n



    id us-core-encounter-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-date\n\t\t\t

    version : 4.1.0

    name : USCoreEncounterDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : date\n\t\t\t

    base :Encounter

    type : date

    expression : Encounter.period\n\t\t\t

    xpath : f:Encounter/f:period\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    ", + "status": "generated" + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-id.json b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-id.json new file mode 100644 index 000000000..389c8651f --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-id.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-encounter-id","text":{"status":"generated","div":"

    SearchParameter: USCoreEncounterId

    description : Logical id of this artifact
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-encounter-id

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-id\n\t\t\t

    version : 4.1.0

    name : USCoreEncounterId

    derivedFrom : http://hl7.org/fhir/SearchParameter/Resource-id\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : _id\n\t\t\t

    base :Encounter

    type : token

    expression : Encounter.id\n\t\t\t

    xpath : Encounter.id\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-id","version":"3.0.1","name":"USCoreEncounterId","derivedFrom":"http://hl7.org/fhir/SearchParameter/Resource-id","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Logical id of this artifact
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"_id","base":["Encounter"],"type":"token","expression":"Encounter.id","xpath":"Encounter.id","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-identifier.json b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-identifier.json new file mode 100644 index 000000000..5faad3f66 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-identifier.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-encounter-identifier","text":{"status":"generated","div":"

    SearchParameter: USCoreEncounterIdentifier

    description : Identifier(s) by which this encounter is known
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-encounter-identifier

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-identifier\n\t\t\t

    version : 4.1.0

    name : USCoreEncounterIdentifier

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-identifier\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : identifier\n\t\t\t

    base :Encounter

    type : token

    expression : Encounter.identifier\n\t\t\t

    xpath : f:Encounter/f:identifier\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-identifier","version":"3.0.1","name":"USCoreEncounterIdentifier","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-identifier","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Identifier(s) by which this encounter is known
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"identifier","base":["Encounter"],"type":"token","expression":"Encounter.identifier","xpath":"f:Encounter/f:identifier","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-patient.json new file mode 100644 index 000000000..43dc50254 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-encounter-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreEncounterPatient

    description : The patient or group present at the encounter
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-encounter-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-patient\n\t\t\t

    version : 4.1.0

    name : USCoreEncounterPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :Encounter

    type : reference

    expression : Encounter.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:Encounter/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-patient","version":"3.0.1","name":"USCoreEncounterPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The patient or group present at the encounter
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["Encounter"],"type":"reference","expression":"Encounter.subject.where(resolve() is Patient)","xpath":"f:Encounter/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-status.json new file mode 100644 index 000000000..2e9ab1d47 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-encounter-status","text":{"status":"generated","div":"

    SearchParameter: USCoreEncounterStatus

    description : planned | in-progress | onhold | completed | cancelled | entered-in-error | unknown
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-encounter-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-status\n\t\t\t

    version : 4.1.0

    name : USCoreEncounterStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/Encounter-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :Encounter

    type : token

    expression : Encounter.status\n\t\t\t

    xpath : f:Encounter/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-status","version":"3.0.1","name":"USCoreEncounterStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/Encounter-status","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"planned | in-progress | onhold | completed | cancelled | entered-in-error | unknown
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["Encounter"],"type":"token","expression":"Encounter.status","xpath":"f:Encounter/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-type.json b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-type.json new file mode 100644 index 000000000..ea1b8c391 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-encounter-type.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-encounter-type","text":{"status":"generated","div":"

    SearchParameter: USCoreEncounterType

    description : Specific type of encounter
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-encounter-type

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-type\n\t\t\t

    version : 4.1.0

    name : USCoreEncounterType

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-type\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : type\n\t\t\t

    base :Encounter

    type : token

    expression : Encounter.type\n\t\t\t

    xpath : f:Encounter/f:type\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-encounter-type","version":"3.0.1","name":"USCoreEncounterType","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-type","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Specific type of encounter
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"type","base":["Encounter"],"type":"token","expression":"Encounter.type","xpath":"f:Encounter/f:type","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-ethnicity.json b/resources/uscore_v3.0.1/SearchParameter-us-core-ethnicity.json new file mode 100644 index 000000000..40b46b7fe --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-ethnicity.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-ethnicity","text":{"status":"generated","div":"

    Generated Narrative with Details

    id: us-core-ethnicity

    url: http://hl7.org/fhir/us/core/SearchParameter/us-core-ethnicity

    name: USCoreEthnicity

    status: active

    date: May 21, 2019, 12:00:00 AM

    publisher: US Realm Steering Committee

    contact:

    description: Returns patients with an ethnicity extension matching the specified code.

    jurisdiction: United States of America (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United States of America'})

    code: ethnicity

    base: Patient

    type: token

    expression: Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity').extension.value.code

    xpath: f:Patient/f:extension[@url='http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity']/f:extension/f:valueCoding/f:code/@value

    xpathUsage: normal

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-ethnicity","name":"USCoreEthnicity","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://www.healthit.gov/"}]}],"description":"Returns patients with an ethnicity extension matching the specified code.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"ethnicity","base":["Patient"],"type":"token","expression":"Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity').extension.value.code","xpath":"f:Patient/f:extension[@url='http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity']/f:extension/f:valueCoding/f:code/@value","xpathUsage":"normal"} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-goal-lifecycle-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-goal-lifecycle-status.json new file mode 100644 index 000000000..322b5c3b0 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-goal-lifecycle-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-goal-lifecycle-status","text":{"status":"generated","div":"

    SearchParameter: USCoreGoalLifecycleStatus

    description : proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-goal-lifecycle-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-lifecycle-status\n\t\t\t

    version : 4.1.0

    name : USCoreGoalLifecycleStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/Goal-lifecycle-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : lifecycle-status\n\t\t\t

    base :Goal

    type : token

    expression : Goal.lifecycleStatus\n\t\t\t

    xpath : f:Goal/f:lifecycleStatus\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-lifecycle-status","version":"3.0.1","name":"USCoreGoalLifecycleStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/Goal-lifecycle-status","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"lifecycle-status","base":["Goal"],"type":"token","expression":"Goal.lifecycleStatus","xpath":"f:Goal/f:lifecycleStatus","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-goal-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-goal-patient.json new file mode 100644 index 000000000..067edee64 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-goal-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-goal-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreGoalPatient

    description : Who this goal is intended for
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-goal-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-patient\n\t\t\t

    version : 4.1.0

    name : USCoreGoalPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :Goal

    type : reference

    expression : Goal.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:Goal/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-patient","version":"3.0.1","name":"USCoreGoalPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Who this goal is intended for
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["Goal"],"type":"reference","expression":"Goal.subject.where(resolve() is Patient)","xpath":"f:Goal/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-goal-target-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-goal-target-date.json new file mode 100644 index 000000000..1a07be346 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-goal-target-date.json @@ -0,0 +1,142 @@ +{ + "id": "us-core-goal-target-date", + "base": [ + "Goal" + ], + "code": "target-date", + "comparator": [ + "eq", + "ne", + "gt", + "lt", + "le", + "sa", + "eb", + "ap" + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.hl7.org/Special/committees/usrealm/index.cfm" + } + ] + } + ], + "date": "2019-08-26T20:15:52.870259Z", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/Goal-target-date", + "description": "Reach goal on or before
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ", + "experimental": false, + "expression": "Goal.id", + "modifier": [ + "missing" + ], + "multipleAnd": true, + "multipleOr": true, + "name": "USCoreGoalTargetDate", + "publisher": "HL7 International - US Realm Steering Committee", + "status": "active", + "type": "date", + "url": "http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-target-date", + "version": "4.1.0", + "xpath": "f:Goal/f:target/f:dueDate", + "xpathUsage": "normal", + "resourceType": "SearchParameter", + "_multipleOr": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + "_multipleAnd": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHOULD" + } + ] + }, + "_modifier": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "_comparator": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "text": { + "div": "

    SearchParameter: USCoreGoalTargetDate

    description : Reach goal on or before

    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:

    \n - multipleAnd

    \n - multipleOr

    \n - modifier

    \n - comparator

    \n - chain

    \n



    id us-core-goal-target-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-goal-target-date\n\t\t\t

    version : 4.1.0

    name : USCoreGoalTargetDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/Goal-target-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : target-date\n\t\t\t

    base :Goal

    type : date

    expression : Goal.id\n\t\t\t

    xpath : f:Goal/f:target/f:dueDate\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    ", + "status": "generated" + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-date.json new file mode 100644 index 000000000..c5ed4f251 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-date.json @@ -0,0 +1,142 @@ +{ + "id": "us-core-immunization-date", + "base": [ + "Immunization" + ], + "code": "date", + "comparator": [ + "eq", + "ne", + "gt", + "lt", + "le", + "sa", + "eb", + "ap" + ], + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.hl7.org/Special/committees/usrealm/index.cfm" + } + ] + } + ], + "date": "2019-08-26T20:15:52.135836Z", + "derivedFrom": "http://hl7.org/fhir/SearchParameter/clinical-date", + "description": "Vaccination (non)-Administration Date
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ", + "experimental": false, + "expression": "Immunization.occurrence", + "modifier": [ + "missing" + ], + "multipleAnd": true, + "multipleOr": true, + "name": "USCoreImmunizationDate", + "publisher": "HL7 International - US Realm Steering Committee", + "status": "active", + "type": "date", + "url": "http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-date", + "version": "4.1.0", + "xpath": "f:Immunization/f:occurrenceDateTime", + "xpathUsage": "normal", + "resourceType": "SearchParameter", + "_multipleOr": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + "_multipleAnd": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHOULD" + } + ] + }, + "_modifier": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "_comparator": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "MAY" + } + ] + } + ], + "text": { + "div": "

    SearchParameter: USCoreImmunizationDate

    description : Vaccination (non)-Administration Date

    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:

    \n - multipleAnd

    \n - multipleOr

    \n - modifier

    \n - comparator

    \n - chain

    \n



    id us-core-immunization-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-date\n\t\t\t

    version : 4.1.0

    name : USCoreImmunizationDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : date\n\t\t\t

    base :Immunization

    type : date

    expression : Immunization.occurrence\n\t\t\t

    xpath : f:Immunization/f:occurrenceDateTime\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    ", + "status": "generated" + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-patient.json new file mode 100644 index 000000000..1485e441c --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-immunization-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreImmunizationPatient

    description : The patient for the vaccination record
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-immunization-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-patient\n\t\t\t

    version : 4.1.0

    name : USCoreImmunizationPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :Immunization

    type : reference

    expression : Immunization.patient\n\t\t\t

    xpath : f:Immunization/f:patient\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-patient","version":"3.0.1","name":"USCoreImmunizationPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The patient for the vaccination record
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["Immunization"],"type":"reference","expression":"Immunization.patient","xpath":"f:Immunization/f:patient","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-status.json new file mode 100644 index 000000000..a85f94443 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-immunization-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-immunization-status","text":{"status":"generated","div":"

    SearchParameter: USCoreImmunizationStatus

    description : Immunization event status
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-immunization-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-status\n\t\t\t

    version : 4.1.0

    name : USCoreImmunizationStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/Immunization-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :Immunization

    type : token

    expression : Immunization.status\n\t\t\t

    xpath : f:Immunization/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-immunization-status","version":"3.0.1","name":"USCoreImmunizationStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/Immunization-status","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Immunization event status
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["Immunization"],"type":"token","expression":"Immunization.status","xpath":"f:Immunization/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-city.json b/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-city.json new file mode 100644 index 000000000..6fe1e8c1f --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-city.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-location-address-city","text":{"status":"generated","div":"

    SearchParameter: USCoreLocationAddressCity

    description : A city specified in an address
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-location-address-city

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-city\n\t\t\t

    version : 4.1.0

    name : USCoreLocationAddressCity

    derivedFrom : http://hl7.org/fhir/SearchParameter/Location-address-city\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : address-city\n\t\t\t

    base :Location

    type : string

    expression : Location.address.city\n\t\t\t

    xpath : f:Location/f:address/f:city\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-city","version":"3.0.1","name":"USCoreLocationAddressCity","derivedFrom":"http://hl7.org/fhir/SearchParameter/Location-address-city","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A city specified in an address
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"address-city","base":["Location"],"type":"string","expression":"Location.address.city","xpath":"f:Location/f:address/f:city","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-postalcode.json b/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-postalcode.json new file mode 100644 index 000000000..c2c5c21b2 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-postalcode.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-location-address-postalcode","text":{"status":"generated","div":"

    SearchParameter: USCoreLocationAddressPostalcode

    description : A postal code specified in an address
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-location-address-postalcode

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-postalcode\n\t\t\t

    version : 4.1.0

    name : USCoreLocationAddressPostalcode

    derivedFrom : http://hl7.org/fhir/SearchParameter/Location-address-postalcode\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : address-postalcode\n\t\t\t

    base :Location

    type : string

    expression : Location.address.postalCode\n\t\t\t

    xpath : f:Location/f:address/f:postalCode\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-postalcode","version":"3.0.1","name":"USCoreLocationAddressPostalcode","derivedFrom":"http://hl7.org/fhir/SearchParameter/Location-address-postalcode","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A postal code specified in an address
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"address-postalcode","base":["Location"],"type":"string","expression":"Location.address.postalCode","xpath":"f:Location/f:address/f:postalCode","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-state.json b/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-state.json new file mode 100644 index 000000000..d9303678c --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-location-address-state.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-location-address-state","text":{"status":"generated","div":"

    SearchParameter: USCoreLocationAddressState

    description : A state specified in an address
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-location-address-state

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-state\n\t\t\t

    version : 4.1.0

    name : USCoreLocationAddressState

    derivedFrom : http://hl7.org/fhir/SearchParameter/Location-address-state\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : address-state\n\t\t\t

    base :Location

    type : string

    expression : Location.address.state\n\t\t\t

    xpath : f:Location/f:address/f:state\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address-state","version":"3.0.1","name":"USCoreLocationAddressState","derivedFrom":"http://hl7.org/fhir/SearchParameter/Location-address-state","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A state specified in an address
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"address-state","base":["Location"],"type":"string","expression":"Location.address.state","xpath":"f:Location/f:address/f:state","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-location-address.json b/resources/uscore_v3.0.1/SearchParameter-us-core-location-address.json new file mode 100644 index 000000000..503d78110 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-location-address.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-location-address","text":{"status":"generated","div":"

    SearchParameter: USCoreLocationAddress

    description : A (part of the) address of the location
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-location-address

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address\n\t\t\t

    version : 4.1.0

    name : USCoreLocationAddress

    derivedFrom : http://hl7.org/fhir/SearchParameter/Location-address\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : address\n\t\t\t

    base :Location

    type : string

    expression : Location.address\n\t\t\t

    xpath : f:Location/f:address\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-address","version":"3.0.1","name":"USCoreLocationAddress","derivedFrom":"http://hl7.org/fhir/SearchParameter/Location-address","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A (part of the) address of the location
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"address","base":["Location"],"type":"string","expression":"Location.address","xpath":"f:Location/f:address","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-location-name.json b/resources/uscore_v3.0.1/SearchParameter-us-core-location-name.json new file mode 100644 index 000000000..3310f6d22 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-location-name.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-location-name","text":{"status":"generated","div":"

    SearchParameter: USCoreLocationName

    description : A portion of the location's name or alias
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-location-name

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-location-name\n\t\t\t

    version : 4.1.0

    name : USCoreLocationName

    derivedFrom : http://hl7.org/fhir/SearchParameter/Location-name\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : name\n\t\t\t

    base :Location

    type : string

    expression : Location.name\n\t\t\t

    xpath : f:Location/f:name\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-location-name","version":"3.0.1","name":"USCoreLocationName","derivedFrom":"http://hl7.org/fhir/SearchParameter/Location-name","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A portion of the location's name or alias
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"name","base":["Location"],"type":"string","expression":"Location.name","xpath":"f:Location/f:name","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-authoredon.json b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-authoredon.json new file mode 100644 index 000000000..4a77d5f35 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-authoredon.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-medicationrequest-authoredon","text":{"status":"generated","div":"

    SearchParameter: USCoreMedicationrequestAuthoredon

    description : Return prescriptions written on this date
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-medicationrequest-authoredon

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-authoredon\n\t\t\t

    version : 4.1.0

    name : USCoreMedicationrequestAuthoredon

    derivedFrom : http://hl7.org/fhir/SearchParameter/MedicationRequest-authoredon\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : authoredon\n\t\t\t

    base :MedicationRequest

    type : date

    expression : MedicationRequest.authoredOn\n\t\t\t

    xpath : f:MedicationRequest/f:authoredOn\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-authoredon","version":"3.0.1","name":"USCoreMedicationrequestAuthoredon","derivedFrom":"http://hl7.org/fhir/SearchParameter/MedicationRequest-authoredon","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Return prescriptions written on this date
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"authoredon","base":["MedicationRequest"],"type":"date","expression":"MedicationRequest.authoredOn","xpath":"f:MedicationRequest/f:authoredOn","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}]},"comparator":["eq","ne","gt","lt","le","sa","eb","ap"],"modifier":["missing"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-encounter.json b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-encounter.json new file mode 100644 index 000000000..038038e5f --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-encounter.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-medicationrequest-encounter","text":{"status":"generated","div":"

    SearchParameter: USCoreMedicationrequestEncounter

    description : Return prescriptions with this encounter identifier
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-medicationrequest-encounter

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-encounter\n\t\t\t

    version : 4.1.0

    name : USCoreMedicationrequestEncounter

    derivedFrom : http://hl7.org/fhir/SearchParameter/medications-encounter\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : encounter\n\t\t\t

    base :MedicationRequest

    type : reference

    expression : MedicationRequest.encounter\n\t\t\t

    xpath : f:MedicationRequest/f:encounter\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-encounter","version":"3.0.1","name":"USCoreMedicationrequestEncounter","derivedFrom":"http://hl7.org/fhir/SearchParameter/medications-encounter","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Return prescriptions with this encounter identifier
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"encounter","base":["MedicationRequest"],"type":"reference","expression":"MedicationRequest.encounter","xpath":"f:MedicationRequest/f:encounter","xpathUsage":"normal","target":["Encounter"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-intent.json b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-intent.json new file mode 100644 index 000000000..657e23a9e --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-intent.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-medicationrequest-intent","text":{"status":"generated","div":"

    SearchParameter: USCoreMedicationrequestIntent

    description : Returns prescriptions with different intents
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-medicationrequest-intent

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-intent\n\t\t\t

    version : 4.1.0

    name : USCoreMedicationrequestIntent

    derivedFrom : http://hl7.org/fhir/SearchParameter/MedicationRequest-intent\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : intent\n\t\t\t

    base :MedicationRequest

    type : token

    expression : MedicationRequest.intent\n\t\t\t

    xpath : f:MedicationRequest/f:intent\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-intent","version":"3.0.1","name":"USCoreMedicationrequestIntent","derivedFrom":"http://hl7.org/fhir/SearchParameter/MedicationRequest-intent","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Returns prescriptions with different intents
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"intent","base":["MedicationRequest"],"type":"token","expression":"MedicationRequest.intent","xpath":"f:MedicationRequest/f:intent","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-patient.json new file mode 100644 index 000000000..4853da5e7 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-medicationrequest-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreMedicationrequestPatient

    description : Returns prescriptions for a specific patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-medicationrequest-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-patient\n\t\t\t

    version : 4.1.0

    name : USCoreMedicationrequestPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :MedicationRequest

    type : reference

    expression : MedicationRequest.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:MedicationRequest/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-patient","version":"3.0.1","name":"USCoreMedicationrequestPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Returns prescriptions for a specific patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["MedicationRequest"],"type":"reference","expression":"MedicationRequest.subject.where(resolve() is Patient)","xpath":"f:MedicationRequest/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-status.json new file mode 100644 index 000000000..04fc65437 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-medicationrequest-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-medicationrequest-status","text":{"status":"generated","div":"

    SearchParameter: USCoreMedicationrequestStatus

    description : Status of the prescription
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-medicationrequest-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-status\n\t\t\t

    version : 4.1.0

    name : USCoreMedicationrequestStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/medications-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :MedicationRequest

    type : token

    expression : MedicationRequest.status\n\t\t\t

    xpath : f:MedicationRequest/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHALL)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-medicationrequest-status","version":"3.0.1","name":"USCoreMedicationrequestStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/medications-status","status":"active","experimental":false,"date":"2019-08-26T20:15:52+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Status of the prescription
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["MedicationRequest"],"type":"token","expression":"MedicationRequest.status","xpath":"f:MedicationRequest/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-observation-category.json b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-category.json new file mode 100644 index 000000000..bdfaabca4 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-category.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-observation-category","text":{"status":"generated","div":"

    SearchParameter: USCoreObservationCategory

    description : The classification of the type of observation
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-observation-category

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-category\n\t\t\t

    version : 4.1.0

    name : USCoreObservationCategory

    derivedFrom : http://hl7.org/fhir/SearchParameter/Observation-category\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : category\n\t\t\t

    base :Observation

    type : token

    expression : Observation.category\n\t\t\t

    xpath : f:Observation/f:category\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-category","version":"3.0.1","name":"USCoreObservationCategory","derivedFrom":"http://hl7.org/fhir/SearchParameter/Observation-category","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The classification of the type of observation
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"category","base":["Observation"],"type":"token","expression":"Observation.category","xpath":"f:Observation/f:category","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-observation-code.json b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-code.json new file mode 100644 index 000000000..da3de0c3e --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-code.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-observation-code","text":{"status":"generated","div":"

    SearchParameter: USCoreObservationCode

    description : The code of the observation type
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-observation-code

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-code\n\t\t\t

    version : 4.1.0

    name : USCoreObservationCode

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-code\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : code\n\t\t\t

    base :Observation

    type : token

    expression : Observation.code\n\t\t\t

    xpath : f:Observation/f:code\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHOULD)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-code","version":"3.0.1","name":"USCoreObservationCode","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-code","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The code of the observation type
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"code","base":["Observation"],"type":"token","expression":"Observation.code","xpath":"f:Observation/f:code","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-observation-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-date.json new file mode 100644 index 000000000..de30cb04a --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-date.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-observation-date","text":{"status":"generated","div":"

    SearchParameter: USCoreObservationDate

    description : Obtained date/time. If the obtained element is a period, a date that falls in the period
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-observation-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-date\n\t\t\t

    version : 4.1.0

    name : USCoreObservationDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : date\n\t\t\t

    base :Observation

    type : date

    expression : Observation.effective\n\t\t\t

    xpath : f:Observation/f:effectiveDateTime\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-date","version":"3.0.1","name":"USCoreObservationDate","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-date","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Obtained date/time. If the obtained element is a period, a date that falls in the period
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"date","base":["Observation"],"type":"date","expression":"Observation.effective","xpath":"f:Observation/f:effectiveDateTime","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}]},"comparator":["eq","ne","gt","lt","le","sa","eb","ap"],"modifier":["missing"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-observation-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-patient.json new file mode 100644 index 000000000..1ea4f3bda --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-observation-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreObservationPatient

    description : The subject that the observation is about (if patient)
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-observation-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-patient\n\t\t\t

    version : 4.1.0

    name : USCoreObservationPatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :Observation

    type : reference

    expression : Observation.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:Observation/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-patient","version":"3.0.1","name":"USCoreObservationPatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The subject that the observation is about (if patient)
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["Observation"],"type":"reference","expression":"Observation.subject.where(resolve() is Patient)","xpath":"f:Observation/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-observation-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-status.json new file mode 100644 index 000000000..b677479d6 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-observation-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-observation-status","text":{"status":"generated","div":"

    SearchParameter: USCoreObservationStatus

    description : The status of the observation
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-observation-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-status\n\t\t\t

    version : 4.1.0

    name : USCoreObservationStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/Observation-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :Observation

    type : token

    expression : Observation.status\n\t\t\t

    xpath : f:Observation/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHALL)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-observation-status","version":"3.0.1","name":"USCoreObservationStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/Observation-status","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The status of the observation
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["Observation"],"type":"token","expression":"Observation.status","xpath":"f:Observation/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-organization-address.json b/resources/uscore_v3.0.1/SearchParameter-us-core-organization-address.json new file mode 100644 index 000000000..c298eaf8a --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-organization-address.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-organization-address","text":{"status":"generated","div":"

    SearchParameter: USCoreOrganizationAddress

    description : A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-organization-address

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-organization-address\n\t\t\t

    version : 4.1.0

    name : USCoreOrganizationAddress

    derivedFrom : http://hl7.org/fhir/SearchParameter/Organization-address\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : address\n\t\t\t

    base :Organization

    type : string

    expression : Organization.address\n\t\t\t

    xpath : f:Organization/f:address\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-organization-address","version":"3.0.1","name":"USCoreOrganizationAddress","derivedFrom":"http://hl7.org/fhir/SearchParameter/Organization-address","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"address","base":["Organization"],"type":"string","expression":"Organization.address","xpath":"f:Organization/f:address","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-organization-name.json b/resources/uscore_v3.0.1/SearchParameter-us-core-organization-name.json new file mode 100644 index 000000000..e577dcd5a --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-organization-name.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-organization-name","text":{"status":"generated","div":"

    SearchParameter: USCoreOrganizationName

    description : A portion of the organization's name or alias
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-organization-name

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-organization-name\n\t\t\t

    version : 4.1.0

    name : USCoreOrganizationName

    derivedFrom : http://hl7.org/fhir/SearchParameter/Organization-name\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : name\n\t\t\t

    base :Organization

    type : string

    expression : Organization.name\n\t\t\t

    xpath : f:Organization/f:name\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-organization-name","version":"3.0.1","name":"USCoreOrganizationName","derivedFrom":"http://hl7.org/fhir/SearchParameter/Organization-name","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A portion of the organization's name or alias
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"name","base":["Organization"],"type":"string","expression":"Organization.name","xpath":"f:Organization/f:name","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-patient-birthdate.json b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-birthdate.json new file mode 100644 index 000000000..8d01b343b --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-birthdate.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-patient-birthdate","text":{"status":"generated","div":"

    SearchParameter: USCorePatientBirthdate

    description : The patient's date of birth
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-patient-birthdate

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-birthdate\n\t\t\t

    version : 4.1.0

    name : USCorePatientBirthdate

    derivedFrom : http://hl7.org/fhir/SearchParameter/individual-birthdate\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : birthdate\n\t\t\t

    base :Patient

    type : date

    expression : Patient.birthDate\n\t\t\t

    xpath : f:Patient/f:birthDate\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = MAY)

    comparator : lt ( Conformance Expectation = MAY)

    comparator : le ( Conformance Expectation = MAY)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-birthdate","version":"3.0.1","name":"USCorePatientBirthdate","derivedFrom":"http://hl7.org/fhir/SearchParameter/individual-birthdate","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The patient's date of birth
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"birthdate","base":["Patient"],"type":"date","expression":"Patient.birthDate","xpath":"f:Patient/f:birthDate","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"comparator":["eq","ne","gt","lt","le","sa","eb","ap"],"modifier":["missing"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-patient-family.json b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-family.json new file mode 100644 index 000000000..8da41cb83 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-family.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-patient-family","text":{"status":"generated","div":"

    SearchParameter: USCorePatientFamily

    description : A portion of the family name of the patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-patient-family

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-family\n\t\t\t

    version : 4.1.0

    name : USCorePatientFamily

    derivedFrom : http://hl7.org/fhir/SearchParameter/individual-family\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : family\n\t\t\t

    base :Patient

    type : string

    expression : Patient.name.family\n\t\t\t

    xpath : f:Patient/f:name/f:family\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-family","version":"3.0.1","name":"USCorePatientFamily","derivedFrom":"http://hl7.org/fhir/SearchParameter/individual-family","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A portion of the family name of the patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"family","base":["Patient"],"type":"string","expression":"Patient.name.family","xpath":"f:Patient/f:name/f:family","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-patient-gender.json b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-gender.json new file mode 100644 index 000000000..2ca769699 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-gender.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-patient-gender","text":{"status":"generated","div":"

    SearchParameter: USCorePatientGender

    description : Gender of the patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-patient-gender

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-gender\n\t\t\t

    version : 4.1.0

    name : USCorePatientGender

    derivedFrom : http://hl7.org/fhir/SearchParameter/individual-gender\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : gender\n\t\t\t

    base :Patient

    type : token

    expression : Patient.gender\n\t\t\t

    xpath : f:Patient/f:gender\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-gender","version":"3.0.1","name":"USCorePatientGender","derivedFrom":"http://hl7.org/fhir/SearchParameter/individual-gender","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Gender of the patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"gender","base":["Patient"],"type":"token","expression":"Patient.gender","xpath":"f:Patient/f:gender","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-patient-given.json b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-given.json new file mode 100644 index 000000000..565f451ae --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-given.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-patient-given","text":{"status":"generated","div":"

    SearchParameter: USCorePatientGiven

    description : A portion of the given name of the patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-patient-given

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-given\n\t\t\t

    version : 4.1.0

    name : USCorePatientGiven

    derivedFrom : http://hl7.org/fhir/SearchParameter/individual-given\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : given\n\t\t\t

    base :Patient

    type : string

    expression : Patient.name.given\n\t\t\t

    xpath : f:Patient/f:name/f:given\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-given","version":"3.0.1","name":"USCorePatientGiven","derivedFrom":"http://hl7.org/fhir/SearchParameter/individual-given","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A portion of the given name of the patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"given","base":["Patient"],"type":"string","expression":"Patient.name.given","xpath":"f:Patient/f:name/f:given","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-patient-id.json b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-id.json new file mode 100644 index 000000000..135630563 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-id.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-patient-id","text":{"status":"generated","div":"

    SearchParameter: USCorePatientId

    description : Logical id of this artifact
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-patient-id

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-id\n\t\t\t

    version : 4.1.0

    name : USCorePatientId

    derivedFrom : http://hl7.org/fhir/SearchParameter/Resource-id\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : _id\n\t\t\t

    base :Patient

    type : token

    expression : Patient.id\n\t\t\t

    xpath : Patient.id\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-id","version":"3.0.1","name":"USCorePatientId","derivedFrom":"http://hl7.org/fhir/SearchParameter/Resource-id","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Logical id of this artifact
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"_id","base":["Patient"],"type":"token","expression":"Patient.id","xpath":"Patient.id","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-patient-identifier.json b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-identifier.json new file mode 100644 index 000000000..1b79b631a --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-identifier.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-patient-identifier","text":{"status":"generated","div":"

    SearchParameter: USCorePatientIdentifier

    description : A patient identifier
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-patient-identifier

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-identifier\n\t\t\t

    version : 4.1.0

    name : USCorePatientIdentifier

    derivedFrom : http://hl7.org/fhir/SearchParameter/Patient-identifier\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : identifier\n\t\t\t

    base :Patient

    type : token

    expression : Patient.identifier\n\t\t\t

    xpath : f:Patient/f:identifier\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-identifier","version":"3.0.1","name":"USCorePatientIdentifier","derivedFrom":"http://hl7.org/fhir/SearchParameter/Patient-identifier","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A patient identifier
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"identifier","base":["Patient"],"type":"token","expression":"Patient.identifier","xpath":"f:Patient/f:identifier","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-patient-name.json b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-name.json new file mode 100644 index 000000000..33feef99b --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-patient-name.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-patient-name","text":{"status":"generated","div":"

    SearchParameter: USCorePatientName

    description : A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-patient-name

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-name\n\t\t\t

    version : 4.1.0

    name : USCorePatientName

    derivedFrom : http://hl7.org/fhir/SearchParameter/Patient-name\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : name\n\t\t\t

    base :Patient

    type : string

    expression : Patient.name\n\t\t\t

    xpath : f:Patient/f:name\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-patient-name","version":"3.0.1","name":"USCorePatientName","derivedFrom":"http://hl7.org/fhir/SearchParameter/Patient-name","status":"active","experimental":false,"date":"2019-08-26T20:15:51+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"name","base":["Patient"],"type":"string","expression":"Patient.name","xpath":"f:Patient/f:name","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-practitioner-identifier.json b/resources/uscore_v3.0.1/SearchParameter-us-core-practitioner-identifier.json new file mode 100644 index 000000000..c0be9f07d --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-practitioner-identifier.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-practitioner-identifier","text":{"status":"generated","div":"

    SearchParameter: USCorePractitionerIdentifier

    description : A practitioner's Identifier
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-practitioner-identifier

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-practitioner-identifier\n\t\t\t

    version : 4.1.0

    name : USCorePractitionerIdentifier

    derivedFrom : http://hl7.org/fhir/SearchParameter/Practitioner-identifier\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : identifier\n\t\t\t

    base :Practitioner

    type : token

    expression : Practitioner.identifier\n\t\t\t

    xpath : f:Practitioner/f:identifier\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitioner-identifier","version":"3.0.1","name":"USCorePractitionerIdentifier","derivedFrom":"http://hl7.org/fhir/SearchParameter/Practitioner-identifier","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A practitioner's Identifier
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"identifier","base":["Practitioner"],"type":"token","expression":"Practitioner.identifier","xpath":"f:Practitioner/f:identifier","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-practitioner-name.json b/resources/uscore_v3.0.1/SearchParameter-us-core-practitioner-name.json new file mode 100644 index 000000000..41675bd22 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-practitioner-name.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-practitioner-name","text":{"status":"generated","div":"

    SearchParameter: USCorePractitionerName

    description : A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-practitioner-name

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-practitioner-name\n\t\t\t

    version : 4.1.0

    name : USCorePractitionerName

    derivedFrom : http://hl7.org/fhir/SearchParameter/Practitioner-name\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : name\n\t\t\t

    base :Practitioner

    type : string

    expression : Practitioner.name\n\t\t\t

    xpath : f:Practitioner/f:name\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : exact (Conformance Expectation = MAY)

    modifier : contains (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitioner-name","version":"3.0.1","name":"USCorePractitionerName","derivedFrom":"http://hl7.org/fhir/SearchParameter/Practitioner-name","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"name","base":["Practitioner"],"type":"string","expression":"Practitioner.name","xpath":"f:Practitioner/f:name","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","exact","contains"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-practitionerrole-practitioner.json b/resources/uscore_v3.0.1/SearchParameter-us-core-practitionerrole-practitioner.json new file mode 100644 index 000000000..e32f41e51 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-practitionerrole-practitioner.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-practitionerrole-practitioner","text":{"status":"generated","div":"

    SearchParameter: USCorePractitionerrolePractitioner

    description : Practitioner that is able to provide the defined services for the organization
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-practitionerrole-practitioner

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-practitionerrole-practitioner\n\t\t\t

    version : 4.1.0

    name : USCorePractitionerrolePractitioner

    derivedFrom : http://hl7.org/fhir/SearchParameter/PractitionerRole-practitioner\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : practitioner\n\t\t\t

    base :PractitionerRole

    type : reference

    expression : PractitionerRole.practitioner\n\t\t\t

    xpath : f:PractitionerRole/f:practitioner\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    chain : identifier (Conformance Expectation = SHALL)

    chain : name (Conformance Expectation = SHALL)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitionerrole-practitioner","version":"3.0.1","name":"USCorePractitionerrolePractitioner","derivedFrom":"http://hl7.org/fhir/SearchParameter/PractitionerRole-practitioner","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Practitioner that is able to provide the defined services for the organization
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"practitioner","base":["PractitionerRole"],"type":"reference","expression":"PractitionerRole.practitioner","xpath":"f:PractitionerRole/f:practitioner","xpathUsage":"normal","target":["Practitioner"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}],"chain":["identifier","name"],"_chain":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-practitionerrole-specialty.json b/resources/uscore_v3.0.1/SearchParameter-us-core-practitionerrole-specialty.json new file mode 100644 index 000000000..f5fd245f2 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-practitionerrole-specialty.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-practitionerrole-specialty","text":{"status":"generated","div":"

    SearchParameter: USCorePractitionerroleSpecialty

    description : The practitioner has this specialty at an organization
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-practitionerrole-specialty

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-practitionerrole-specialty\n\t\t\t

    version : 4.1.0

    name : USCorePractitionerroleSpecialty

    derivedFrom : http://hl7.org/fhir/SearchParameter/PractitionerRole-specialty\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : specialty\n\t\t\t

    base :PractitionerRole

    type : token

    expression : PractitionerRole.specialty\n\t\t\t

    xpath : f:PractitionerRole/f:specialty\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-practitionerrole-specialty","version":"3.0.1","name":"USCorePractitionerroleSpecialty","derivedFrom":"http://hl7.org/fhir/SearchParameter/PractitionerRole-specialty","status":"active","experimental":false,"date":"2019-08-26T20:15:54+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"The practitioner has this specialty at an organization
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"specialty","base":["PractitionerRole"],"type":"token","expression":"PractitionerRole.specialty","xpath":"f:PractitionerRole/f:specialty","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-code.json b/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-code.json new file mode 100644 index 000000000..ce39b686f --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-code.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-procedure-code","text":{"status":"generated","div":"

    SearchParameter: USCoreProcedureCode

    description : A code to identify a procedure
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-procedure-code

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-code\n\t\t\t

    version : 4.1.0

    name : USCoreProcedureCode

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-code\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : code\n\t\t\t

    base :Procedure

    type : token

    expression : Procedure.code\n\t\t\t

    xpath : f:Procedure/f:code\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHOULD)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-code","version":"3.0.1","name":"USCoreProcedureCode","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-code","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"A code to identify a procedure
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"code","base":["Procedure"],"type":"token","expression":"Procedure.code","xpath":"f:Procedure/f:code","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-date.json b/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-date.json new file mode 100644 index 000000000..45fa36a58 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-date.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-procedure-date","text":{"status":"generated","div":"

    SearchParameter: USCoreProcedureDate

    description : When the procedure occurred or is occurring
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-procedure-date

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-date\n\t\t\t

    version : 4.1.0

    name : USCoreProcedureDate

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-date\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : date\n\t\t\t

    base :Procedure

    type : date

    expression : Procedure.occurrence\n\t\t\t

    xpath : f:Procedure/f:occurrenceDateTime\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = SHOULD)

    comparator : eq ( Conformance Expectation = MAY)

    comparator : ne ( Conformance Expectation = MAY)

    comparator : gt ( Conformance Expectation = SHALL)

    comparator : lt ( Conformance Expectation = SHALL)

    comparator : le ( Conformance Expectation = SHALL)

    comparator : sa ( Conformance Expectation = MAY)

    comparator : eb ( Conformance Expectation = MAY)

    comparator : ap ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-date","version":"3.0.1","name":"USCoreProcedureDate","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-date","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"When the procedure occurred or is occurring
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"date","base":["Procedure"],"type":"date","expression":"Procedure.occurrence","xpath":"f:Procedure/f:occurrenceDateTime","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHOULD"}]},"comparator":["eq","ne","gt","lt","le","sa","eb","ap"],"modifier":["missing"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-patient.json b/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-patient.json new file mode 100644 index 000000000..0aa414c35 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-patient.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-procedure-patient","text":{"status":"generated","div":"

    SearchParameter: USCoreProcedurePatient

    description : Search by subject - a patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-procedure-patient

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-patient\n\t\t\t

    version : 4.1.0

    name : USCoreProcedurePatient

    derivedFrom : http://hl7.org/fhir/SearchParameter/clinical-patient\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : patient\n\t\t\t

    base :Procedure

    type : reference

    expression : Procedure.subject.where(resolve() is Patient)\n\t\t\t

    xpath : f:Procedure/f:subject\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = MAY)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : type (Conformance Expectation = MAY)

    modifier : identifier (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-patient","version":"3.0.1","name":"USCoreProcedurePatient","derivedFrom":"http://hl7.org/fhir/SearchParameter/clinical-patient","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Search by subject - a patient
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"patient","base":["Procedure"],"type":"reference","expression":"Procedure.subject.where(resolve() is Patient)","xpath":"f:Procedure/f:subject","xpathUsage":"normal","target":["Patient","Group"],"multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","type","identifier"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-status.json b/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-status.json new file mode 100644 index 000000000..34a22f426 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-procedure-status.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-procedure-status","text":{"status":"generated","div":"

    SearchParameter: USCoreProcedureStatus

    description : preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n


    id us-core-procedure-status

    url : http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-status\n\t\t\t

    version : 4.1.0

    name : USCoreProcedureStatus

    derivedFrom : http://hl7.org/fhir/SearchParameter/Procedure-status\n\t\t\t

    status : active

    experimental False

    date : 2019-08-26

    publisher : HL7 International - US Realm Steering Committee

    contact : http://www.hl7.org/Special/committees/usrealm/index.cfm

    useContext :

    jurisdiction : United States of America (the) (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United\n States of America (the)'})\n\t\t\t

    code : status\n\t\t\t

    base :Procedure

    type : token

    expression : Procedure.status\n\t\t\t

    xpath : f:Procedure/f:status\n\t\t\t

    xpathUsage : normal

    mulitpleOr : True (Conformance Expectation = SHALL)

    mulitpleAnd : True ( Conformance Expectation = MAY)

    modifier : missing (Conformance Expectation = MAY)

    modifier : text (Conformance Expectation = MAY)

    modifier : not (Conformance Expectation = MAY)

    modifier : in (Conformance Expectation = MAY)

    modifier : not-in (Conformance Expectation = MAY)

    modifier : below (Conformance Expectation = MAY)

    modifier : above (Conformance Expectation = MAY)

    modifier : ofType (Conformance Expectation = MAY)

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-procedure-status","version":"3.0.1","name":"USCoreProcedureStatus","derivedFrom":"http://hl7.org/fhir/SearchParameter/Procedure-status","status":"active","experimental":false,"date":"2019-08-26T20:15:53+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
    \nNOTE: This US Core SearchParameter definition extends the usage context of\ncapabilitystatement-expectation\n extension to formally express implementer expectations for these elements:
    \n - multipleAnd
    \n - multipleOr
    \n - modifier
    \n - comparator
    \n - chain
    \n ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"status","base":["Procedure"],"type":"token","expression":"Procedure.status","xpath":"f:Procedure/f:status","xpathUsage":"normal","multipleOr":true,"_multipleOr":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"SHALL"}]},"multipleAnd":true,"_multipleAnd":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},"modifier":["missing","text","not","in","not-in","below","above","ofType"],"_modifier":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation","valueCode":"MAY"}]}]} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/SearchParameter-us-core-race.json b/resources/uscore_v3.0.1/SearchParameter-us-core-race.json new file mode 100644 index 000000000..b6fa4fa36 --- /dev/null +++ b/resources/uscore_v3.0.1/SearchParameter-us-core-race.json @@ -0,0 +1 @@ +{"resourceType":"SearchParameter","id":"us-core-race","text":{"status":"generated","div":"

    Generated Narrative with Details

    id: us-core-race

    url: http://hl7.org/fhir/us/core/SearchParameter/us-core-race

    name: USCoreRace

    status: active

    date: May 21, 2019, 12:00:00 AM

    publisher: US Realm Steering Committee

    contact:

    description: Returns patients with a race extension matching the specified code.

    jurisdiction: United States of America (Details : {urn:iso:std:iso:3166 code 'US' = 'United States of America', given as 'United States of America'})

    code: race

    base: Patient

    type: token

    expression: Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code

    xpath: f:Patient/f:extension[@url='http://hl7.org/fhir/us/core/StructureDefinition/us-core-race']/f:extension/f:valueCoding/f:code/@value

    xpathUsage: normal

    "},"url":"http://hl7.org/fhir/us/core/SearchParameter/us-core-race","name":"USCoreRace","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://www.healthit.gov/"}]}],"description":"Returns patients with a race extension matching the specified code.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"code":"race","base":["Patient"],"type":"token","expression":"Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code","xpath":"f:Patient/f:extension[@url='http://hl7.org/fhir/us/core/StructureDefinition/us-core-race']/f:extension/f:valueCoding/f:code/@value","xpathUsage":"normal"} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-pediatric-bmi-for-age.json b/resources/uscore_v3.0.1/StructureDefinition-pediatric-bmi-for-age.json new file mode 100644 index 000000000..fe9947884 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-pediatric-bmi-for-age.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"pediatric-bmi-for-age","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Observation 0..*
    \".\"\".\"\".\" code 1..1CodeableConceptBMI percentile per age and sex for youth 2-20
    Required Pattern: At least the following
    \".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://loinc.org
    \".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: 59576-9
    \".\"\".\"\".\" valueQuantity 1..1Quantity
    \".\"\".\"\".\"\".\" value S1..1decimal
    \".\"\".\"\".\"\".\" unit S1..1string
    \".\"\".\"\".\"\".\" system S1..1uriFixed Value: http://unitsofmeasure.org
    \".\"\".\"\".\"\".\" code S1..1codeCoded responses from the common UCUM units for vital signs value set.
    Fixed Value: %

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age","name":"USCorePediatricBMIforAgeObservationProfile","title":"US Core Pediatric BMI for Age Observation Profile","status":"active","experimental":false,"date":"2019-08-31T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Observation resource for use in querying and retrieving pediatric BMI observations.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"sct-concept","uri":"http://snomed.info/conceptdomain","name":"SNOMED CT Concept Domain Binding"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"sct-attr","uri":"http://snomed.org/attributebinding","name":"SNOMED CT Attribute Binding"}],"kind":"resource","abstract":false,"type":"Observation","baseDefinition":"http://hl7.org/fhir/StructureDefinition/vitalsigns","derivation":"constraint","snapshot":{"element":[{"id":"Observation","path":"Observation","short":"FHIR Vital Signs Profile","definition":"This profile defines how to represent BMI percentile per age and sex for youth 2-20 observations in FHIR using a standard LOINC code and UCUM units of measure.","comment":"Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.","alias":["Vital Signs","Measurement","Results","Tests"],"min":0,"max":"*","base":{"path":"Observation","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"obs-7","severity":"error","human":"If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present","expression":"value.empty() or component.code.where( (coding.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty()","xpath":"not(f:*[starts-with(local-name(.), 'value')] and (for $coding in f:code/f:coding return f:component/f:code/f:coding[f:code/@value=$coding/f:code/@value] [f:system/@value=$coding/f:system/@value]))","source":"Observation"},{"key":"obs-6","severity":"error","human":"dataAbsentReason SHALL only be present if Observation.value[x] is not present","expression":"dataAbsentReason.empty() or value.empty()","xpath":"not(exists(f:dataAbsentReason)) or (not(exists(*[starts-with(local-name(.), 'value')])))","source":"Observation"},{"key":"vs-2","severity":"error","human":"If there is no component or hasMember element then either a value[x] or a data absent reason must be present.","expression":"(component.empty() and hasMember.empty()) implies (dataAbsentReason or value)","xpath":"f:component or f:memberOF or f:*[starts-with(local-name(.), 'value')] or f:dataAbsentReason","source":"Observation"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"sct-concept","map":"< 363787002 |Observable entity|"},{"identity":"v2","map":"OBX"},{"identity":"rim","map":"Observation[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.id","path":"Observation.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Observation.meta","path":"Observation.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Observation.implicitRules","path":"Observation.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Observation.language","path":"Observation.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Observation.text","path":"Observation.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Observation.contained","path":"Observation.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.extension","path":"Observation.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.modifierExtension","path":"Observation.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.identifier","path":"Observation.identifier","short":"Business Identifier for observation","definition":"A unique identifier assigned to this observation.","requirements":"Allows observations to be distinguished and referenced.","min":0,"max":"*","base":{"path":"Observation.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"OBX.21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 2) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4."},{"identity":"rim","map":"id"}]},{"id":"Observation.basedOn","path":"Observation.basedOn","short":"Fulfills plan, proposal or order","definition":"A plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed.","requirements":"Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.","alias":["Fulfills"],"min":0,"max":"*","base":{"path":"Observation.basedOn","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan","http://hl7.org/fhir/StructureDefinition/DeviceRequest","http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation","http://hl7.org/fhir/StructureDefinition/MedicationRequest","http://hl7.org/fhir/StructureDefinition/NutritionOrder","http://hl7.org/fhir/StructureDefinition/ServiceRequest"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.basedOn"},{"identity":"v2","map":"ORC"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[moodCode=EVN]"}]},{"id":"Observation.partOf","path":"Observation.partOf","short":"Part of referenced event","definition":"A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure.","comment":"To link an Observation to an Encounter use `encounter`. See the [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below for guidance on referencing another Observation.","alias":["Container"],"min":0,"max":"*","base":{"path":"Observation.partOf","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/MedicationAdministration","http://hl7.org/fhir/StructureDefinition/MedicationDispense","http://hl7.org/fhir/StructureDefinition/MedicationStatement","http://hl7.org/fhir/StructureDefinition/Procedure","http://hl7.org/fhir/StructureDefinition/Immunization","http://hl7.org/fhir/StructureDefinition/ImagingStudy"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.partOf"},{"identity":"v2","map":"Varies by domain"},{"identity":"rim","map":".outboundRelationship[typeCode=FLFS].target"}]},{"id":"Observation.status","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint","valueString":"default: final"}],"path":"Observation.status","short":"registered | preliminary | final | amended +","definition":"The status of the result value.","comment":"This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.","requirements":"Need to track the status of individual results. Some results are finalized before the whole report is finalized.","min":1,"max":"1","base":{"path":"Observation.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Status"}],"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/observation-status|4.0.0"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"sct-concept","map":"< 445584004 |Report by finality status|"},{"identity":"v2","map":"OBX-11"},{"identity":"rim","map":"status Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of \"revise\""}]},{"id":"Observation.category","path":"Observation.category","slicing":{"discriminator":[{"type":"value","path":"coding.code"},{"type":"value","path":"coding.system"}],"ordered":false,"rules":"open"},"short":"Classification of type of observation","definition":"A code that classifies the general type of observation being made.","comment":"In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.","requirements":"Used for filtering what observations are retrieved and displayed.","min":1,"max":"*","base":{"path":"Observation.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationCategory"}],"strength":"preferred","description":"Codes for high level observation categories.","valueSet":"http://hl7.org/fhir/ValueSet/observation-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"}]},{"id":"Observation.category:VSCat","path":"Observation.category","sliceName":"VSCat","short":"Classification of type of observation","definition":"A code that classifies the general type of observation being made.","comment":"In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.","requirements":"Used for filtering what observations are retrieved and displayed.","min":1,"max":"1","base":{"path":"Observation.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationCategory"}],"strength":"preferred","description":"Codes for high level observation categories.","valueSet":"http://hl7.org/fhir/ValueSet/observation-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"}]},{"id":"Observation.category:VSCat.id","path":"Observation.category.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.extension","path":"Observation.category.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding","path":"Observation.category.coding","short":"Code defined by a terminology system","definition":"A reference to a code defined by a terminology system.","comment":"Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.","requirements":"Allows for alternative encodings within a code system, and translations to other code systems.","min":1,"max":"*","base":{"path":"CodeableConcept.coding","min":0,"max":"*"},"type":[{"code":"Coding"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1-8, C*E.10-22"},{"identity":"rim","map":"union(., ./translation)"},{"identity":"orim","map":"fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding"}]},{"id":"Observation.category:VSCat.coding.id","path":"Observation.category.coding.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding.extension","path":"Observation.category.coding.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding.system","path":"Observation.category.coding.system","short":"Identity of the terminology system","definition":"The identification of the code system that defines the meaning of the symbol in the code.","comment":"The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.","requirements":"Need to be unambiguous about the source of the definition of the symbol.","min":1,"max":"1","base":{"path":"Coding.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://terminology.hl7.org/CodeSystem/observation-category","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.3"},{"identity":"rim","map":"./codeSystem"},{"identity":"orim","map":"fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem"}]},{"id":"Observation.category:VSCat.coding.version","path":"Observation.category.coding.version","short":"Version of the system - if relevant","definition":"The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.","comment":"Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.","min":0,"max":"1","base":{"path":"Coding.version","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.7"},{"identity":"rim","map":"./codeSystemVersion"},{"identity":"orim","map":"fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion"}]},{"id":"Observation.category:VSCat.coding.code","path":"Observation.category.coding.code","short":"Symbol in syntax defined by the system","definition":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).","requirements":"Need to refer to a particular code in the system.","min":1,"max":"1","base":{"path":"Coding.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"vital-signs","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1"},{"identity":"rim","map":"./code"},{"identity":"orim","map":"fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code"}]},{"id":"Observation.category:VSCat.coding.display","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.category.coding.display","short":"Representation defined by the system","definition":"A representation of the meaning of the code in the system, following the rules of the system.","requirements":"Need to be able to carry a human-readable meaning of the code for readers that do not know the system.","min":0,"max":"1","base":{"path":"Coding.display","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.2 - but note this is not well followed"},{"identity":"rim","map":"CV.displayName"},{"identity":"orim","map":"fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName"}]},{"id":"Observation.category:VSCat.coding.userSelected","path":"Observation.category.coding.userSelected","short":"If this coding was chosen directly by the user","definition":"Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).","comment":"Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.","requirements":"This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.","min":0,"max":"1","base":{"path":"Coding.userSelected","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Sometimes implied by being first"},{"identity":"rim","map":"CD.codingRationale"},{"identity":"orim","map":"fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\\#true a [ fhir:source \"true\"; fhir:target dt:CDCoding.codingRationale\\#O ]"}]},{"id":"Observation.category:VSCat.text","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.category.text","short":"Plain text representation of the concept","definition":"A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.","comment":"Very often the text is the same as a displayName of one of the codings.","requirements":"The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.","min":0,"max":"1","base":{"path":"CodeableConcept.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.9. But note many systems use C*E.2 for this"},{"identity":"rim","map":"./originalText[mediaType/code=\"text/plain\"]/data"},{"identity":"orim","map":"fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText"}]},{"id":"Observation.code","path":"Observation.code","short":"BMI percentile per age and sex for youth 2-20","definition":"Coded Responses from C-CDA Vital Sign Results.","comment":"additional codes that translate or map to this code are allowed. For example a more granular LOINC code or code that is used locally in a system.","requirements":"5. SHALL contain exactly one [1..1] code, where the @code SHOULD be selected from ValueSet HITSP Vital Sign Result Type 2.16.840.1.113883.3.88.12.80.62 DYNAMIC (CONF:7301).","alias":["Name","Test"],"min":1,"max":"1","base":{"path":"Observation.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"59576-9"}]},"mustSupport":false,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSigns"}],"strength":"extensible","description":"This identifies the vital sign result type.","valueSet":"http://hl7.org/fhir/ValueSet/observation-vitalsignresult"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"},{"identity":"sct-attr","map":"116680003 |Is a|"}]},{"id":"Observation.subject","path":"Observation.subject","short":"Who and/or what the observation is about","definition":"The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation.","comment":"One would expect this element to be a cardinality of 1..1. The only circumstance in which the subject can be missing is when the observation is made by a device that does not know the patient. In this case, the observation SHALL be matched to a patient through some context/channel matching technique, and at this point, the observation should be updated.","requirements":"Observations have no value if you don't know who or what they're about.","min":1,"max":"1","base":{"path":"Observation.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":"participation[typeCode=RTGT] "},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"Observation.focus","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status","valueCode":"trial-use"}],"path":"Observation.focus","short":"What the observation is about, when it is not about the subject of record","definition":"The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.","comment":"Typically, an observation is made about the subject - a patient, or group of patients, location, or device - and the distinction between the subject and what is directly measured for an observation is specified in the observation code itself ( e.g., \"Blood Glucose\") and does not need to be represented separately using this element. Use `specimen` if a reference to a specimen is required. If a code is required instead of a resource use either `bodysite` for bodysites or the standard extension [focusCode](http://hl7.org/fhir/R4/extension-observation-focuscode.html).","min":0,"max":"*","base":{"path":"Observation.focus","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"participation[typeCode=SBJ]"},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"Observation.encounter","path":"Observation.encounter","short":"Healthcare event during which this observation is made","definition":"The healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made.","comment":"This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).","requirements":"For some observations it may be important to know the link between an observation and a particular encounter.","alias":["Context"],"min":0,"max":"1","base":{"path":"Observation.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1"},{"identity":"rim","map":"inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]"}]},{"id":"Observation.effective[x]","path":"Observation.effective[x]","short":"Often just a dateTime for Vital Signs","definition":"Often just a dateTime for Vital Signs.","comment":"At least a date should be present unless this observation is a historical report. For recording imprecise or \"fuzzy\" times (For example, a blood glucose measurement taken \"after breakfast\") use the [Timing](http://hl7.org/fhir/R4/datatypes.html#timing) datatype which allow the measurement to be tied to regular life events.","requirements":"Knowing when an observation was deemed true is important to its relevance as well as determining trends.","alias":["Occurrence"],"min":1,"max":"1","base":{"path":"Observation.effective[x]","min":0,"max":"1"},"type":[{"code":"dateTime"},{"code":"Period"}],"constraint":[{"key":"vs-1","severity":"error","human":"if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day","expression":"($this as dateTime).toString().length() >= 8","xpath":"f:effectiveDateTime[matches(@value, '^\\d{4}-\\d{2}-\\d{2}')]"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)"},{"identity":"rim","map":"effectiveTime"}]},{"id":"Observation.issued","path":"Observation.issued","short":"Date/Time this version was made available","definition":"The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.","comment":"For Observations that don’t require review and verification, it may be the same as the [`lastUpdated` ](http://hl7.org/fhir/R4/resource-definitions.html#Meta.lastUpdated) time of the resource itself. For Observations that do require review and verification for certain updates, it might not be the same as the `lastUpdated` time of the resource itself due to a non-clinically significant update that doesn’t require the new version to be reviewed and verified again.","min":0,"max":"1","base":{"path":"Observation.issued","min":0,"max":"1"},"type":[{"code":"instant"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.recorded"},{"identity":"v2","map":"OBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made)"},{"identity":"rim","map":"participation[typeCode=AUT].time"}]},{"id":"Observation.performer","path":"Observation.performer","short":"Who is responsible for the observation","definition":"Who was responsible for asserting the observed value as \"true\".","requirements":"May give a degree of confidence in the observation and also indicates where follow-up questions should be directed.","min":0,"max":"*","base":{"path":"Observation.performer","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/CareTeam","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO'"},{"identity":"rim","map":"participation[typeCode=PRF]"}]},{"id":"Observation.value[x]","path":"Observation.value[x]","slicing":{"discriminator":[{"type":"type","path":"$this"}],"ordered":false,"rules":"closed"},"short":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","definition":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","comment":"An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":0,"max":"1","base":{"path":"Observation.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"}],"condition":["obs-7"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"sct-concept","map":"< 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.value[x]:valueQuantity","path":"Observation.value[x]","sliceName":"valueQuantity","short":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","definition":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","comment":"An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":1,"max":"1","base":{"path":"Observation.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"}],"condition":["obs-7"],"mustSupport":false,"isModifier":false,"isSummary":true,"mapping":[{"identity":"sct-concept","map":"< 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.value[x]:valueQuantity.id","path":"Observation.value[x].id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.value[x]:valueQuantity.extension","path":"Observation.value[x].extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.value[x]:valueQuantity.value","path":"Observation.value[x].value","short":"Numerical value (with implicit precision)","definition":"The value of the measured amount. The value includes an implicit precision in the presentation of the value.","comment":"The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).","requirements":"Precision is handled implicitly in almost all cases of measurement.","min":1,"max":"1","base":{"path":"Quantity.value","min":0,"max":"1"},"type":[{"code":"decimal"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"SN.2 / CQ - N/A"},{"identity":"rim","map":"PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value"}]},{"id":"Observation.value[x]:valueQuantity.comparator","path":"Observation.value[x].comparator","short":"< | <= | >= | > - how to understand the value","definition":"How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value.","requirements":"Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.","min":0,"max":"1","base":{"path":"Quantity.comparator","min":0,"max":"1"},"type":[{"code":"code"}],"meaningWhenMissing":"If there is no comparator, then there is no modification of the value","isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"QuantityComparator"}],"strength":"required","description":"How the Quantity should be understood and represented.","valueSet":"http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.0"},"mapping":[{"identity":"v2","map":"SN.1 / CQ.1"},{"identity":"rim","map":"IVL properties"}]},{"id":"Observation.value[x]:valueQuantity.unit","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.value[x].unit","short":"Unit representation","definition":"A human-readable form of the unit.","requirements":"There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.","min":1,"max":"1","base":{"path":"Quantity.unit","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.unit"}]},{"id":"Observation.value[x]:valueQuantity.system","path":"Observation.value[x].system","short":"System that defines coded unit form","definition":"The identification of the system that provides the coded form of the unit.","requirements":"Need to know the system that defines the coded form of the unit.","min":1,"max":"1","base":{"path":"Quantity.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","condition":["qty-3"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"CO.codeSystem, PQ.translation.codeSystem"}]},{"id":"Observation.value[x]:valueQuantity.code","path":"Observation.value[x].code","short":"Coded responses from the common UCUM units for vital signs value set.","definition":"A computer processable form of the unit in some unit representation system.","comment":"The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.","requirements":"Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.","min":1,"max":"1","base":{"path":"Quantity.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"%","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.code, MO.currency, PQ.translation.code"}]},{"id":"Observation.dataAbsentReason","path":"Observation.dataAbsentReason","short":"Why the result is missing","definition":"Provides a reason why the expected value in the element Observation.value[x] is missing.","comment":"Null or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"specimen unsatisfactory\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Note that an observation may only be reported if there are values to report. For example differential cell counts values may be reported only when > 0. Because of these options, use-case agreements are required to interpret general observations for null or exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.interpretation","path":"Observation.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.note","path":"Observation.note","short":"Comments about the observation","definition":"Comments about the observation or the results.","comment":"May include general statements about the observation, or statements about significant, unexpected or unreliable results values, or information about its source when relevant to its interpretation.","requirements":"Need to be able to provide free text additional information.","min":0,"max":"*","base":{"path":"Observation.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NTE.3 (partner NTE to OBX, or sometimes another (child?) OBX)"},{"identity":"rim","map":"subjectOf.observationEvent[code=\"annotation\"].value"}]},{"id":"Observation.bodySite","path":"Observation.bodySite","short":"Observed body part","definition":"Indicates the site on the subject's body where the observation was made (i.e. the target site).","comment":"Only used if not implicit in code found in Observation.code. In many systems, this may be represented as a related observation instead of an inline component. \n\nIf the use case requires BodySite to be handled as a separate resource (e.g. to identify and track separately) then use the standard extension[ bodySite](http://hl7.org/fhir/R4/extension-bodysite.html).","min":0,"max":"1","base":{"path":"Observation.bodySite","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"BodySite"}],"strength":"example","description":"Codes describing anatomical locations. May include laterality.","valueSet":"http://hl7.org/fhir/ValueSet/body-site"},"mapping":[{"identity":"sct-concept","map":"< 123037004 |Body structure|"},{"identity":"v2","map":"OBX-20"},{"identity":"rim","map":"targetSiteCode"},{"identity":"sct-attr","map":"718497002 |Inherent location|"}]},{"id":"Observation.method","path":"Observation.method","short":"How it was done","definition":"Indicates the mechanism used to perform the observation.","comment":"Only used if not implicit in code for Observation.code.","requirements":"In some cases, method can impact results and is thus used for determining whether results can be compared or determining significance of results.","min":0,"max":"1","base":{"path":"Observation.method","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationMethod"}],"strength":"example","description":"Methods for simple observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-methods"},"mapping":[{"identity":"v2","map":"OBX-17"},{"identity":"rim","map":"methodCode"}]},{"id":"Observation.specimen","path":"Observation.specimen","short":"Specimen used for this observation","definition":"The specimen that was used when this observation was made.","comment":"Should only be used if not implicit in code found in `Observation.code`. Observations are not made on specimens themselves; they are made on a subject, but in many cases by the means of a specimen. Note that although specimens are often involved, they are not always tracked and reported explicitly. Also note that observation resources may be used in contexts that track the specimen explicitly (e.g. Diagnostic Report).","min":0,"max":"1","base":{"path":"Observation.specimen","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Specimen"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"sct-concept","map":"< 123038009 |Specimen|"},{"identity":"v2","map":"SPM segment"},{"identity":"rim","map":"participation[typeCode=SPC].specimen"},{"identity":"sct-attr","map":"704319004 |Inherent in|"}]},{"id":"Observation.device","path":"Observation.device","short":"(Measurement) Device","definition":"The device used to generate the observation data.","comment":"Note that this is not meant to represent a device involved in the transmission of the result, e.g., a gateway. Such devices may be documented using the Provenance resource where relevant.","min":0,"max":"1","base":{"path":"Observation.device","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/DeviceMetric"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"sct-concept","map":"< 49062001 |Device|"},{"identity":"v2","map":"OBX-17 / PRT -10"},{"identity":"rim","map":"participation[typeCode=DEV]"},{"identity":"sct-attr","map":"424226004 |Using device|"}]},{"id":"Observation.referenceRange","path":"Observation.referenceRange","short":"Provides guide for interpretation","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an \"OR\". In other words, to represent two distinct target populations, two `referenceRange` elements would be used.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.referenceRange","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"obs-3","severity":"error","human":"Must have at least a low or a high or text","expression":"low.exists() or high.exists() or text.exists()","xpath":"(exists(f:low) or exists(f:high)or exists(f:text))"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.referenceRange.id","path":"Observation.referenceRange.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.referenceRange.extension","path":"Observation.referenceRange.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.referenceRange.modifierExtension","path":"Observation.referenceRange.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.referenceRange.low","path":"Observation.referenceRange.low","short":"Low Range, if relevant","definition":"The value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3).","min":0,"max":"1","base":{"path":"Observation.referenceRange.low","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"condition":["obs-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:IVL_PQ.low"}]},{"id":"Observation.referenceRange.high","path":"Observation.referenceRange.high","short":"High Range, if relevant","definition":"The value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3).","min":0,"max":"1","base":{"path":"Observation.referenceRange.high","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"condition":["obs-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:IVL_PQ.high"}]},{"id":"Observation.referenceRange.type","path":"Observation.referenceRange.type","short":"Reference range qualifier","definition":"Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range.","comment":"This SHOULD be populated if there is more than one range. If this element is not present then the normal range is assumed.","requirements":"Need to be able to say what kind of reference range this is - normal, recommended, therapeutic, etc., - for proper interpretation.","min":0,"max":"1","base":{"path":"Observation.referenceRange.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationRangeMeaning"}],"strength":"preferred","description":"Code for the meaning of a reference range.","valueSet":"http://hl7.org/fhir/ValueSet/referencerange-meaning"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|"},{"identity":"v2","map":"OBX-10"},{"identity":"rim","map":"interpretationCode"}]},{"id":"Observation.referenceRange.appliesTo","path":"Observation.referenceRange.appliesTo","short":"Reference range population","definition":"Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an \"AND\" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used.","comment":"This SHOULD be populated if there is more than one range. If this element is not present then the normal population is assumed.","requirements":"Need to be able to identify the target population for proper interpretation.","min":0,"max":"*","base":{"path":"Observation.referenceRange.appliesTo","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationRangeType"}],"strength":"example","description":"Codes identifying the population the reference range applies to.","valueSet":"http://hl7.org/fhir/ValueSet/referencerange-appliesto"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|"},{"identity":"v2","map":"OBX-10"},{"identity":"rim","map":"interpretationCode"}]},{"id":"Observation.referenceRange.age","path":"Observation.referenceRange.age","short":"Applicable age range, if relevant","definition":"The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.","requirements":"Some analytes vary greatly over age.","min":0,"max":"1","base":{"path":"Observation.referenceRange.age","min":0,"max":"1"},"type":[{"code":"Range"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"outboundRelationship[typeCode=PRCN].targetObservationCriterion[code=\"age\"].value"}]},{"id":"Observation.referenceRange.text","path":"Observation.referenceRange.text","short":"Text based reference range in an observation","definition":"Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of \"Negative\" or a list or table of \"normals\".","min":0,"max":"1","base":{"path":"Observation.referenceRange.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:ST"}]},{"id":"Observation.hasMember","path":"Observation.hasMember","short":"Used when reporting vital signs panel components","definition":"Used when reporting vital signs panel components.","comment":"When using this element, an observation will typically have either a value or a set of related resources, although both may be present in some cases. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below. Note that a system may calculate results from [QuestionnaireResponse](http://hl7.org/fhir/R4/questionnaireresponse.html) into a final score and represent the score as an Observation.","min":0,"max":"*","base":{"path":"Observation.hasMember","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse","http://hl7.org/fhir/StructureDefinition/MolecularSequence","http://hl7.org/fhir/StructureDefinition/vitalsigns"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Relationships established by OBX-4 usage"},{"identity":"rim","map":"outBoundRelationship"}]},{"id":"Observation.derivedFrom","path":"Observation.derivedFrom","short":"Related measurements the observation is made from","definition":"The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image.","comment":"All the reference choices that are listed in this element can represent clinical observations and other measurements that may be the source for a derived value. The most common reference will be another Observation. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below.","min":0,"max":"*","base":{"path":"Observation.derivedFrom","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/DocumentReference","http://hl7.org/fhir/StructureDefinition/ImagingStudy","http://hl7.org/fhir/StructureDefinition/Media","http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse","http://hl7.org/fhir/StructureDefinition/MolecularSequence","http://hl7.org/fhir/StructureDefinition/vitalsigns"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Relationships established by OBX-4 usage"},{"identity":"rim","map":".targetObservation"}]},{"id":"Observation.component","path":"Observation.component","short":"Used when reporting systolic and diastolic blood pressure.","definition":"Used when reporting systolic and diastolic blood pressure.","comment":"For a discussion on the ways Observations can be assembled in groups together see [Notes](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"Component observations share the same attributes in the Observation resource as the primary observation and are always treated a part of a single observation (they are not separable). However, the reference range for the primary observation value is not inherited by the component values and is required when appropriate for each component observation.","min":0,"max":"*","base":{"path":"Observation.component","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"vs-3","severity":"error","human":"If there is no a value a data absent reason must be present","expression":"value.exists() or dataAbsentReason.exists()","xpath":"f:*[starts-with(local-name(.), 'value')] or f:dataAbsentReason"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"containment by OBX-4?"},{"identity":"rim","map":"outBoundRelationship[typeCode=COMP]"}]},{"id":"Observation.component.id","path":"Observation.component.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component.extension","path":"Observation.component.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component.modifierExtension","path":"Observation.component.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.component.code","path":"Observation.component.code","short":"Type of component observation (code / type)","definition":"Describes what was observed. Sometimes this is called the observation \"code\".","comment":"*All* code-value and component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.","requirements":"Knowing what kind of observation is being made is essential to understanding the observation.","min":1,"max":"1","base":{"path":"Observation.component.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSigns"}],"strength":"extensible","description":"This identifies the vital sign result type.","valueSet":"http://hl7.org/fhir/ValueSet/observation-vitalsignresult"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR \r< 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"}]},{"id":"Observation.component.value[x]","path":"Observation.component.value[x]","short":"Vital Sign Value recorded with UCUM","definition":"Vital Sign Value recorded with UCUM.","comment":"Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":0,"max":"1","base":{"path":"Observation.component.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"},{"code":"CodeableConcept"},{"code":"string"},{"code":"boolean"},{"code":"integer"},{"code":"Range"},{"code":"Ratio"},{"code":"SampledData"},{"code":"time"},{"code":"dateTime"},{"code":"Period"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSignsUnits"}],"strength":"required","description":"Common UCUM units for recording Vital Signs.","valueSet":"http://hl7.org/fhir/ValueSet/ucum-vitals-common|4.0.0"},"mapping":[{"identity":"sct-concept","map":"363714003 |Interprets| < 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.component.dataAbsentReason","path":"Observation.component.dataAbsentReason","short":"Why the component result is missing","definition":"Provides a reason why the expected value in the element Observation.component.value[x] is missing.","comment":"\"Null\" or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"test not done\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Because of these options, use-case agreements are required to interpret general observations for exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.component.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.component.interpretation","path":"Observation.component.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.component.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.component.referenceRange","path":"Observation.component.referenceRange","short":"Provides guide for interpretation of component result","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.component.referenceRange","min":0,"max":"*"},"contentReference":"#Observation.referenceRange","isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]}]},"differential":{"element":[{"id":"Observation","path":"Observation","definition":"This profile defines how to represent BMI percentile per age and sex for youth 2-20 observations in FHIR using a standard LOINC code and UCUM units of measure.","mustSupport":false},{"id":"Observation.code","path":"Observation.code","short":"BMI percentile per age and sex for youth 2-20","comment":"additional codes that translate or map to this code are allowed. For example a more granular LOINC code or code that is used locally in a system.","alias":["Test","Name"],"type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"59576-9"}]},"mustSupport":false},{"id":"Observation.valueQuantity","path":"Observation.valueQuantity","min":1,"max":"1","mustSupport":false},{"id":"Observation.valueQuantity.value","path":"Observation.valueQuantity.value","min":1,"max":"1","type":[{"code":"decimal"}],"mustSupport":true},{"id":"Observation.valueQuantity.unit","path":"Observation.valueQuantity.unit","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Observation.valueQuantity.system","path":"Observation.valueQuantity.system","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","mustSupport":true},{"id":"Observation.valueQuantity.code","path":"Observation.valueQuantity.code","short":"Coded responses from the common UCUM units for vital signs value set.","min":1,"max":"1","type":[{"code":"code"}],"fixedCode":"%","mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-pediatric-weight-for-height.json b/resources/uscore_v3.0.1/StructureDefinition-pediatric-weight-for-height.json new file mode 100644 index 000000000..634394941 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-pediatric-weight-for-height.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"pediatric-weight-for-height","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Observation 0..*
    \".\"\".\"\".\" code 1..1CodeableConceptWeight-for-length per age and gender
    Required Pattern: At least the following
    \".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://loinc.org
    \".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: 77606-2
    \".\"\".\"\".\" valueQuantity 1..1Quantity
    \".\"\".\"\".\"\".\" value S1..1decimal
    \".\"\".\"\".\"\".\" unit S1..1string
    \".\"\".\"\".\"\".\" system S1..1uriFixed Value: http://unitsofmeasure.org
    \".\"\".\"\".\"\".\" code S1..1codeCoded responses from the common UCUM units for vital signs value set.
    Fixed Value: %

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height","name":"USCorePediatricWeightForHeightObservationProfile","title":"US Core Pediatric Weight for Height Observation Profile","status":"active","experimental":false,"date":"2019-08-31T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Observation resource for use in querying and retrieving pediatric Weight-for-length per age and gender observations.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"sct-concept","uri":"http://snomed.info/conceptdomain","name":"SNOMED CT Concept Domain Binding"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"sct-attr","uri":"http://snomed.org/attributebinding","name":"SNOMED CT Attribute Binding"}],"kind":"resource","abstract":false,"type":"Observation","baseDefinition":"http://hl7.org/fhir/StructureDefinition/vitalsigns","derivation":"constraint","snapshot":{"element":[{"id":"Observation","path":"Observation","short":"FHIR Vital Signs Profile","definition":"This profile defines how to represent Weight-for-length per age and gender observations in FHIR using a standard LOINC code and UCUM units of measure.","comment":"Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.","alias":["Vital Signs","Measurement","Results","Tests"],"min":0,"max":"*","base":{"path":"Observation","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"obs-7","severity":"error","human":"If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present","expression":"value.empty() or component.code.where( (coding.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty()","xpath":"not(f:*[starts-with(local-name(.), 'value')] and (for $coding in f:code/f:coding return f:component/f:code/f:coding[f:code/@value=$coding/f:code/@value] [f:system/@value=$coding/f:system/@value]))","source":"Observation"},{"key":"obs-6","severity":"error","human":"dataAbsentReason SHALL only be present if Observation.value[x] is not present","expression":"dataAbsentReason.empty() or value.empty()","xpath":"not(exists(f:dataAbsentReason)) or (not(exists(*[starts-with(local-name(.), 'value')])))","source":"Observation"},{"key":"vs-2","severity":"error","human":"If there is no component or hasMember element then either a value[x] or a data absent reason must be present.","expression":"(component.empty() and hasMember.empty()) implies (dataAbsentReason or value)","xpath":"f:component or f:memberOF or f:*[starts-with(local-name(.), 'value')] or f:dataAbsentReason","source":"Observation"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"sct-concept","map":"< 363787002 |Observable entity|"},{"identity":"v2","map":"OBX"},{"identity":"rim","map":"Observation[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.id","path":"Observation.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Observation.meta","path":"Observation.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Observation.implicitRules","path":"Observation.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Observation.language","path":"Observation.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Observation.text","path":"Observation.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Observation.contained","path":"Observation.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.extension","path":"Observation.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.modifierExtension","path":"Observation.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.identifier","path":"Observation.identifier","short":"Business Identifier for observation","definition":"A unique identifier assigned to this observation.","requirements":"Allows observations to be distinguished and referenced.","min":0,"max":"*","base":{"path":"Observation.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"OBX.21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 2) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4."},{"identity":"rim","map":"id"}]},{"id":"Observation.basedOn","path":"Observation.basedOn","short":"Fulfills plan, proposal or order","definition":"A plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed.","requirements":"Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.","alias":["Fulfills"],"min":0,"max":"*","base":{"path":"Observation.basedOn","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan","http://hl7.org/fhir/StructureDefinition/DeviceRequest","http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation","http://hl7.org/fhir/StructureDefinition/MedicationRequest","http://hl7.org/fhir/StructureDefinition/NutritionOrder","http://hl7.org/fhir/StructureDefinition/ServiceRequest"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.basedOn"},{"identity":"v2","map":"ORC"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[moodCode=EVN]"}]},{"id":"Observation.partOf","path":"Observation.partOf","short":"Part of referenced event","definition":"A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure.","comment":"To link an Observation to an Encounter use `encounter`. See the [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below for guidance on referencing another Observation.","alias":["Container"],"min":0,"max":"*","base":{"path":"Observation.partOf","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/MedicationAdministration","http://hl7.org/fhir/StructureDefinition/MedicationDispense","http://hl7.org/fhir/StructureDefinition/MedicationStatement","http://hl7.org/fhir/StructureDefinition/Procedure","http://hl7.org/fhir/StructureDefinition/Immunization","http://hl7.org/fhir/StructureDefinition/ImagingStudy"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.partOf"},{"identity":"v2","map":"Varies by domain"},{"identity":"rim","map":".outboundRelationship[typeCode=FLFS].target"}]},{"id":"Observation.status","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint","valueString":"default: final"}],"path":"Observation.status","short":"registered | preliminary | final | amended +","definition":"The status of the result value.","comment":"This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.","requirements":"Need to track the status of individual results. Some results are finalized before the whole report is finalized.","min":1,"max":"1","base":{"path":"Observation.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Status"}],"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/observation-status|4.0.0"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"sct-concept","map":"< 445584004 |Report by finality status|"},{"identity":"v2","map":"OBX-11"},{"identity":"rim","map":"status Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of \"revise\""}]},{"id":"Observation.category","path":"Observation.category","slicing":{"discriminator":[{"type":"value","path":"coding.code"},{"type":"value","path":"coding.system"}],"ordered":false,"rules":"open"},"short":"Classification of type of observation","definition":"A code that classifies the general type of observation being made.","comment":"In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.","requirements":"Used for filtering what observations are retrieved and displayed.","min":1,"max":"*","base":{"path":"Observation.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationCategory"}],"strength":"preferred","description":"Codes for high level observation categories.","valueSet":"http://hl7.org/fhir/ValueSet/observation-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"}]},{"id":"Observation.category:VSCat","path":"Observation.category","sliceName":"VSCat","short":"Classification of type of observation","definition":"A code that classifies the general type of observation being made.","comment":"In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.","requirements":"Used for filtering what observations are retrieved and displayed.","min":1,"max":"1","base":{"path":"Observation.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationCategory"}],"strength":"preferred","description":"Codes for high level observation categories.","valueSet":"http://hl7.org/fhir/ValueSet/observation-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"}]},{"id":"Observation.category:VSCat.id","path":"Observation.category.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.extension","path":"Observation.category.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding","path":"Observation.category.coding","short":"Code defined by a terminology system","definition":"A reference to a code defined by a terminology system.","comment":"Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.","requirements":"Allows for alternative encodings within a code system, and translations to other code systems.","min":1,"max":"*","base":{"path":"CodeableConcept.coding","min":0,"max":"*"},"type":[{"code":"Coding"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1-8, C*E.10-22"},{"identity":"rim","map":"union(., ./translation)"},{"identity":"orim","map":"fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding"}]},{"id":"Observation.category:VSCat.coding.id","path":"Observation.category.coding.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding.extension","path":"Observation.category.coding.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding.system","path":"Observation.category.coding.system","short":"Identity of the terminology system","definition":"The identification of the code system that defines the meaning of the symbol in the code.","comment":"The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.","requirements":"Need to be unambiguous about the source of the definition of the symbol.","min":1,"max":"1","base":{"path":"Coding.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://terminology.hl7.org/CodeSystem/observation-category","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.3"},{"identity":"rim","map":"./codeSystem"},{"identity":"orim","map":"fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem"}]},{"id":"Observation.category:VSCat.coding.version","path":"Observation.category.coding.version","short":"Version of the system - if relevant","definition":"The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.","comment":"Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.","min":0,"max":"1","base":{"path":"Coding.version","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.7"},{"identity":"rim","map":"./codeSystemVersion"},{"identity":"orim","map":"fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion"}]},{"id":"Observation.category:VSCat.coding.code","path":"Observation.category.coding.code","short":"Symbol in syntax defined by the system","definition":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).","requirements":"Need to refer to a particular code in the system.","min":1,"max":"1","base":{"path":"Coding.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"vital-signs","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1"},{"identity":"rim","map":"./code"},{"identity":"orim","map":"fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code"}]},{"id":"Observation.category:VSCat.coding.display","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.category.coding.display","short":"Representation defined by the system","definition":"A representation of the meaning of the code in the system, following the rules of the system.","requirements":"Need to be able to carry a human-readable meaning of the code for readers that do not know the system.","min":0,"max":"1","base":{"path":"Coding.display","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.2 - but note this is not well followed"},{"identity":"rim","map":"CV.displayName"},{"identity":"orim","map":"fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName"}]},{"id":"Observation.category:VSCat.coding.userSelected","path":"Observation.category.coding.userSelected","short":"If this coding was chosen directly by the user","definition":"Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).","comment":"Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.","requirements":"This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.","min":0,"max":"1","base":{"path":"Coding.userSelected","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Sometimes implied by being first"},{"identity":"rim","map":"CD.codingRationale"},{"identity":"orim","map":"fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\\#true a [ fhir:source \"true\"; fhir:target dt:CDCoding.codingRationale\\#O ]"}]},{"id":"Observation.category:VSCat.text","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.category.text","short":"Plain text representation of the concept","definition":"A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.","comment":"Very often the text is the same as a displayName of one of the codings.","requirements":"The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.","min":0,"max":"1","base":{"path":"CodeableConcept.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.9. But note many systems use C*E.2 for this"},{"identity":"rim","map":"./originalText[mediaType/code=\"text/plain\"]/data"},{"identity":"orim","map":"fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText"}]},{"id":"Observation.code","path":"Observation.code","short":"Weight-for-length per age and gender","definition":"Coded Responses from C-CDA Vital Sign Results.","comment":"additional codes that translate or map to this code are allowed. For example a more granular LOINC code or code that is used locally in a system.","requirements":"5. SHALL contain exactly one [1..1] code, where the @code SHOULD be selected from ValueSet HITSP Vital Sign Result Type 2.16.840.1.113883.3.88.12.80.62 DYNAMIC (CONF:7301).","alias":["Name","Test"],"min":1,"max":"1","base":{"path":"Observation.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"77606-2"}]},"mustSupport":false,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSigns"}],"strength":"extensible","description":"This identifies the vital sign result type.","valueSet":"http://hl7.org/fhir/ValueSet/observation-vitalsignresult"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"},{"identity":"sct-attr","map":"116680003 |Is a|"}]},{"id":"Observation.subject","path":"Observation.subject","short":"Who and/or what the observation is about","definition":"The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation.","comment":"One would expect this element to be a cardinality of 1..1. The only circumstance in which the subject can be missing is when the observation is made by a device that does not know the patient. In this case, the observation SHALL be matched to a patient through some context/channel matching technique, and at this point, the observation should be updated.","requirements":"Observations have no value if you don't know who or what they're about.","min":1,"max":"1","base":{"path":"Observation.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":"participation[typeCode=RTGT] "},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"Observation.focus","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status","valueCode":"trial-use"}],"path":"Observation.focus","short":"What the observation is about, when it is not about the subject of record","definition":"The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.","comment":"Typically, an observation is made about the subject - a patient, or group of patients, location, or device - and the distinction between the subject and what is directly measured for an observation is specified in the observation code itself ( e.g., \"Blood Glucose\") and does not need to be represented separately using this element. Use `specimen` if a reference to a specimen is required. If a code is required instead of a resource use either `bodysite` for bodysites or the standard extension [focusCode](http://hl7.org/fhir/R4/extension-observation-focuscode.html).","min":0,"max":"*","base":{"path":"Observation.focus","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"participation[typeCode=SBJ]"},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"Observation.encounter","path":"Observation.encounter","short":"Healthcare event during which this observation is made","definition":"The healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made.","comment":"This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).","requirements":"For some observations it may be important to know the link between an observation and a particular encounter.","alias":["Context"],"min":0,"max":"1","base":{"path":"Observation.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1"},{"identity":"rim","map":"inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]"}]},{"id":"Observation.effective[x]","path":"Observation.effective[x]","short":"Often just a dateTime for Vital Signs","definition":"Often just a dateTime for Vital Signs.","comment":"At least a date should be present unless this observation is a historical report. For recording imprecise or \"fuzzy\" times (For example, a blood glucose measurement taken \"after breakfast\") use the [Timing](http://hl7.org/fhir/R4/datatypes.html#timing) datatype which allow the measurement to be tied to regular life events.","requirements":"Knowing when an observation was deemed true is important to its relevance as well as determining trends.","alias":["Occurrence"],"min":1,"max":"1","base":{"path":"Observation.effective[x]","min":0,"max":"1"},"type":[{"code":"dateTime"},{"code":"Period"}],"constraint":[{"key":"vs-1","severity":"error","human":"if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day","expression":"($this as dateTime).toString().length() >= 8","xpath":"f:effectiveDateTime[matches(@value, '^\\d{4}-\\d{2}-\\d{2}')]"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)"},{"identity":"rim","map":"effectiveTime"}]},{"id":"Observation.issued","path":"Observation.issued","short":"Date/Time this version was made available","definition":"The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.","comment":"For Observations that don’t require review and verification, it may be the same as the [`lastUpdated` ](http://hl7.org/fhir/R4/resource-definitions.html#Meta.lastUpdated) time of the resource itself. For Observations that do require review and verification for certain updates, it might not be the same as the `lastUpdated` time of the resource itself due to a non-clinically significant update that doesn’t require the new version to be reviewed and verified again.","min":0,"max":"1","base":{"path":"Observation.issued","min":0,"max":"1"},"type":[{"code":"instant"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.recorded"},{"identity":"v2","map":"OBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made)"},{"identity":"rim","map":"participation[typeCode=AUT].time"}]},{"id":"Observation.performer","path":"Observation.performer","short":"Who is responsible for the observation","definition":"Who was responsible for asserting the observed value as \"true\".","requirements":"May give a degree of confidence in the observation and also indicates where follow-up questions should be directed.","min":0,"max":"*","base":{"path":"Observation.performer","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/CareTeam","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO'"},{"identity":"rim","map":"participation[typeCode=PRF]"}]},{"id":"Observation.value[x]","path":"Observation.value[x]","slicing":{"discriminator":[{"type":"type","path":"$this"}],"ordered":false,"rules":"closed"},"short":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","definition":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","comment":"An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":0,"max":"1","base":{"path":"Observation.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"}],"condition":["obs-7"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"sct-concept","map":"< 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.value[x]:valueQuantity","path":"Observation.value[x]","sliceName":"valueQuantity","short":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","definition":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","comment":"An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":1,"max":"1","base":{"path":"Observation.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"}],"condition":["obs-7"],"mustSupport":false,"isModifier":false,"isSummary":true,"mapping":[{"identity":"sct-concept","map":"< 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.value[x]:valueQuantity.id","path":"Observation.value[x].id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.value[x]:valueQuantity.extension","path":"Observation.value[x].extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.value[x]:valueQuantity.value","path":"Observation.value[x].value","short":"Numerical value (with implicit precision)","definition":"The value of the measured amount. The value includes an implicit precision in the presentation of the value.","comment":"The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).","requirements":"Precision is handled implicitly in almost all cases of measurement.","min":1,"max":"1","base":{"path":"Quantity.value","min":0,"max":"1"},"type":[{"code":"decimal"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"SN.2 / CQ - N/A"},{"identity":"rim","map":"PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value"}]},{"id":"Observation.value[x]:valueQuantity.comparator","path":"Observation.value[x].comparator","short":"< | <= | >= | > - how to understand the value","definition":"How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value.","requirements":"Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.","min":0,"max":"1","base":{"path":"Quantity.comparator","min":0,"max":"1"},"type":[{"code":"code"}],"meaningWhenMissing":"If there is no comparator, then there is no modification of the value","isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"QuantityComparator"}],"strength":"required","description":"How the Quantity should be understood and represented.","valueSet":"http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.0"},"mapping":[{"identity":"v2","map":"SN.1 / CQ.1"},{"identity":"rim","map":"IVL properties"}]},{"id":"Observation.value[x]:valueQuantity.unit","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.value[x].unit","short":"Unit representation","definition":"A human-readable form of the unit.","requirements":"There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.","min":1,"max":"1","base":{"path":"Quantity.unit","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.unit"}]},{"id":"Observation.value[x]:valueQuantity.system","path":"Observation.value[x].system","short":"System that defines coded unit form","definition":"The identification of the system that provides the coded form of the unit.","requirements":"Need to know the system that defines the coded form of the unit.","min":1,"max":"1","base":{"path":"Quantity.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","condition":["qty-3"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"CO.codeSystem, PQ.translation.codeSystem"}]},{"id":"Observation.value[x]:valueQuantity.code","path":"Observation.value[x].code","short":"Coded responses from the common UCUM units for vital signs value set.","definition":"A computer processable form of the unit in some unit representation system.","comment":"The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.","requirements":"Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.","min":1,"max":"1","base":{"path":"Quantity.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"%","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.code, MO.currency, PQ.translation.code"}]},{"id":"Observation.dataAbsentReason","path":"Observation.dataAbsentReason","short":"Why the result is missing","definition":"Provides a reason why the expected value in the element Observation.value[x] is missing.","comment":"Null or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"specimen unsatisfactory\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Note that an observation may only be reported if there are values to report. For example differential cell counts values may be reported only when > 0. Because of these options, use-case agreements are required to interpret general observations for null or exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.interpretation","path":"Observation.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.note","path":"Observation.note","short":"Comments about the observation","definition":"Comments about the observation or the results.","comment":"May include general statements about the observation, or statements about significant, unexpected or unreliable results values, or information about its source when relevant to its interpretation.","requirements":"Need to be able to provide free text additional information.","min":0,"max":"*","base":{"path":"Observation.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NTE.3 (partner NTE to OBX, or sometimes another (child?) OBX)"},{"identity":"rim","map":"subjectOf.observationEvent[code=\"annotation\"].value"}]},{"id":"Observation.bodySite","path":"Observation.bodySite","short":"Observed body part","definition":"Indicates the site on the subject's body where the observation was made (i.e. the target site).","comment":"Only used if not implicit in code found in Observation.code. In many systems, this may be represented as a related observation instead of an inline component. \n\nIf the use case requires BodySite to be handled as a separate resource (e.g. to identify and track separately) then use the standard extension[ bodySite](http://hl7.org/fhir/R4/extension-bodysite.html).","min":0,"max":"1","base":{"path":"Observation.bodySite","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"BodySite"}],"strength":"example","description":"Codes describing anatomical locations. May include laterality.","valueSet":"http://hl7.org/fhir/ValueSet/body-site"},"mapping":[{"identity":"sct-concept","map":"< 123037004 |Body structure|"},{"identity":"v2","map":"OBX-20"},{"identity":"rim","map":"targetSiteCode"},{"identity":"sct-attr","map":"718497002 |Inherent location|"}]},{"id":"Observation.method","path":"Observation.method","short":"How it was done","definition":"Indicates the mechanism used to perform the observation.","comment":"Only used if not implicit in code for Observation.code.","requirements":"In some cases, method can impact results and is thus used for determining whether results can be compared or determining significance of results.","min":0,"max":"1","base":{"path":"Observation.method","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationMethod"}],"strength":"example","description":"Methods for simple observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-methods"},"mapping":[{"identity":"v2","map":"OBX-17"},{"identity":"rim","map":"methodCode"}]},{"id":"Observation.specimen","path":"Observation.specimen","short":"Specimen used for this observation","definition":"The specimen that was used when this observation was made.","comment":"Should only be used if not implicit in code found in `Observation.code`. Observations are not made on specimens themselves; they are made on a subject, but in many cases by the means of a specimen. Note that although specimens are often involved, they are not always tracked and reported explicitly. Also note that observation resources may be used in contexts that track the specimen explicitly (e.g. Diagnostic Report).","min":0,"max":"1","base":{"path":"Observation.specimen","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Specimen"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"sct-concept","map":"< 123038009 |Specimen|"},{"identity":"v2","map":"SPM segment"},{"identity":"rim","map":"participation[typeCode=SPC].specimen"},{"identity":"sct-attr","map":"704319004 |Inherent in|"}]},{"id":"Observation.device","path":"Observation.device","short":"(Measurement) Device","definition":"The device used to generate the observation data.","comment":"Note that this is not meant to represent a device involved in the transmission of the result, e.g., a gateway. Such devices may be documented using the Provenance resource where relevant.","min":0,"max":"1","base":{"path":"Observation.device","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/DeviceMetric"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"sct-concept","map":"< 49062001 |Device|"},{"identity":"v2","map":"OBX-17 / PRT -10"},{"identity":"rim","map":"participation[typeCode=DEV]"},{"identity":"sct-attr","map":"424226004 |Using device|"}]},{"id":"Observation.referenceRange","path":"Observation.referenceRange","short":"Provides guide for interpretation","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an \"OR\". In other words, to represent two distinct target populations, two `referenceRange` elements would be used.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.referenceRange","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"obs-3","severity":"error","human":"Must have at least a low or a high or text","expression":"low.exists() or high.exists() or text.exists()","xpath":"(exists(f:low) or exists(f:high)or exists(f:text))"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.referenceRange.id","path":"Observation.referenceRange.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.referenceRange.extension","path":"Observation.referenceRange.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.referenceRange.modifierExtension","path":"Observation.referenceRange.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.referenceRange.low","path":"Observation.referenceRange.low","short":"Low Range, if relevant","definition":"The value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3).","min":0,"max":"1","base":{"path":"Observation.referenceRange.low","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"condition":["obs-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:IVL_PQ.low"}]},{"id":"Observation.referenceRange.high","path":"Observation.referenceRange.high","short":"High Range, if relevant","definition":"The value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3).","min":0,"max":"1","base":{"path":"Observation.referenceRange.high","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"condition":["obs-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:IVL_PQ.high"}]},{"id":"Observation.referenceRange.type","path":"Observation.referenceRange.type","short":"Reference range qualifier","definition":"Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range.","comment":"This SHOULD be populated if there is more than one range. If this element is not present then the normal range is assumed.","requirements":"Need to be able to say what kind of reference range this is - normal, recommended, therapeutic, etc., - for proper interpretation.","min":0,"max":"1","base":{"path":"Observation.referenceRange.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationRangeMeaning"}],"strength":"preferred","description":"Code for the meaning of a reference range.","valueSet":"http://hl7.org/fhir/ValueSet/referencerange-meaning"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|"},{"identity":"v2","map":"OBX-10"},{"identity":"rim","map":"interpretationCode"}]},{"id":"Observation.referenceRange.appliesTo","path":"Observation.referenceRange.appliesTo","short":"Reference range population","definition":"Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an \"AND\" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used.","comment":"This SHOULD be populated if there is more than one range. If this element is not present then the normal population is assumed.","requirements":"Need to be able to identify the target population for proper interpretation.","min":0,"max":"*","base":{"path":"Observation.referenceRange.appliesTo","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationRangeType"}],"strength":"example","description":"Codes identifying the population the reference range applies to.","valueSet":"http://hl7.org/fhir/ValueSet/referencerange-appliesto"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|"},{"identity":"v2","map":"OBX-10"},{"identity":"rim","map":"interpretationCode"}]},{"id":"Observation.referenceRange.age","path":"Observation.referenceRange.age","short":"Applicable age range, if relevant","definition":"The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.","requirements":"Some analytes vary greatly over age.","min":0,"max":"1","base":{"path":"Observation.referenceRange.age","min":0,"max":"1"},"type":[{"code":"Range"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"outboundRelationship[typeCode=PRCN].targetObservationCriterion[code=\"age\"].value"}]},{"id":"Observation.referenceRange.text","path":"Observation.referenceRange.text","short":"Text based reference range in an observation","definition":"Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of \"Negative\" or a list or table of \"normals\".","min":0,"max":"1","base":{"path":"Observation.referenceRange.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:ST"}]},{"id":"Observation.hasMember","path":"Observation.hasMember","short":"Used when reporting vital signs panel components","definition":"Used when reporting vital signs panel components.","comment":"When using this element, an observation will typically have either a value or a set of related resources, although both may be present in some cases. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below. Note that a system may calculate results from [QuestionnaireResponse](http://hl7.org/fhir/R4/questionnaireresponse.html) into a final score and represent the score as an Observation.","min":0,"max":"*","base":{"path":"Observation.hasMember","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse","http://hl7.org/fhir/StructureDefinition/MolecularSequence","http://hl7.org/fhir/StructureDefinition/vitalsigns"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Relationships established by OBX-4 usage"},{"identity":"rim","map":"outBoundRelationship"}]},{"id":"Observation.derivedFrom","path":"Observation.derivedFrom","short":"Related measurements the observation is made from","definition":"The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image.","comment":"All the reference choices that are listed in this element can represent clinical observations and other measurements that may be the source for a derived value. The most common reference will be another Observation. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below.","min":0,"max":"*","base":{"path":"Observation.derivedFrom","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/DocumentReference","http://hl7.org/fhir/StructureDefinition/ImagingStudy","http://hl7.org/fhir/StructureDefinition/Media","http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse","http://hl7.org/fhir/StructureDefinition/MolecularSequence","http://hl7.org/fhir/StructureDefinition/vitalsigns"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Relationships established by OBX-4 usage"},{"identity":"rim","map":".targetObservation"}]},{"id":"Observation.component","path":"Observation.component","short":"Used when reporting systolic and diastolic blood pressure.","definition":"Used when reporting systolic and diastolic blood pressure.","comment":"For a discussion on the ways Observations can be assembled in groups together see [Notes](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"Component observations share the same attributes in the Observation resource as the primary observation and are always treated a part of a single observation (they are not separable). However, the reference range for the primary observation value is not inherited by the component values and is required when appropriate for each component observation.","min":0,"max":"*","base":{"path":"Observation.component","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"vs-3","severity":"error","human":"If there is no a value a data absent reason must be present","expression":"value.exists() or dataAbsentReason.exists()","xpath":"f:*[starts-with(local-name(.), 'value')] or f:dataAbsentReason"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"containment by OBX-4?"},{"identity":"rim","map":"outBoundRelationship[typeCode=COMP]"}]},{"id":"Observation.component.id","path":"Observation.component.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component.extension","path":"Observation.component.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component.modifierExtension","path":"Observation.component.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.component.code","path":"Observation.component.code","short":"Type of component observation (code / type)","definition":"Describes what was observed. Sometimes this is called the observation \"code\".","comment":"*All* code-value and component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.","requirements":"Knowing what kind of observation is being made is essential to understanding the observation.","min":1,"max":"1","base":{"path":"Observation.component.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSigns"}],"strength":"extensible","description":"This identifies the vital sign result type.","valueSet":"http://hl7.org/fhir/ValueSet/observation-vitalsignresult"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR \r< 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"}]},{"id":"Observation.component.value[x]","path":"Observation.component.value[x]","short":"Vital Sign Value recorded with UCUM","definition":"Vital Sign Value recorded with UCUM.","comment":"Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":0,"max":"1","base":{"path":"Observation.component.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"},{"code":"CodeableConcept"},{"code":"string"},{"code":"boolean"},{"code":"integer"},{"code":"Range"},{"code":"Ratio"},{"code":"SampledData"},{"code":"time"},{"code":"dateTime"},{"code":"Period"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSignsUnits"}],"strength":"required","description":"Common UCUM units for recording Vital Signs.","valueSet":"http://hl7.org/fhir/ValueSet/ucum-vitals-common|4.0.0"},"mapping":[{"identity":"sct-concept","map":"363714003 |Interprets| < 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.component.dataAbsentReason","path":"Observation.component.dataAbsentReason","short":"Why the component result is missing","definition":"Provides a reason why the expected value in the element Observation.component.value[x] is missing.","comment":"\"Null\" or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"test not done\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Because of these options, use-case agreements are required to interpret general observations for exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.component.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.component.interpretation","path":"Observation.component.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.component.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.component.referenceRange","path":"Observation.component.referenceRange","short":"Provides guide for interpretation of component result","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.component.referenceRange","min":0,"max":"*"},"contentReference":"#Observation.referenceRange","isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]}]},"differential":{"element":[{"id":"Observation","path":"Observation","definition":"This profile defines how to represent Weight-for-length per age and gender observations in FHIR using a standard LOINC code and UCUM units of measure.","mustSupport":false},{"id":"Observation.code","path":"Observation.code","short":"Weight-for-length per age and gender","comment":"additional codes that translate or map to this code are allowed. For example a more granular LOINC code or code that is used locally in a system.","alias":["Test","Name"],"min":1,"max":"1","type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"77606-2"}]},"mustSupport":false},{"id":"Observation.valueQuantity","path":"Observation.valueQuantity","min":1,"max":"1","mustSupport":false},{"id":"Observation.valueQuantity.value","path":"Observation.valueQuantity.value","min":1,"max":"1","type":[{"code":"decimal"}],"mustSupport":true},{"id":"Observation.valueQuantity.unit","path":"Observation.valueQuantity.unit","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Observation.valueQuantity.system","path":"Observation.valueQuantity.system","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","mustSupport":true},{"id":"Observation.valueQuantity.code","path":"Observation.valueQuantity.code","short":"Coded responses from the common UCUM units for vital signs value set.","min":1,"max":"1","type":[{"code":"code"}],"fixedCode":"%","mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-allergyintolerance.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-allergyintolerance.json new file mode 100644 index 000000000..6faf5b0fc --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-allergyintolerance.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-allergyintolerance","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance","version":"3.0.1","name":"USCoreAllergyIntolerance","title":"US Core AllergyIntolerance Profile","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"}],"kind":"resource","abstract":false,"type":"AllergyIntolerance","baseDefinition":"http://hl7.org/fhir/StructureDefinition/AllergyIntolerance","derivation":"constraint","snapshot":{"element":[{"id":"AllergyIntolerance","path":"AllergyIntolerance","short":"Allergy or Intolerance (generally: Risk of adverse reaction to a substance)","definition":"The US Core Allergies Profile is based upon the core FHIR AllergyIntolerance Resource and created to meet the 2015 Edition Common Clinical Data Set 'Medical allergies' requirements.","comment":"Substances include, but are not limited to: a therapeutic substance administered correctly at an appropriate dosage for the individual; food; material derived from plants or animals; or venom from insect stings.","alias":["Allergy","Intolerance","Adverse Reaction"],"min":0,"max":"*","base":{"path":"AllergyIntolerance","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"ait-1","severity":"error","human":"AllergyIntolerance.clinicalStatus SHALL be present if verificationStatus is not entered-in-error.","expression":"verificationStatus='entered-in-error' or clinicalStatus.exists()","xpath":"f:verificationStatus/@value='entered-in-error' or exists(f:clinicalStatus)","source":"AllergyIntolerance"},{"key":"ait-2","severity":"error","human":"AllergyIntolerance.clinicalStatus SHALL NOT be present if verification Status is entered-in-error","expression":"verificationStatus!='entered-in-error' or clinicalStatus.empty()","xpath":"f:verificationStatus/@value!='entered-in-error' or not(exists(f:clinicalStatus))","source":"AllergyIntolerance"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"rim","map":"Observation[classCode=OBS, moodCode=EVN]"},{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance"}]},{"id":"AllergyIntolerance.id","path":"AllergyIntolerance.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"AllergyIntolerance.meta","path":"AllergyIntolerance.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"AllergyIntolerance.implicitRules","path":"AllergyIntolerance.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"AllergyIntolerance.language","path":"AllergyIntolerance.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"AllergyIntolerance.text","path":"AllergyIntolerance.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"AllergyIntolerance.contained","path":"AllergyIntolerance.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"AllergyIntolerance.extension","path":"AllergyIntolerance.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"AllergyIntolerance.modifierExtension","path":"AllergyIntolerance.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"AllergyIntolerance.identifier","path":"AllergyIntolerance.identifier","short":"External ids for this item","definition":"Business identifiers assigned to this AllergyIntolerance by the performer or other systems which remain constant as the resource is updated and propagates from server to server.","comment":"This is a business identifier, not a resource identifier (see [discussion](http://hl7.org/fhir/R4/resource.html#identifiers)). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number.","requirements":"Allows identification of the AllergyIntolerance as it is known by various participating systems and in a way that remains consistent across servers.","min":0,"max":"*","base":{"path":"AllergyIntolerance.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"IAM-7"},{"identity":"rim","map":"id"}]},{"id":"AllergyIntolerance.clinicalStatus","path":"AllergyIntolerance.clinicalStatus","short":"active | inactive | resolved","definition":"The clinical status of the allergy or intolerance.","comment":"Refer to [discussion](http://hl7.org/fhir/R4/extensibility.html#Special-Case) if clincalStatus is missing data.\nThe data type is CodeableConcept because clinicalStatus has some clinical judgment involved, such that there might need to be more specificity than the required FHIR value set allows. For example, a SNOMED coding might allow for additional specificity.","min":0,"max":"1","base":{"path":"AllergyIntolerance.clinicalStatus","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["ait-1","ait-2"],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the status contains the codes inactive and resolved that mark the AllergyIntolerance as no longer active.","isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/allergyintolerance-clinical"},"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":"Observation ACT .inboundRelationship[typeCode=COMP].source[classCode=OBS, code=\"clinicalStatus\", moodCode=EVN].value"},{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance.status"}]},{"id":"AllergyIntolerance.verificationStatus","path":"AllergyIntolerance.verificationStatus","short":"unconfirmed | confirmed | refuted | entered-in-error","definition":"Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product).","comment":"The data type is CodeableConcept because verificationStatus has some clinical judgment involved, such that there might need to be more specificity than the required FHIR value set allows. For example, a SNOMED coding might allow for additional specificity.","min":0,"max":"1","base":{"path":"AllergyIntolerance.verificationStatus","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["ait-1","ait-2"],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the status contains the codes refuted and entered-in-error that mark the AllergyIntolerance as not currently valid.","isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/allergyintolerance-verification"},"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":"Observation ACT .inboundRelationship[typeCode=COMP].source[classCode=OBS, code=\"verificationStatus\", moodCode=EVN].value"},{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance.status"}]},{"id":"AllergyIntolerance.type","path":"AllergyIntolerance.type","short":"allergy | intolerance - Underlying mechanism (if known)","definition":"Identification of the underlying physiological mechanism for the reaction risk.","comment":"Allergic (typically immune-mediated) reactions have been traditionally regarded as an indicator for potential escalation to significant future risk. Contemporary knowledge suggests that some reactions previously thought to be immune-mediated are, in fact, non-immune, but in some cases can still pose a life threatening risk. It is acknowledged that many clinicians might not be in a position to distinguish the mechanism of a particular reaction. Often the term \"allergy\" is used rather generically and may overlap with the use of \"intolerance\" - in practice the boundaries between these two concepts might not be well-defined or understood. This data element is included nevertheless, because many legacy systems have captured this attribute. Immunologic testing may provide supporting evidence for the basis of the reaction and the causative substance, but no tests are 100% sensitive or specific for sensitivity to a particular substance. If, as is commonly the case, it is unclear whether the reaction is due to an allergy or an intolerance, then the type element should be omitted from the resource.","alias":["Category","Class"],"min":0,"max":"1","base":{"path":"AllergyIntolerance.type","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AllergyIntoleranceType"}],"strength":"required","description":"Identification of the underlying physiological mechanism for a Reaction Risk.","valueSet":"http://hl7.org/fhir/ValueSet/allergy-intolerance-type|4.0.0"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"v2","map":"IAM-9"},{"identity":"rim","map":"code"}]},{"id":"AllergyIntolerance.category","path":"AllergyIntolerance.category","short":"food | medication | environment | biologic","definition":"Category of the identified substance.","comment":"This data element has been included because it is currently being captured in some clinical systems. This data can be derived from the substance where coding systems are used, and is effectively redundant in that situation. When searching on category, consider the implications of AllergyIntolerance resources without a category. For example, when searching on category = medication, medication allergies that don't have a category valued will not be returned. Refer to [search](http://hl7.org/fhir/R4/search.html) for more information on how to search category with a :missing modifier to get allergies that don't have a category. Additionally, category should be used with caution because category can be subjective based on the sender.","alias":["Category","Type","Reaction Type","Class"],"min":0,"max":"*","base":{"path":"AllergyIntolerance.category","min":0,"max":"*"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AllergyIntoleranceCategory"}],"strength":"required","description":"Category of an identified substance associated with allergies or intolerances.","valueSet":"http://hl7.org/fhir/ValueSet/allergy-intolerance-category|4.0.0"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"v2","map":"AL1-2"},{"identity":"rim","map":"value < IntoleranceValue (Agent)"}]},{"id":"AllergyIntolerance.criticality","path":"AllergyIntolerance.criticality","short":"low | high | unable-to-assess","definition":"Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.","comment":"The default criticality value for any propensity to an adverse reaction should be 'Low Risk', indicating at the very least a relative contraindication to deliberate or voluntary exposure to the substance. 'High Risk' is flagged if the clinician has identified a propensity for a more serious or potentially life-threatening reaction, such as anaphylaxis, and implies an absolute contraindication to deliberate or voluntary exposure to the substance. If this element is missing, the criticality is unknown (though it may be known elsewhere). Systems that capture a severity at the condition level are actually representing the concept of criticality whereas the severity documented at the reaction level is representing the true reaction severity. Existing systems that are capturing both condition criticality and reaction severity may use the term \"severity\" to represent both. Criticality is the worst it could be in the future (i.e. situation-agnostic) whereas severity is situation-dependent.","alias":["Severity","Seriousness","Contra-indication","Risk"],"min":0,"max":"1","base":{"path":"AllergyIntolerance.criticality","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AllergyIntoleranceCriticality"}],"strength":"required","description":"Estimate of the potential clinical harm, or seriousness, of a reaction to an identified substance.","valueSet":"http://hl7.org/fhir/ValueSet/allergy-intolerance-criticality|4.0.0"},"mapping":[{"identity":"w5","map":"FiveWs.grade"},{"identity":"v2","map":"AL1-4"},{"identity":"rim","map":"inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=SEV, value <= SeverityObservation (Severity Level)]"}]},{"id":"AllergyIntolerance.code","path":"AllergyIntolerance.code","short":"Code that identifies the allergy or intolerance","definition":"Code for an allergy or intolerance statement (either a positive or a negated/excluded statement). This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., \"Latex\"), an allergy or intolerance condition (e.g., \"Latex allergy\"), or a negated/excluded code for a specific substance or class (e.g., \"No latex allergy\") or a general or categorical negated statement (e.g., \"No known allergy\", \"No known drug allergies\"). Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'. If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.","comment":"It is strongly recommended that this element be populated using a terminology, where possible. For example, some terminologies used include RxNorm, SNOMED CT, DM+D, NDFRT, ICD-9, IDC-10, UNII, and ATC. Plain text should only be used if there is no appropriate terminology available. Additional details can be specified in the text.\r\rWhen a substance or product code is specified for the 'code' element, the \"default\" semantic context is that this is a positive statement of an allergy or intolerance (depending on the value of the 'type' element, if present) condition to the specified substance/product. In the corresponding SNOMED CT allergy model, the specified substance/product is the target (destination) of the \"Causative agent\" relationship.\r\rThe 'substanceExposureRisk' extension is available as a structured and more flexible alternative to the 'code' element for making positive or negative allergy or intolerance statements. This extension provides the capability to make \"no known allergy\" (or \"no risk of adverse reaction\") statements regarding any coded substance/product (including cases when a pre-coordinated \"no allergy to x\" concept for that substance/product does not exist). If the 'substanceExposureRisk' extension is present, the AllergyIntolerance.code element SHALL be omitted.","alias":["Code"],"min":1,"max":"1","base":{"path":"AllergyIntolerance.code","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-allergy-substance"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"v2","map":"AL1-3 / IAM-3"},{"identity":"rim","map":"substance/product:\r\r.participation[typeCode=CAGNT].role[classCode=ADMM].player[classCode=MAT, determinerCode=KIND, code <= ExposureAgentEntityType]\r\rnegated/excluded substance/product:\r\r.participation[typeCode=CAGNT, negationInd=true].role[classCode=ADMM].player[classCode=MAT, determinerCode=KIND, code <= ExposureAgentEntityType]\r\rpositive or negated/excluded condition/situation:\r\rObservation.code=ASSERTION; Observation.value"},{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance.substance"}]},{"id":"AllergyIntolerance.patient","path":"AllergyIntolerance.patient","short":"Who the sensitivity is for","definition":"The patient who has the allergy or intolerance.","alias":["Patient"],"min":1,"max":"1","base":{"path":"AllergyIntolerance.patient","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"(PID-3)"},{"identity":"rim","map":".participation[typeCode=SBJ].role[classCode=PAT]"},{"identity":"w5","map":"FiveWs.subject"},{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance.patient"}]},{"id":"AllergyIntolerance.encounter","path":"AllergyIntolerance.encounter","short":"Encounter when the allergy or intolerance was asserted","definition":"The encounter when the allergy or intolerance was asserted.","min":0,"max":"1","base":{"path":"AllergyIntolerance.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.context"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]"}]},{"id":"AllergyIntolerance.onset[x]","path":"AllergyIntolerance.onset[x]","short":"When allergy or intolerance was identified","definition":"Estimated or actual date, date-time, or age when allergy or intolerance was identified.","min":0,"max":"1","base":{"path":"AllergyIntolerance.onset[x]","min":0,"max":"1"},"type":[{"code":"dateTime"},{"code":"Age"},{"code":"Period"},{"code":"Range"},{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.init"},{"identity":"rim","map":"effectiveTime.low"}]},{"id":"AllergyIntolerance.recordedDate","path":"AllergyIntolerance.recordedDate","short":"Date first version of the resource instance was recorded","definition":"The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date.","min":0,"max":"1","base":{"path":"AllergyIntolerance.recordedDate","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.recorded"},{"identity":"v2","map":"IAM-13"},{"identity":"rim","map":".participation[typeCode=AUT].time"}]},{"id":"AllergyIntolerance.recorder","path":"AllergyIntolerance.recorder","short":"Who recorded the sensitivity","definition":"Individual who recorded the record and takes responsibility for its content.","alias":["Author"],"min":0,"max":"1","base":{"path":"AllergyIntolerance.recorder","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.author"},{"identity":"rim","map":".participation[typeCode=AUT].role"}]},{"id":"AllergyIntolerance.asserter","path":"AllergyIntolerance.asserter","short":"Source of the information about the allergy","definition":"The source of the information about the allergy that is recorded.","comment":"The recorder takes responsibility for the content, but can reference the source from where they got it.","alias":["Source","Informant"],"min":0,"max":"1","base":{"path":"AllergyIntolerance.asserter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.source"},{"identity":"v2","map":"IAM-14 (if patient) / IAM-18 (if practitioner)"},{"identity":"rim","map":".participation[typeCode=INF].role"}]},{"id":"AllergyIntolerance.lastOccurrence","path":"AllergyIntolerance.lastOccurrence","short":"Date(/time) of last known occurrence of a reaction","definition":"Represents the date and/or time of the last known occurrence of a reaction event.","comment":"This date may be replicated by one of the Onset of Reaction dates. Where a textual representation of the date of last occurrence is required e.g. 'In Childhood, '10 years ago' the Comment element should be used.","min":0,"max":"1","base":{"path":"AllergyIntolerance.lastOccurrence","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"outBoundRelationship[typeCode=SUBJ].target[classCode=OBS, moodCode=EVN, code <= CommonClinicalObservationType, value <= ObservationValue (Reaction Type)].effectiveTime"}]},{"id":"AllergyIntolerance.note","path":"AllergyIntolerance.note","short":"Additional text not captured in other fields","definition":"Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.","comment":"For example: including reason for flagging a seriousness of 'High Risk'; and instructions related to future exposure or administration of the substance, such as administration within an Intensive Care Unit or under corticosteroid cover. The notes should be related to an allergy or intolerance as a condition in general and not related to any particular episode of it. For episode notes and descriptions, use AllergyIntolerance.event.description and AllergyIntolerance.event.notes.","min":0,"max":"*","base":{"path":"AllergyIntolerance.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"subjectOf.observationEvent[code=\"annotation\"].value"}]},{"id":"AllergyIntolerance.reaction","path":"AllergyIntolerance.reaction","short":"Adverse Reaction Events linked to exposure to substance","definition":"Details about each adverse reaction event linked to exposure to the identified substance.","min":0,"max":"*","base":{"path":"AllergyIntolerance.reaction","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"outBoundRelationship[typeCode=SUBJ].target[classCode=OBS, moodCode=EVN, code <= CommonClinicalObservationType, value <= ObservationValue (Reaction Type)]"}]},{"id":"AllergyIntolerance.reaction.id","path":"AllergyIntolerance.reaction.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"AllergyIntolerance.reaction.extension","path":"AllergyIntolerance.reaction.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"AllergyIntolerance.reaction.modifierExtension","path":"AllergyIntolerance.reaction.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"AllergyIntolerance.reaction.substance","path":"AllergyIntolerance.reaction.substance","short":"Specific substance or pharmaceutical product considered to be responsible for event","definition":"Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'. If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.","comment":"Coding of the specific substance (or pharmaceutical product) with a terminology capable of triggering decision support should be used wherever possible. The 'code' element allows for the use of a specific substance or pharmaceutical product, or a group or class of substances. In the case of an allergy or intolerance to a class of substances, (for example, \"penicillins\"), the 'reaction.substance' element could be used to code the specific substance that was identified as having caused the reaction (for example, \"amoxycillin\"). Duplication of the value in the 'code' and 'reaction.substance' elements is acceptable when a specific substance has been recorded in 'code'.","min":0,"max":"1","base":{"path":"AllergyIntolerance.reaction.substance","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"SubstanceCode"}],"strength":"example","description":"Codes defining the type of the substance (including pharmaceutical products).","valueSet":"http://hl7.org/fhir/ValueSet/substance-code"},"mapping":[{"identity":"rim","map":"outBoundRelationship[typeCode=SAS].target[classCode=SBADM, code <= ExposureCode].participation[typeCode=CSM].role[classCode=ADMM].player[classCode=MAT, determinerCode=KIND, code <= ExposureAgentEntityType]"}]},{"id":"AllergyIntolerance.reaction.manifestation","path":"AllergyIntolerance.reaction.manifestation","short":"Clinical symptoms/signs associated with the Event","definition":"Clinical symptoms and/or signs that are observed or associated with the adverse reaction event.","comment":"Manifestation can be expressed as a single word, phrase or brief description. For example: nausea, rash or no reaction. It is preferable that manifestation should be coded with a terminology, where possible. The values entered here may be used to display on an application screen as part of a list of adverse reactions, as recommended in the UK NHS CUI guidelines. Terminologies commonly used include, but are not limited to, SNOMED CT or ICD10.","alias":["Symptoms","Signs"],"min":1,"max":"*","base":{"path":"AllergyIntolerance.reaction.manifestation","min":1,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Manifestation"}],"strength":"example","description":"Clinical symptoms and/or signs that are observed or associated with an Adverse Reaction Event.","valueSet":"http://hl7.org/fhir/ValueSet/clinical-findings"},"mapping":[{"identity":"v2","map":"AL1-5"},{"identity":"rim","map":"code"}]},{"id":"AllergyIntolerance.reaction.description","path":"AllergyIntolerance.reaction.description","short":"Description of the event as a whole","definition":"Text description about the reaction as a whole, including details of the manifestation if required.","comment":"Use the description to provide any details of a particular event of the occurred reaction such as circumstances, reaction specifics, what happened before/after. Information, related to the event, but not describing a particular care should be captured in the comment field. For example: at the age of four, the patient was given penicillin for strep throat and subsequently developed severe hives.","alias":["Narrative","Text"],"min":0,"max":"1","base":{"path":"AllergyIntolerance.reaction.description","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"text"}]},{"id":"AllergyIntolerance.reaction.onset","path":"AllergyIntolerance.reaction.onset","short":"Date(/time) when manifestations showed","definition":"Record of the date and/or time of the onset of the Reaction.","min":0,"max":"1","base":{"path":"AllergyIntolerance.reaction.onset","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"AL1-6"},{"identity":"rim","map":"effectiveTime.low"}]},{"id":"AllergyIntolerance.reaction.severity","path":"AllergyIntolerance.reaction.severity","short":"mild | moderate | severe (of event as a whole)","definition":"Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.","comment":"It is acknowledged that this assessment is very subjective. There may be some specific practice domains where objective scales have been applied. Objective scales can be included in this model as extensions.","min":0,"max":"1","base":{"path":"AllergyIntolerance.reaction.severity","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AllergyIntoleranceSeverity"}],"strength":"required","description":"Clinical assessment of the severity of a reaction event as a whole, potentially considering multiple different manifestations.","valueSet":"http://hl7.org/fhir/ValueSet/reaction-event-severity|4.0.0"},"mapping":[{"identity":"rim","map":"inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=SEV, value <= SeverityObservation (Severity Level)]"}]},{"id":"AllergyIntolerance.reaction.exposureRoute","path":"AllergyIntolerance.reaction.exposureRoute","short":"How the subject was exposed to the substance","definition":"Identification of the route by which the subject was exposed to the substance.","comment":"Coding of the route of exposure with a terminology should be used wherever possible.","min":0,"max":"1","base":{"path":"AllergyIntolerance.reaction.exposureRoute","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"RouteOfAdministration"}],"strength":"example","description":"A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.","valueSet":"http://hl7.org/fhir/ValueSet/route-codes"},"mapping":[{"identity":"rim","map":"outBoundRelationship[typeCode=SAS].target[classCode=SBADM, code <= ExposureCode].routeCode"}]},{"id":"AllergyIntolerance.reaction.note","path":"AllergyIntolerance.reaction.note","short":"Text about event not captured in other fields","definition":"Additional text about the adverse reaction event not captured in other fields.","comment":"Use this field to record information indirectly related to a particular event and not captured in the description. For example: Clinical records are no longer available, recorded based on information provided to the patient by her mother and her mother is deceased.","min":0,"max":"*","base":{"path":"AllergyIntolerance.reaction.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"subjectOf.observationEvent[code=\"annotation\"].value"}]}]},"differential":{"element":[{"id":"AllergyIntolerance","path":"AllergyIntolerance","definition":"The US Core Allergies Profile is based upon the core FHIR AllergyIntolerance Resource and created to meet the 2015 Edition Common Clinical Data Set 'Medical allergies' requirements.","mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance"}]},{"id":"AllergyIntolerance.clinicalStatus","path":"AllergyIntolerance.clinicalStatus","min":0,"max":"1","mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/allergyintolerance-clinical"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance.status"}]},{"id":"AllergyIntolerance.verificationStatus","path":"AllergyIntolerance.verificationStatus","min":0,"max":"1","mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/allergyintolerance-verification"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance.status"}]},{"id":"AllergyIntolerance.code","path":"AllergyIntolerance.code","min":1,"max":"1","mustSupport":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-allergy-substance"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance.substance"}]},{"id":"AllergyIntolerance.patient","path":"AllergyIntolerance.patient","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"AllergyIntolerance.patient"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-birthsex.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-birthsex.json new file mode 100644 index 000000000..b6d0d4221 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-birthsex.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-birthsex","text":{"status":"generated","div":"
    \r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Extension 0..1
    \".\"\".\"\".\" url "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"
    \".\"\".\"\".\" valueCode 0..1codeBinding: Birth Sex (required)

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex","version":"3.0.1","name":"USCoreBirthSexExtension","title":"US Core Birth Sex Extension","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"A code classifying the person's sex assigned at birth as specified by the [Office of the National Coordinator for Health IT (ONC)](https://www.healthit.gov/newsroom/about-onc). This extension aligns with the C-CDA Birth Sex Observation (LOINC 76689-9).","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"}],"kind":"complex-type","abstract":false,"context":[{"type":"element","expression":"Patient"}],"type":"Extension","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Extension","derivation":"constraint","snapshot":{"element":[{"id":"Extension:birthsex","path":"Extension","short":"Extension","definition":"A code classifying the person's sex assigned at birth as specified by the [Office of the National Coordinator for Health IT (ONC)](https://www.healthit.gov/newsroom/about-onc).","comment":"The codes required are intended to present birth sex (i.e., the sex recorded on the patient’s birth certificate) and not gender identity or reassigned sex.","min":0,"max":"1","base":{"path":"Extension","min":0,"max":"*"},"condition":["ele-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"children().count() > id.count()","xpath":"@value|f:*|h:div","source":"Element"},{"key":"ext-1","severity":"error","human":"Must have either extensions or value[x], not both","expression":"extension.exists() != value.exists()","xpath":"exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])","source":"Extension"}],"isModifier":false,"mapping":[{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender"},{"identity":"iso11179","map":".patient.administrativeGenderCode"}]},{"id":"Extension:birthsex.id","path":"Extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:birthsex.extension","path":"Extension.extension","short":"Additional Content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:birthsex.url","path":"Extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:birthsex.valueCode","path":"Extension.valueCode","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":0,"max":"1","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"code"}],"binding":{"strength":"required","description":"Code for sex assigned at birth","valueSet":"http://hl7.org/fhir/us/core/ValueSet/birthsex"},"mapping":[{"identity":"rim","map":"N/A"}]}]},"differential":{"element":[{"id":"Extension:birthsex","path":"Extension","definition":"A code classifying the person's sex assigned at birth as specified by the [Office of the National Coordinator for Health IT (ONC)](https://www.healthit.gov/newsroom/about-onc).","comment":"The codes required are intended to present birth sex (i.e., the sex recorded on the patient’s birth certificate) and not gender identity or reassigned sex.","min":0,"max":"1","isModifier":false,"mapping":[{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender"},{"identity":"iso11179","map":".patient.administrativeGenderCode"}]},{"id":"Extension:birthsex.url","path":"Extension.url","fixedUri":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"},{"id":"Extension:birthsex.valueCode","path":"Extension.valueCode","min":0,"max":"1","type":[{"code":"code"}],"binding":{"strength":"required","description":"Code for sex assigned at birth","valueSet":"http://hl7.org/fhir/us/core/ValueSet/birthsex"}}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-careplan.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-careplan.json new file mode 100644 index 000000000..95e24d302 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-careplan.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-careplan","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" CarePlan 0..*
    \".\"\".\"\".\" text S1..1Narrative
    \".\"\".\"\".\"\".\" status S1..1codeBinding: US Core Narrative Status (required)
    \".\"\".\"\".\" status S1..1codeBinding: RequestStatus (required)
    \".\"\".\"\".\" intent S1..1codeBinding: CarePlanIntent (required)
    \".\"\".\"\".\" category S1..*(Slice Definition)Slice: Unordered, Open by pattern:$this
    \".\"\".\"\".\"\".\" category:AssessPlan S1..1CodeableConceptRequired Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/careplan-category
    \".\"\".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: assess-plan
    \".\"\".\"\".\" subject S1..1Reference(US Core Patient Profile)

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan","version":"3.0.1","name":"USCoreCarePlanProfile","title":"US Core CarePlan Profile","status":"active","experimental":false,"date":"2019-08-29T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the CarePlan resource for the minimal set of data to query and retrieve a patient's Care Plan.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"}],"kind":"resource","abstract":false,"type":"CarePlan","baseDefinition":"http://hl7.org/fhir/StructureDefinition/CarePlan","derivation":"constraint","snapshot":{"element":[{"id":"CarePlan","path":"CarePlan","short":"Healthcare plan for patient or group","definition":"The US Core CarePlan Profile is based upon the core FHIR CarePlan Resource and created to meet the 2015 Edition Common Clinical Data Set 'Assessment and Plan of Treatment requirements.","alias":["Care Team"],"min":0,"max":"*","base":{"path":"CarePlan","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Request"},{"identity":"rim","map":"Act[classCode=PCPR, moodCode=INT]"},{"identity":"argonaut-dq-dstu2","map":"CarePlan"}]},{"id":"CarePlan.id","path":"CarePlan.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"CarePlan.meta","path":"CarePlan.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"CarePlan.implicitRules","path":"CarePlan.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"CarePlan.language","path":"CarePlan.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"CarePlan.text","path":"CarePlan.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":1,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.text"}]},{"id":"CarePlan.text.id","path":"CarePlan.text.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"CarePlan.text.extension","path":"CarePlan.text.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"CarePlan.text.status","path":"CarePlan.text.status","short":"generated | extensions | additional | empty","definition":"generated | additional.","min":1,"max":"1","base":{"path":"Narrative.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"strength":"required","description":"Constrained value set of narrative statuses.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-narrative-status"},"mapping":[{"identity":"rim","map":"N/A"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.text.status"}]},{"id":"CarePlan.text.div","path":"CarePlan.text.div","short":"Limited xhtml content","definition":"The actual narrative content, a stripped down version of XHTML.","comment":"The contents of the html element are an XHTML fragment containing only the basic html formatting elements described in chapters 7-11 and 15 of the HTML 4.0 standard, elements (either name or href), images and internally contained stylesheets. The XHTML content SHALL NOT contain a head, a body, external stylesheet references, scripts, forms, base/link/xlink, frames, iframes and objects.","min":1,"max":"1","base":{"path":"Narrative.div","min":1,"max":"1"},"type":[{"code":"xhtml"}],"constraint":[{"key":"txt-1","severity":"error","human":"The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, elements (either name or href), images and internally contained style attributes","expression":"htmlChecks()","xpath":"not(descendant-or-self::*[not(local-name(.)=('a', 'abbr', 'acronym', 'b', 'big', 'blockquote', 'br', 'caption', 'cite', 'code', 'col', 'colgroup', 'dd', 'dfn', 'div', 'dl', 'dt', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'li', 'ol', 'p', 'pre', 'q', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'tt', 'ul', 'var'))]) and not(descendant-or-self::*/@*[not(name(.)=('abbr', 'accesskey', 'align', 'alt', 'axis', 'bgcolor', 'border', 'cellhalign', 'cellpadding', 'cellspacing', 'cellvalign', 'char', 'charoff', 'charset', 'cite', 'class', 'colspan', 'compact', 'coords', 'dir', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', 'id', 'lang', 'longdesc', 'name', 'nowrap', 'rel', 'rev', 'rowspan', 'rules', 'scope', 'shape', 'span', 'src', 'start', 'style', 'summary', 'tabindex', 'title', 'type', 'valign', 'value', 'vspace', 'width'))])"},{"key":"txt-2","severity":"error","human":"The narrative SHALL have some non-whitespace content","expression":"htmlChecks()","xpath":"descendant::text()[normalize-space(.)!=''] or descendant::h:img[@src]"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CarePlan.contained","path":"CarePlan.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CarePlan.extension","path":"CarePlan.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CarePlan.modifierExtension","path":"CarePlan.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CarePlan.identifier","path":"CarePlan.identifier","short":"External Ids for this plan","definition":"Business identifiers assigned to this care plan by the performer or other systems which remain constant as the resource is updated and propagates from server to server.","comment":"This is a business identifier, not a resource identifier (see [discussion](http://hl7.org/fhir/R4/resource.html#identifiers)). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number.","requirements":"Allows identification of the care plan as it is known by various participating systems and in a way that remains consistent across servers.","min":0,"max":"*","base":{"path":"CarePlan.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"PTH-3"},{"identity":"rim","map":".id"}]},{"id":"CarePlan.instantiatesCanonical","path":"CarePlan.instantiatesCanonical","short":"Instantiates FHIR protocol or definition","definition":"The URL pointing to a FHIR-defined protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan.","min":0,"max":"*","base":{"path":"CarePlan.instantiatesCanonical","min":0,"max":"*"},"type":[{"code":"canonical","targetProfile":["http://hl7.org/fhir/StructureDefinition/PlanDefinition","http://hl7.org/fhir/StructureDefinition/Questionnaire","http://hl7.org/fhir/StructureDefinition/Measure","http://hl7.org/fhir/StructureDefinition/ActivityDefinition","http://hl7.org/fhir/StructureDefinition/OperationDefinition"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.instantiatesCanonical"},{"identity":"rim","map":".outboundRelationship[typeCode=DEFN].target"}]},{"id":"CarePlan.instantiatesUri","path":"CarePlan.instantiatesUri","short":"Instantiates external protocol or definition","definition":"The URL pointing to an externally maintained protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan.","comment":"This might be an HTML page, PDF, etc. or could just be a non-resolvable URI identifier.","min":0,"max":"*","base":{"path":"CarePlan.instantiatesUri","min":0,"max":"*"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.instantiatesUri"},{"identity":"rim","map":".outboundRelationship[typeCode=DEFN].target"}]},{"id":"CarePlan.basedOn","path":"CarePlan.basedOn","short":"Fulfills CarePlan","definition":"A care plan that is fulfilled in whole or in part by this care plan.","requirements":"Allows tracing of the care plan and tracking whether proposals/recommendations were acted upon.","alias":["fulfills"],"min":0,"max":"*","base":{"path":"CarePlan.basedOn","min":0,"max":"*"},"type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy","valueBoolean":true}],"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.basedOn"}]},{"id":"CarePlan.replaces","path":"CarePlan.replaces","short":"CarePlan replaced by this CarePlan","definition":"Completed or terminated care plan whose function is taken by this new care plan.","comment":"The replacement could be because the initial care plan was immediately rejected (due to an issue) or because the previous care plan was completed, but the need for the action described by the care plan remains ongoing.","requirements":"Allows tracing the continuation of a therapy or administrative process instantiated through multiple care plans.","alias":["supersedes"],"min":0,"max":"*","base":{"path":"CarePlan.replaces","min":0,"max":"*"},"type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy","valueBoolean":true}],"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.replaces"}]},{"id":"CarePlan.partOf","path":"CarePlan.partOf","short":"Part of referenced CarePlan","definition":"A larger care plan of which this particular care plan is a component or step.","comment":"Each care plan is an independent request, such that having a care plan be part of another care plan can cause issues with cascading statuses. As such, this element is still being discussed.","min":0,"max":"*","base":{"path":"CarePlan.partOf","min":0,"max":"*"},"type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy","valueBoolean":true}],"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan"]}],"isModifier":false,"isSummary":true},{"id":"CarePlan.status","path":"CarePlan.status","short":"draft | active | suspended | completed | entered-in-error | cancelled | unknown","definition":"Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.","comment":"The unknown code is not to be used to convey other statuses. The unknown code should be used when one of the statuses applies, but the authoring system doesn't know the current state of the care plan.\n\nThis element is labeled as a modifier because the status contains the code entered-in-error that marks the plan as not currently valid.","requirements":"Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.","min":1,"max":"1","base":{"path":"CarePlan.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","description":"Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.","valueSet":"http://hl7.org/fhir/ValueSet/request-status"},"mapping":[{"identity":"workflow","map":"Request.status {uses different ValueSet}"},{"identity":"w5","map":"FiveWs.status"},{"identity":"v2","map":"PTH-5"},{"identity":"rim","map":".statusCode planned = new active = active completed = completed"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.status"}]},{"id":"CarePlan.intent","path":"CarePlan.intent","short":"proposal | plan | order | option","definition":"Indicates the level of authority/intentionality associated with the care plan and where the care plan fits into the workflow chain.","comment":"This element is labeled as a modifier because the intent alters when and how the resource is actually applicable.","requirements":"Proposals/recommendations, plans and orders all use the same structure and can exist in the same fulfillment chain.","min":1,"max":"1","base":{"path":"CarePlan.intent","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element changes the interpretation of all descriptive attributes. For example \"the time the request is recommended to occur\" vs. \"the time the request is authorized to occur\" or \"who is recommended to perform the request\" vs. \"who is authorized to perform the request\"","isSummary":true,"binding":{"strength":"required","description":"Codes indicating the degree of authority/intentionality associated with a care plan","valueSet":"http://hl7.org/fhir/ValueSet/care-plan-intent"},"mapping":[{"identity":"workflow","map":"Request.intent"},{"identity":"argonaut-dq-dstu2","map":"NA (new element in STU3)"}]},{"id":"CarePlan.category","path":"CarePlan.category","slicing":{"discriminator":[{"type":"pattern","path":"$this"}],"rules":"open"},"short":"Type of plan","definition":"Type of plan.","comment":"There may be multiple axes of categorization and one plan may serve multiple purposes. In some cases, this may be redundant with references to CarePlan.concern.","requirements":"Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", \"wellness plan\", etc.","min":1,"max":"*","base":{"path":"CarePlan.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CarePlanCategory"}],"strength":"example","description":"Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", etc.","valueSet":"http://hl7.org/fhir/ValueSet/care-plan-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.category"}]},{"id":"CarePlan.category:AssessPlan","path":"CarePlan.category","sliceName":"AssessPlan","short":"Type of plan","definition":"Type of plan.","comment":"There may be multiple axes of categorization and one plan may serve multiple purposes. In some cases, this may be redundant with references to CarePlan.concern.","requirements":"Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", \"wellness plan\", etc.","min":1,"max":"1","base":{"path":"CarePlan.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://hl7.org/fhir/us/core/CodeSystem/careplan-category","code":"assess-plan"}]},"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CarePlanCategory"}],"strength":"example","description":"Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", etc.","valueSet":"http://hl7.org/fhir/ValueSet/care-plan-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.category"}]},{"id":"CarePlan.title","path":"CarePlan.title","short":"Human-friendly name for the care plan","definition":"Human-friendly name for the care plan.","min":0,"max":"1","base":{"path":"CarePlan.title","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true},{"id":"CarePlan.description","path":"CarePlan.description","short":"Summary of nature of plan","definition":"A description of the scope and nature of the plan.","requirements":"Provides more detail than conveyed by category.","min":0,"max":"1","base":{"path":"CarePlan.description","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"}]},{"id":"CarePlan.subject","path":"CarePlan.subject","short":"Who the care plan is for","definition":"Who care plan is for.","requirements":"Identifies the patient or group whose intended care is described by the plan.","alias":["patient"],"min":1,"max":"1","base":{"path":"CarePlan.subject","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":".participation[typeCode=PAT].role[classCode=PAT]"},{"identity":"w5","map":"FiveWs.subject"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.subject"}]},{"id":"CarePlan.encounter","path":"CarePlan.encounter","short":"Encounter created as part of","definition":"The Encounter during which this CarePlan was created or to which the creation of this record is tightly associated.","comment":"This will typically be the encounter the event occurred within, but some activities may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter. CarePlan activities conducted as a result of the care plan may well occur as part of other encounters.","min":0,"max":"1","base":{"path":"CarePlan.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"Associated PV1"},{"identity":"rim","map":"."}]},{"id":"CarePlan.period","path":"CarePlan.period","short":"Time period plan covers","definition":"Indicates when the plan did (or is intended to) come into effect and end.","comment":"Any activities scheduled as part of the plan should be constrained to the specified period regardless of whether the activities are planned within a single encounter/episode or across multiple encounters/episodes (e.g. the longitudinal management of a chronic condition).","requirements":"Allows tracking what plan(s) are in effect at a particular time.","alias":["timing"],"min":0,"max":"1","base":{"path":"CarePlan.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.occurrence[x]"},{"identity":"w5","map":"FiveWs.planned"},{"identity":"v2","map":"GOL-7 / GOL-8"},{"identity":"rim","map":".effectiveTime"}]},{"id":"CarePlan.created","path":"CarePlan.created","short":"Date record was first recorded","definition":"Represents when this particular CarePlan record was created in the system, which is often a system-generated date.","alias":["authoredOn"],"min":0,"max":"1","base":{"path":"CarePlan.created","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.authoredOn"},{"identity":"w5","map":"FiveWs.recorded"},{"identity":"rim","map":".participation[typeCode=AUT].time"}]},{"id":"CarePlan.author","path":"CarePlan.author","short":"Who is the designated responsible party","definition":"When populated, the author is responsible for the care plan. The care plan is attributed to the author.","comment":"The author may also be a contributor. For example, an organization can be an author, but not listed as a contributor.","min":0,"max":"1","base":{"path":"CarePlan.author","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/CareTeam"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.requester"},{"identity":"w5","map":"FiveWs.author"}]},{"id":"CarePlan.contributor","path":"CarePlan.contributor","short":"Who provided the content of the care plan","definition":"Identifies the individual(s) or organization who provided the contents of the care plan.","comment":"Collaborative care plans may have multiple contributors.","min":0,"max":"*","base":{"path":"CarePlan.contributor","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/CareTeam"]}],"isModifier":false,"isSummary":false},{"id":"CarePlan.careTeam","path":"CarePlan.careTeam","short":"Who's involved in plan?","definition":"Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.","requirements":"Allows representation of care teams, helps scope care plan. In some cases may be a determiner of access permissions.","min":0,"max":"*","base":{"path":"CarePlan.careTeam","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CareTeam"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.performer {similar but does not entail CareTeam}"},{"identity":"w5","map":"FiveWs.actor"}]},{"id":"CarePlan.addresses","path":"CarePlan.addresses","short":"Health issues this plan addresses","definition":"Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.","comment":"When the diagnosis is related to an allergy or intolerance, the Condition and AllergyIntolerance resources can both be used. However, to be actionable for decision support, using Condition alone is not sufficient as the allergy or intolerance condition needs to be represented as an AllergyIntolerance.","requirements":"Links plan to the conditions it manages. The element can identify risks addressed by the plan as well as active conditions. (The Condition resource can include things like \"at risk for hypertension\" or \"fall risk\".) Also scopes plans - multiple plans may exist addressing different concerns.","min":0,"max":"*","base":{"path":"CarePlan.addresses","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.reasonReference"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"v2","map":"PRB-4"},{"identity":"rim","map":".actRelationship[typeCode=SUBJ].target[classCode=CONC, moodCode=EVN]"}]},{"id":"CarePlan.supportingInfo","path":"CarePlan.supportingInfo","short":"Information considered as part of plan","definition":"Identifies portions of the patient's record that specifically influenced the formation of the plan. These might include comorbidities, recent procedures, limitations, recent assessments, etc.","comment":"Use \"concern\" to identify specific conditions addressed by the care plan.","requirements":"Identifies barriers and other considerations associated with the care plan.","min":0,"max":"*","base":{"path":"CarePlan.supportingInfo","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.supportingInfo"}]},{"id":"CarePlan.goal","path":"CarePlan.goal","short":"Desired outcome of plan","definition":"Describes the intended objective(s) of carrying out the care plan.","comment":"Goal can be achieving a particular change or merely maintaining a current state or even slowing a decline.","requirements":"Provides context for plan. Allows plan effectiveness to be evaluated by clinicians.","min":0,"max":"*","base":{"path":"CarePlan.goal","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Goal"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"GOL.1"},{"identity":"rim","map":".outboundRelationship[typeCode<=OBJ]."}]},{"id":"CarePlan.activity","path":"CarePlan.activity","short":"Action to occur as part of plan","definition":"Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.","requirements":"Allows systems to prompt for performance of planned activities, and validate plans against best practice.","min":0,"max":"*","base":{"path":"CarePlan.activity","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"cpl-3","severity":"error","human":"Provide a reference or detail, not both","expression":"detail.empty() or reference.empty()","xpath":"not(exists(f:detail)) or not(exists(f:reference))"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"{no mapping\nNOTE: This is a list of contained Request-Event tuples!}"},{"identity":"rim","map":".outboundRelationship[typeCode=COMP].target"}]},{"id":"CarePlan.activity.id","path":"CarePlan.activity.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"CarePlan.activity.extension","path":"CarePlan.activity.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"CarePlan.activity.modifierExtension","path":"CarePlan.activity.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CarePlan.activity.outcomeCodeableConcept","path":"CarePlan.activity.outcomeCodeableConcept","short":"Results of the activity","definition":"Identifies the outcome at the point when the status of the activity is assessed. For example, the outcome of an education activity could be patient understands (or not).","comment":"Note that this should not duplicate the activity status (e.g. completed or in progress).","min":0,"max":"*","base":{"path":"CarePlan.activity.outcomeCodeableConcept","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CarePlanActivityOutcome"}],"strength":"example","description":"Identifies the results of the activity.","valueSet":"http://hl7.org/fhir/ValueSet/care-plan-activity-outcome"}},{"id":"CarePlan.activity.outcomeReference","path":"CarePlan.activity.outcomeReference","short":"Appointment, Encounter, Procedure, etc.","definition":"Details of the outcome or action resulting from the activity. The reference to an \"event\" resource, such as Procedure or Encounter or Observation, is the result/outcome of the activity itself. The activity can be conveyed using CarePlan.activity.detail OR using the CarePlan.activity.reference (a reference to a “request” resource).","comment":"The activity outcome is independent of the outcome of the related goal(s). For example, if the goal is to achieve a target body weight of 150 lbs and an activity is defined to diet, then the activity outcome could be calories consumed whereas the goal outcome is an observation for the actual body weight measured.","requirements":"Links plan to resulting actions.","min":0,"max":"*","base":{"path":"CarePlan.activity.outcomeReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"{Event that is outcome of Request in activity.reference}"},{"identity":"rim","map":".inboundRelationship[typeCode=FLFS].source"}]},{"id":"CarePlan.activity.progress","path":"CarePlan.activity.progress","short":"Comments about the activity status/progress","definition":"Notes about the adherence/status/progress of the activity.","comment":"This element should NOT be used to describe the activity to be performed - that occurs either within the resource pointed to by activity.detail.reference or in activity.detail.description.","requirements":"Can be used to capture information about adherence, progress, concerns, etc.","min":0,"max":"*","base":{"path":"CarePlan.activity.progress","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NTE?"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"annotation\"].value"}]},{"id":"CarePlan.activity.reference","path":"CarePlan.activity.reference","short":"Activity details defined in specific resource","definition":"The details of the proposed activity represented in a specific resource.","comment":"Standard extension exists ([resource-pertainsToGoal](http://hl7.org/fhir/R4/extension-resource-pertainstogoal.html)) that allows goals to be referenced from any of the referenced resources in CarePlan.activity.reference. \rThe goal should be visible when the resource referenced by CarePlan.activity.reference is viewed independently from the CarePlan. Requests that are pointed to by a CarePlan using this element should *not* point to this CarePlan using the \"basedOn\" element. i.e. Requests that are part of a CarePlan are not \"based on\" the CarePlan.","requirements":"Details in a form consistent with other applications and contexts of use.","min":0,"max":"1","base":{"path":"CarePlan.activity.reference","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Appointment","http://hl7.org/fhir/StructureDefinition/CommunicationRequest","http://hl7.org/fhir/StructureDefinition/DeviceRequest","http://hl7.org/fhir/StructureDefinition/MedicationRequest","http://hl7.org/fhir/StructureDefinition/NutritionOrder","http://hl7.org/fhir/StructureDefinition/Task","http://hl7.org/fhir/StructureDefinition/ServiceRequest","http://hl7.org/fhir/StructureDefinition/VisionPrescription","http://hl7.org/fhir/StructureDefinition/RequestGroup"]}],"condition":["cpl-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"{Request that resulted in Event in activity.actionResulting}"},{"identity":"rim","map":".outboundRelationship[typeCode=COMP].target"}]},{"id":"CarePlan.activity.detail","path":"CarePlan.activity.detail","short":"In-line definition of activity","definition":"A simple summary of a planned activity suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.","requirements":"Details in a simple form for generic care plan systems.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail","min":0,"max":"1"},"type":[{"code":"BackboneElement"}],"condition":["cpl-3"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=COMP, subsetCode=SUMM].target"}]},{"id":"CarePlan.activity.detail.id","path":"CarePlan.activity.detail.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"CarePlan.activity.detail.extension","path":"CarePlan.activity.detail.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"CarePlan.activity.detail.modifierExtension","path":"CarePlan.activity.detail.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CarePlan.activity.detail.kind","path":"CarePlan.activity.detail.kind","short":"Kind of resource","definition":"A description of the kind of resource the in-line definition of a care plan activity is representing. The CarePlan.activity.detail is an in-line definition when a resource is not referenced using CarePlan.activity.reference. For example, a MedicationRequest, a ServiceRequest, or a CommunicationRequest.","requirements":"May determine what types of extensions are permitted.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.kind","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CarePlanActivityKind"}],"strength":"required","description":"Resource types defined as part of FHIR that can be represented as in-line definitions of a care plan activity.","valueSet":"http://hl7.org/fhir/ValueSet/care-plan-activity-kind|4.0.0"},"mapping":[{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[classCode=LIST].code"}]},{"id":"CarePlan.activity.detail.instantiatesCanonical","path":"CarePlan.activity.detail.instantiatesCanonical","short":"Instantiates FHIR protocol or definition","definition":"The URL pointing to a FHIR-defined protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan activity.","requirements":"Allows Questionnaires that the patient (or practitioner) should fill in to fulfill the care plan activity.","min":0,"max":"*","base":{"path":"CarePlan.activity.detail.instantiatesCanonical","min":0,"max":"*"},"type":[{"code":"canonical","targetProfile":["http://hl7.org/fhir/StructureDefinition/PlanDefinition","http://hl7.org/fhir/StructureDefinition/ActivityDefinition","http://hl7.org/fhir/StructureDefinition/Questionnaire","http://hl7.org/fhir/StructureDefinition/Measure","http://hl7.org/fhir/StructureDefinition/OperationDefinition"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.instantiatesCanonical"},{"identity":"rim","map":".outboundRelationship[typeCode=DEFN].target"}]},{"id":"CarePlan.activity.detail.instantiatesUri","path":"CarePlan.activity.detail.instantiatesUri","short":"Instantiates external protocol or definition","definition":"The URL pointing to an externally maintained protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan activity.","comment":"This might be an HTML page, PDF, etc. or could just be a non-resolvable URI identifier.","requirements":"Allows Questionnaires that the patient (or practitioner) should fill in to fulfill the care plan activity.","min":0,"max":"*","base":{"path":"CarePlan.activity.detail.instantiatesUri","min":0,"max":"*"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.instantiatesUri"},{"identity":"rim","map":".outboundRelationship[typeCode=DEFN].target"}]},{"id":"CarePlan.activity.detail.code","path":"CarePlan.activity.detail.code","short":"Detail type of activity","definition":"Detailed description of the type of planned activity; e.g. what lab test, what procedure, what kind of encounter.","comment":"Tends to be less relevant for activities involving particular products. Codes should not convey negation - use \"prohibited\" instead.","requirements":"Allows matching performed to planned as well as validation against protocols.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.code","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CarePlanActivityType"}],"strength":"example","description":"Detailed description of the type of activity; e.g. What lab test, what procedure, what kind of encounter.","valueSet":"http://hl7.org/fhir/ValueSet/procedure-code"},"mapping":[{"identity":"workflow","map":"Request.code"},{"identity":"v2","map":"OBR-4 / RXE-2 / RXO-1 / RXD-2"},{"identity":"rim","map":".code"}]},{"id":"CarePlan.activity.detail.reasonCode","path":"CarePlan.activity.detail.reasonCode","short":"Why activity should be done or why activity was prohibited","definition":"Provides the rationale that drove the inclusion of this particular activity as part of the plan or the reason why the activity was prohibited.","comment":"This could be a diagnosis code. If a full condition record exists or additional detail is needed, use reasonCondition instead.","min":0,"max":"*","base":{"path":"CarePlan.activity.detail.reasonCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CarePlanActivityReason"}],"strength":"example","description":"Identifies why a care plan activity is needed. Can include any health condition codes as well as such concepts as \"general wellness\", prophylaxis, surgical preparation, etc.","valueSet":"http://hl7.org/fhir/ValueSet/clinical-findings"},"mapping":[{"identity":"workflow","map":"Request.reasonCode"}]},{"id":"CarePlan.activity.detail.reasonReference","path":"CarePlan.activity.detail.reasonReference","short":"Why activity is needed","definition":"Indicates another resource, such as the health condition(s), whose existence justifies this request and drove the inclusion of this particular activity as part of the plan.","comment":"Conditions can be identified at the activity level that are not identified as reasons for the overall plan.","min":0,"max":"*","base":{"path":"CarePlan.activity.detail.reasonReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition","http://hl7.org/fhir/StructureDefinition/Observation","http://hl7.org/fhir/StructureDefinition/DiagnosticReport","http://hl7.org/fhir/StructureDefinition/DocumentReference"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.reasonReference"}]},{"id":"CarePlan.activity.detail.goal","path":"CarePlan.activity.detail.goal","short":"Goals this activity relates to","definition":"Internal reference that identifies the goals that this activity is intended to contribute towards meeting.","requirements":"So that participants know the link explicitly.","min":0,"max":"*","base":{"path":"CarePlan.activity.detail.goal","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Goal"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode<=OBJ]."}]},{"id":"CarePlan.activity.detail.status","path":"CarePlan.activity.detail.status","short":"not-started | scheduled | in-progress | on-hold | completed | cancelled | stopped | unknown | entered-in-error","definition":"Identifies what progress is being made for the specific activity.","comment":"Some aspects of status can be inferred based on the resources linked in actionTaken. Note that \"status\" is only as current as the plan was most recently updated. \nThe unknown code is not to be used to convey other statuses. The unknown code should be used when one of the statuses applies, but the authoring system doesn't know the current state of the activity.","requirements":"Indicates progress against the plan, whether the activity is still relevant for the plan.","min":1,"max":"1","base":{"path":"CarePlan.activity.detail.status","min":1,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the activity should not be treated as valid","isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CarePlanActivityStatus"}],"strength":"required","description":"Codes that reflect the current state of a care plan activity within its overall life cycle.","valueSet":"http://hl7.org/fhir/ValueSet/care-plan-activity-status|4.0.0"},"mapping":[{"identity":"workflow","map":"Request.status"},{"identity":"v2","map":"ORC-5?"},{"identity":"rim","map":".statusCode not-started = new scheduled = not-started (and fulfillment relationship to appointent) in-progress = active on-hold = suspended completed = completed cancelled = aborted"}]},{"id":"CarePlan.activity.detail.statusReason","path":"CarePlan.activity.detail.statusReason","short":"Reason for current status","definition":"Provides reason why the activity isn't yet started, is on hold, was cancelled, etc.","comment":"Will generally not be present if status is \"complete\". Be sure to prompt to update this (or at least remove the existing value) if the status is changed.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.statusReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.statusReason"}]},{"id":"CarePlan.activity.detail.doNotPerform","path":"CarePlan.activity.detail.doNotPerform","short":"If true, activity is prohibiting action","definition":"If true, indicates that the described activity is one that must NOT be engaged in when following the plan. If false, or missing, indicates that the described activity is one that should be engaged in when following the plan.","comment":"This element is labeled as a modifier because it marks an activity as an activity that is not to be performed.","requirements":"Captures intention to not do something that may have been previously typical.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.doNotPerform","min":0,"max":"1"},"type":[{"code":"boolean"}],"meaningWhenMissing":"If missing indicates that the described activity is one that should be engaged in when following the plan.","isModifier":true,"isModifierReason":"If true this element negates the specified action. For example, instead of a request for a procedure, it is a request for the procedure to not occur.","isSummary":false,"mapping":[{"identity":"workflow","map":"Request.doNotPerform"},{"identity":"rim","map":"actionNegationInd"}]},{"id":"CarePlan.activity.detail.scheduled[x]","path":"CarePlan.activity.detail.scheduled[x]","short":"When activity is to occur","definition":"The period, timing or frequency upon which the described activity is to occur.","requirements":"Allows prompting for activities and detection of missed planned activities.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.scheduled[x]","min":0,"max":"1"},"type":[{"code":"Timing"},{"code":"Period"},{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.occurrence[x]"},{"identity":"v2","map":"TQ1"},{"identity":"rim","map":".effectiveTime"}]},{"id":"CarePlan.activity.detail.location","path":"CarePlan.activity.detail.location","short":"Where it should happen","definition":"Identifies the facility where the activity will occur; e.g. home, hospital, specific clinic, etc.","comment":"May reference a specific clinical location or may identify a type of location.","requirements":"Helps in planning of activity.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.location","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Location"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBR-24(???!!)"},{"identity":"rim","map":".participation[typeCode=LOC].role"}]},{"id":"CarePlan.activity.detail.performer","path":"CarePlan.activity.detail.performer","short":"Who will be responsible?","definition":"Identifies who's expected to be involved in the activity.","comment":"A performer MAY also be a participant in the care plan.","requirements":"Helps in planning of activity.","min":0,"max":"*","base":{"path":"CarePlan.activity.detail.performer","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/CareTeam","http://hl7.org/fhir/StructureDefinition/HealthcareService","http://hl7.org/fhir/StructureDefinition/Device"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.performer"},{"identity":"v2","map":"PRT-5 : ( PRV-4 = (provider participations)); PRT-5 : ( PRV-4 = (non-provider person participations )) ; PRT-5 : ( PRV-4 = (patient non-subject of care) ) ; PRT-8"},{"identity":"rim","map":".participation[typeCode=PFM]"}]},{"id":"CarePlan.activity.detail.product[x]","path":"CarePlan.activity.detail.product[x]","short":"What is to be administered/supplied","definition":"Identifies the food, drug or other product to be consumed or supplied in the activity.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.product[x]","min":0,"max":"1"},"type":[{"code":"CodeableConcept"},{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Medication","http://hl7.org/fhir/StructureDefinition/Substance"]}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CarePlanProduct"}],"strength":"example","description":"A product supplied or administered as part of a care plan activity.","valueSet":"http://hl7.org/fhir/ValueSet/medication-codes"},"mapping":[{"identity":"v2","map":"RXE-2 / RXO-1 / RXD-2"},{"identity":"rim","map":".participation[typeCode=PRD].role"}]},{"id":"CarePlan.activity.detail.dailyAmount","path":"CarePlan.activity.detail.dailyAmount","short":"How to consume/day?","definition":"Identifies the quantity expected to be consumed in a given day.","requirements":"Allows rough dose checking.","alias":["daily dose"],"min":0,"max":"1","base":{"path":"CarePlan.activity.detail.dailyAmount","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"RXO-23 / RXE-19 / RXD-12"},{"identity":"rim","map":".outboundRelationship[typeCode=COMP][classCode=SBADM].doseQuantity"}]},{"id":"CarePlan.activity.detail.quantity","path":"CarePlan.activity.detail.quantity","short":"How much to administer/supply/consume","definition":"Identifies the quantity expected to be supplied, administered or consumed by the subject.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.quantity","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"RXO-11 / RXE-10 / RXD-4 / RXG-5 / RXA-6 / TQ1-2.1 *and* RXO-12 / RXE-11 / RXD-5 / RXG-7 / RXA-7 / TQ1-2.2"},{"identity":"rim","map":".outboundRelationship[typeCode=COMP][classCode=SPLY].quantity"}]},{"id":"CarePlan.activity.detail.description","path":"CarePlan.activity.detail.description","short":"Extra info describing activity to perform","definition":"This provides a textual description of constraints on the intended activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.","min":0,"max":"1","base":{"path":"CarePlan.activity.detail.description","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NTE?"},{"identity":"rim","map":".text"}]},{"id":"CarePlan.note","path":"CarePlan.note","short":"Comments about the plan","definition":"General notes about the care plan not covered elsewhere.","requirements":"Used to capture information that applies to the plan as a whole that doesn't fit into discrete elements.","min":0,"max":"*","base":{"path":"CarePlan.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.note"},{"identity":"v2","map":"NTE?"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"annotation\"].value"}]}]},"differential":{"element":[{"id":"CarePlan","path":"CarePlan","definition":"The US Core CarePlan Profile is based upon the core FHIR CarePlan Resource and created to meet the 2015 Edition Common Clinical Data Set 'Assessment and Plan of Treatment requirements.","mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan"}]},{"id":"CarePlan.text","path":"CarePlan.text","min":1,"max":"1","type":[{"code":"Narrative"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.text"}]},{"id":"CarePlan.text.status","path":"CarePlan.text.status","definition":"generated | additional.","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","description":"Constrained value set of narrative statuses.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-narrative-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.text.status"}]},{"id":"CarePlan.status","path":"CarePlan.status","requirements":"Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","description":"Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.","valueSet":"http://hl7.org/fhir/ValueSet/request-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.status"}]},{"id":"CarePlan.intent","path":"CarePlan.intent","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","description":"Codes indicating the degree of authority/intentionality associated with a care plan","valueSet":"http://hl7.org/fhir/ValueSet/care-plan-intent"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA (new element in STU3)"}]},{"id":"CarePlan.category","path":"CarePlan.category","slicing":{"discriminator":[{"type":"pattern","path":"$this"}],"rules":"open"},"definition":"Type of plan.","requirements":"Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", \"wellness plan\", etc.","min":1,"max":"*","type":[{"code":"CodeableConcept"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.category"}]},{"id":"CarePlan.category:AssessPlan","path":"CarePlan.category","sliceName":"AssessPlan","definition":"Type of plan.","requirements":"Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", \"wellness plan\", etc.","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://hl7.org/fhir/us/core/CodeSystem/careplan-category","code":"assess-plan"}]},"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.category"}]},{"id":"CarePlan.subject","path":"CarePlan.subject","definition":"Who care plan is for.","requirements":"Identifies the patient or group whose intended care is described by the plan.","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.subject"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-careteam.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-careteam.json new file mode 100644 index 000000000..a2abb059a --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-careteam.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-careteam","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam","version":"3.0.1","name":"USCoreCareTeam","title":"US Core CareTeam Profile","status":"active","experimental":false,"date":"2019-08-26T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the CareTeam resource for the minimal set of data to query and retrieve a patient's Care Team.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"}],"kind":"resource","abstract":false,"type":"CareTeam","baseDefinition":"http://hl7.org/fhir/StructureDefinition/CareTeam","derivation":"constraint","snapshot":{"element":[{"id":"CareTeam","path":"CareTeam","short":"Planned participants in the coordination and delivery of care for a patient or group","definition":"The US Core CareTeam Profile is based upon the core FHIR CareTeam Resource and created to meet the 2015 Edition Common Clinical Data Set 'Care team member(s)' requirements.","min":0,"max":"*","base":{"path":"CareTeam","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"argonaut-dq-dstu2","map":"CarePlan"}]},{"id":"CareTeam.id","path":"CareTeam.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"CareTeam.meta","path":"CareTeam.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"CareTeam.implicitRules","path":"CareTeam.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"CareTeam.language","path":"CareTeam.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"CareTeam.text","path":"CareTeam.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"CareTeam.contained","path":"CareTeam.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CareTeam.extension","path":"CareTeam.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CareTeam.modifierExtension","path":"CareTeam.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CareTeam.identifier","path":"CareTeam.identifier","short":"External Ids for this team","definition":"Business identifiers assigned to this care team by the performer or other systems which remain constant as the resource is updated and propagates from server to server.","comment":"This is a business identifier, not a resource identifier (see [discussion](http://hl7.org/fhir/R4/resource.html#identifiers)). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number.","requirements":"Allows identification of the care team as it is known by various participating systems and in a way that remains consistent across servers.","min":0,"max":"*","base":{"path":"CareTeam.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"}]},{"id":"CareTeam.status","path":"CareTeam.status","short":"proposed | active | suspended | inactive | entered-in-error","definition":"Indicates the current state of the care team.","comment":"This element is labeled as a modifier because the status contains the code entered-in-error that marks the care team as not currently valid.","min":0,"max":"1","base":{"path":"CareTeam.status","min":0,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","description":"Indicates whether the team is current , represents future intentions or is now a historical record.","valueSet":"http://hl7.org/fhir/ValueSet/care-team-status"},"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.status"}]},{"id":"CareTeam.category","path":"CareTeam.category","short":"Type of team","definition":"Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team.","comment":"There may be multiple axis of categorization and one team may serve multiple purposes.","requirements":"Used for filtering what teams(s) are retrieved and displayed to different types of users.","min":0,"max":"*","base":{"path":"CareTeam.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CareTeamCategory"}],"strength":"example","description":"Indicates the type of care team.","valueSet":"http://hl7.org/fhir/ValueSet/care-team-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"}]},{"id":"CareTeam.name","path":"CareTeam.name","short":"Name of the team, such as crisis assessment team","definition":"A label for human use intended to distinguish like teams. E.g. the \"red\" vs. \"green\" trauma teams.","comment":"The meaning/purpose of the team is conveyed in CareTeam.category. This element may also convey semantics of the team (e.g. \"Red trauma team\"), but its primary purpose is to distinguish between identical teams in a human-friendly way. (\"Team 18735\" isn't as friendly.).","min":0,"max":"1","base":{"path":"CareTeam.name","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true},{"id":"CareTeam.subject","path":"CareTeam.subject","short":"Who care team is for","definition":"Identifies the patient or group whose intended care is handled by the team.","requirements":"Allows the team to care for a group (e.g. marriage) therapy. \nAllows for an organization to designate a team such as the PICC line team.","alias":["patient"],"min":1,"max":"1","base":{"path":"CareTeam.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"w5","map":"FiveWs.subject"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.subject"}]},{"id":"CareTeam.encounter","path":"CareTeam.encounter","short":"Encounter created as part of","definition":"The Encounter during which this CareTeam was created or to which the creation of this record is tightly associated.","comment":"This will typically be the encounter the event occurred within, but some activities may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter.","min":0,"max":"1","base":{"path":"CareTeam.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.context"}]},{"id":"CareTeam.period","path":"CareTeam.period","short":"Time period team covers","definition":"Indicates when the team did (or is intended to) come into effect and end.","requirements":"Allows tracking what team(s) are in effect at a particular time.","min":0,"max":"1","base":{"path":"CareTeam.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.init"}]},{"id":"CareTeam.participant","path":"CareTeam.participant","short":"Members of the team","definition":"Identifies all people and organizations who are expected to be involved in the care team.","min":1,"max":"*","base":{"path":"CareTeam.participant","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"condition":["ctm-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"ctm-1","severity":"error","human":"CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner","expression":"onBehalfOf.exists() implies (member.resolve() is Practitioner)","xpath":"starts-with(f:member/f:reference/@value, 'Practitioner/') or contains(f:member/f:reference/@value, '/Practitioner/') or exists(ancestor::*/f:contains/f:Practitioner/f:id[@value=substring-after(current()/f:member/f:reference/@value, '#')]) or not(exists(f:onBehalfOf))","source":"CareTeam.participant"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"REL (REL.4 is always the Patient) ( or PRT?)"},{"identity":"rim","map":".participation[typeCode=PRF]"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.participant"}]},{"id":"CareTeam.participant.id","path":"CareTeam.participant.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"CareTeam.participant.extension","path":"CareTeam.participant.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"CareTeam.participant.modifierExtension","path":"CareTeam.participant.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"CareTeam.participant.role","path":"CareTeam.participant.role","short":"Type of involvement","definition":"Indicates specific responsibility of an individual within the care team, such as \"Primary care physician\", \"Trained social worker counselor\", \"Caregiver\", etc.","comment":"Roles may sometimes be inferred by type of Practitioner. These are relationships that hold only within the context of the care team. General relationships should be handled as properties of the Patient resource directly.","min":1,"max":"1","base":{"path":"CareTeam.participant.role","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Indicates specific responsibility of an individual within the care team, such as Primary physician, Team coordinator, Caregiver, etc.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-careteam-provider-roles"},"mapping":[{"identity":"v2","map":"REL.2 (or PRT-4?)"},{"identity":"rim","map":".functionCode"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.participant.role"}]},{"id":"CareTeam.participant.member","path":"CareTeam.participant.member","short":"Who is involved","definition":"The specific person or organization who is participating/expected to participate in the care team.","comment":"Patient only needs to be listed if they have a role other than \"subject of care\".\n\nMember is optional because some participants may be known only by their role, particularly in draft plans.","min":1,"max":"1","base":{"path":"CareTeam.participant.member","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"REL.5 (or PRT-5 : ( PRV-4 {provider participations} ) / PRT-5 : ( PRV-4 {non-provider person participations} ) / PRT-5 : ( PRV-4 = (patient non-subject of care) ) / PRT-8?)"},{"identity":"rim","map":".role"},{"identity":"argonaut-dq-dstu2","map":"CarePlan.participant.member"}]},{"id":"CareTeam.participant.onBehalfOf","path":"CareTeam.participant.onBehalfOf","short":"Organization of the practitioner","definition":"The organization of the practitioner.","requirements":"Practitioners can be associated with multiple organizations. This element indicates which organization they were acting on behalf of.","min":0,"max":"1","base":{"path":"CareTeam.participant.onBehalfOf","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true},{"id":"CareTeam.participant.period","path":"CareTeam.participant.period","short":"Time period of participant","definition":"Indicates when the specific member or organization did (or is intended to) come into effect and end.","min":0,"max":"1","base":{"path":"CareTeam.participant.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":false},{"id":"CareTeam.reasonCode","path":"CareTeam.reasonCode","short":"Why the care team exists","definition":"Describes why the care team exists.","min":0,"max":"*","base":{"path":"CareTeam.reasonCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"CareTeamReason"}],"strength":"example","description":"Indicates the reason for the care team.","valueSet":"http://hl7.org/fhir/ValueSet/clinical-findings"},"mapping":[{"identity":"w5","map":"FiveWs.why[x]"}]},{"id":"CareTeam.reasonReference","path":"CareTeam.reasonReference","short":"Why the care team exists","definition":"Condition(s) that this care team addresses.","min":0,"max":"*","base":{"path":"CareTeam.reasonReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.why[x]"}]},{"id":"CareTeam.managingOrganization","path":"CareTeam.managingOrganization","short":"Organization responsible for the care team","definition":"The organization responsible for the care team.","requirements":"Allows for multiple organizations to collaboratively manage cross-organizational, longitudinal care plan.","min":0,"max":"*","base":{"path":"CareTeam.managingOrganization","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true},{"id":"CareTeam.telecom","path":"CareTeam.telecom","short":"A contact detail for the care team (that applies to all members)","definition":"A central contact detail for the care team (that applies to all members).","comment":"The ContactPoint.use code of home is not appropriate to use. These contacts are not the contact details of individual care team members.","min":0,"max":"*","base":{"path":"CareTeam.telecom","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"isModifier":false,"isSummary":false},{"id":"CareTeam.note","path":"CareTeam.note","short":"Comments made about the CareTeam","definition":"Comments made about the CareTeam.","min":0,"max":"*","base":{"path":"CareTeam.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false}]},"differential":{"element":[{"id":"CareTeam","path":"CareTeam","definition":"The US Core CareTeam Profile is based upon the core FHIR CareTeam Resource and created to meet the 2015 Edition Common Clinical Data Set 'Care team member(s)' requirements.","mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan"}]},{"id":"CareTeam.status","path":"CareTeam.status","min":0,"max":"1","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","description":"Indicates whether the team is current , represents future intentions or is now a historical record.","valueSet":"http://hl7.org/fhir/ValueSet/care-team-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.status"}]},{"id":"CareTeam.subject","path":"CareTeam.subject","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.subject"}]},{"id":"CareTeam.participant","path":"CareTeam.participant","min":1,"max":"*","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.participant"}]},{"id":"CareTeam.participant.role","path":"CareTeam.participant.role","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Indicates specific responsibility of an individual within the care team, such as Primary physician, Team coordinator, Caregiver, etc.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-careteam-provider-roles"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.participant.role"}]},{"id":"CareTeam.participant.member","path":"CareTeam.participant.member","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"CarePlan.participant.member"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-condition.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-condition.json new file mode 100644 index 000000000..29814695c --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-condition.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-condition","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition","version":"3.0.1","name":"USCoreCondition","title":"US Core Condition Profile","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"Health Level Seven International (Infrastructure and Messaging - Data Access Framework)","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Condition resource for the minimal set of data to query and retrieve problems and health concerns information.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"sct-concept","uri":"http://snomed.info/conceptdomain","name":"SNOMED CT Concept Domain Binding"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"sct-attr","uri":"http://snomed.org/attributebinding","name":"SNOMED CT Attribute Binding"}],"kind":"resource","abstract":false,"type":"Condition","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Condition","derivation":"constraint","snapshot":{"element":[{"id":"Condition","path":"Condition","short":"Detailed information about conditions, problems or diagnoses","definition":"The US Core Condition Profile is based upon the core FHIR Condition Resource and created to meet the 2015 Edition Common Clinical Data Set 'Problems' and 'Health Concerns' requirements.","min":0,"max":"*","base":{"path":"Condition","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"con-5","severity":"error","human":"Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error","expression":"verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()","xpath":"not(exists(f:verificationStatus/f:coding[f:system/@value='http://terminology.hl7.org/CodeSystem/condition-ver-status' and f:code/@value='entered-in-error'])) or not(exists(f:clinicalStatus))","source":"Condition"},{"key":"con-4","severity":"error","human":"If condition is abated, then clinicalStatus must be either inactive, resolved, or remission","expression":"abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()","xpath":"not(exists(*[starts-with(local-name(.), 'abatement')])) or exists(f:clinicalStatus/f:coding[f:system/@value='http://terminology.hl7.org/CodeSystem/condition-clinical' and f:code/@value=('resolved', 'remission', 'inactive')])","source":"Condition"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"Most systems will expect a clinicalStatus to be valued for problem-list-items that are managed over time, but might not need a clinicalStatus for point in time encounter-diagnosis."}],"key":"con-3","severity":"warning","human":"Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item","expression":"clinicalStatus.exists() or verificationStatus='entered-in-error' or category.select($this='problem-list-item').empty()","xpath":"exists(f:clinicalStatus) or f:verificationStatus/@value='entered-in-error' or not(exists(category[@value='problem-list-item']))","source":"Condition"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true}],"key":"us-core-1","severity":"warning","human":"A code in Condition.category SHOULD be from US Core Condition Category Codes value set.","expression":"where(category in 'http://hl7.org/fhir/us/core/ValueSet/us-core-condition-category').exists()","xpath":"(no xpath equivalent)"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"sct-concept","map":"< 243796009 |Situation with explicit context| : 246090004 |Associated finding| = ( ( < 404684003 |Clinical finding| MINUS ( << 420134006 |Propensity to adverse reactions| OR << 473010000 |Hypersensitivity condition| OR << 79899007 |Drug interaction| OR << 69449002 |Drug action| OR << 441742003 |Evaluation finding| OR << 307824009 |Administrative status| OR << 385356007 |Tumor stage finding|)) OR < 272379006 |Event|)"},{"identity":"v2","map":"PPR message"},{"identity":"rim","map":"Observation[classCode=OBS, moodCode=EVN, code=ASSERTION, value id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"con-1","severity":"error","human":"Stage SHALL have summary or assessment","expression":"summary.exists() or assessment.exists()","xpath":"exists(f:summary) or exists(f:assessment)"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"./inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"stage/grade\"]"}]},{"id":"Condition.stage.id","path":"Condition.stage.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Condition.stage.extension","path":"Condition.stage.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Condition.stage.modifierExtension","path":"Condition.stage.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Condition.stage.summary","path":"Condition.stage.summary","short":"Simple summary (disease specific)","definition":"A simple summary of the stage such as \"Stage 3\". The determination of the stage is disease-specific.","min":0,"max":"1","base":{"path":"Condition.stage.summary","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["con-1"],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ConditionStage"}],"strength":"example","description":"Codes describing condition stages (e.g. Cancer stages).","valueSet":"http://hl7.org/fhir/ValueSet/condition-stage"},"mapping":[{"identity":"sct-concept","map":"< 254291000 |Staging and scales|"},{"identity":"v2","map":"PRB-14"},{"identity":"rim","map":".value"}]},{"id":"Condition.stage.assessment","path":"Condition.stage.assessment","short":"Formal record of assessment","definition":"Reference to a formal record of the evidence on which the staging assessment is based.","min":0,"max":"*","base":{"path":"Condition.stage.assessment","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/ClinicalImpression","http://hl7.org/fhir/StructureDefinition/DiagnosticReport","http://hl7.org/fhir/StructureDefinition/Observation"]}],"condition":["con-1"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".self"}]},{"id":"Condition.stage.type","path":"Condition.stage.type","short":"Kind of staging","definition":"The kind of staging, such as pathological or clinical staging.","min":0,"max":"1","base":{"path":"Condition.stage.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ConditionStageType"}],"strength":"example","description":"Codes describing the kind of condition staging (e.g. clinical or pathological).","valueSet":"http://hl7.org/fhir/ValueSet/condition-stage-type"},"mapping":[{"identity":"rim","map":"./inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"stage type\"]"}]},{"id":"Condition.evidence","path":"Condition.evidence","short":"Supporting evidence","definition":"Supporting evidence / manifestations that are the basis of the Condition's verification status, such as evidence that confirmed or refuted the condition.","comment":"The evidence may be a simple list of coded symptoms/manifestations, or references to observations or formal assessments, or both.","min":0,"max":"*","base":{"path":"Condition.evidence","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"con-2","severity":"error","human":"evidence SHALL have code or details","expression":"code.exists() or detail.exists()","xpath":"exists(f:code) or exists(f:detail)"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=SPRT].target[classCode=OBS, moodCode=EVN]"}]},{"id":"Condition.evidence.id","path":"Condition.evidence.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Condition.evidence.extension","path":"Condition.evidence.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Condition.evidence.modifierExtension","path":"Condition.evidence.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Condition.evidence.code","path":"Condition.evidence.code","short":"Manifestation/symptom","definition":"A manifestation or symptom that led to the recording of this condition.","min":0,"max":"*","base":{"path":"Condition.evidence.code","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"condition":["con-2"],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ManifestationOrSymptom"}],"strength":"example","description":"Codes that describe the manifestation or symptoms of a condition.","valueSet":"http://hl7.org/fhir/ValueSet/manifestation-or-symptom"},"mapping":[{"identity":"workflow","map":"Event.reasonCode"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"sct-concept","map":"< 404684003 |Clinical finding|"},{"identity":"rim","map":"[code=\"diagnosis\"].value"}]},{"id":"Condition.evidence.detail","path":"Condition.evidence.detail","short":"Supporting information found elsewhere","definition":"Links to other relevant information, including pathology reports.","min":0,"max":"*","base":{"path":"Condition.evidence.detail","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"condition":["con-2"],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"rim","map":".self"}]},{"id":"Condition.note","path":"Condition.note","short":"Additional information about the Condition","definition":"Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.","min":0,"max":"*","base":{"path":"Condition.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.note"},{"identity":"v2","map":"NTE child of PRB"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"annotation\"].value"}]}]},"differential":{"element":[{"id":"Condition","path":"Condition","definition":"The US Core Condition Profile is based upon the core FHIR Condition Resource and created to meet the 2015 Edition Common Clinical Data Set 'Problems' and 'Health Concerns' requirements.","constraint":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true}],"key":"us-core-1","severity":"warning","human":"A code in Condition.category SHOULD be from US Core Condition Category Codes value set.","expression":"where(category in 'http://hl7.org/fhir/us/core/ValueSet/us-core-condition-category').exists()","xpath":"(no xpath equivalent)"}],"mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Condition"}]},{"id":"Condition.clinicalStatus","path":"Condition.clinicalStatus","min":0,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/condition-clinical"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Condition.clinicalStatus"}]},{"id":"Condition.verificationStatus","path":"Condition.verificationStatus","min":0,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/condition-ver-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Condition.verificationStatus"}]},{"id":"Condition.category","path":"Condition.category","min":1,"max":"*","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-condition-category"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Condition.category"}]},{"id":"Condition.code","path":"Condition.code","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Valueset to describe the actual problem experienced by the patient","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-problem"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Condition.code"}]},{"id":"Condition.subject","path":"Condition.subject","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Condition.patient"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-diagnosticreport-lab.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-diagnosticreport-lab.json new file mode 100644 index 000000000..f38d6915c --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-diagnosticreport-lab.json @@ -0,0 +1,1666 @@ +{ + "resourceType": "StructureDefinition", + "id": "us-core-diagnosticreport-lab", + "text": { + "status": "generated", + "div": "
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" DiagnosticReport I0..*us-core-7: DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.
    \".\"\".\"\".\" status S1..1codeBinding: DiagnosticReportStatus (required)
    \".\"\".\"\".\" category S1..*(Slice Definition)Slice: Unordered, Open by pattern:$this
    \".\"\".\"\".\"\".\" category:LaboratorySlice S1..1CodeableConceptRequired Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
    \".\"\".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: LAB
    \".\"\".\"\".\" code S1..1CodeableConceptUS Core Laboratory Report Order Code
    Binding: US Core Diagnostic Report Laboratory Codes (extensible)
    \".\"\".\"\".\" subject S1..1Reference(US Core Patient Profile)
    \".\"\".\"\".\" effective[x] S1..1Specimen Collection Datetime or Period
    \".\"\".\"\".\"\".\" effectiveDateTimedateTime
    \".\"\".\"\".\"\".\" effectivePeriodPeriod
    \".\"\".\"\".\" issued S1..1instant
    \".\"\".\"\".\" performer S0..*Reference(US Core Practitioner Profile | US Core Organization Profile)
    \".\"\".\"\".\" result SI0..*Reference(US Core Laboratory Result Observation Profile)us-core-7: DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.
    \".\"\".\"\".\" media S0..*BackboneElement
    \".\"\".\"\".\" presentedForm SI0..*Attachmentus-core-7: DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.

    \"doco\" Documentation for this format
    " + }, + "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab", + "version": "3.0.1", + "name": "USCoreDiagnosticReportProfileLaboratoryReporting", + "title": "US Core DiagnosticReport Profile for Laboratory Results Reporting", + "status": "active", + "experimental": false, + "date": "2019-05-21T00:00:00+00:00", + "publisher": "HL7 US Realm Steering Committee", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.healthit.gov" + } + ] + } + ], + "description": "Defines constraints and extensions on the DiagnosticReport resource for the minimal set of data to query and retrieve diagnostic reports associated with laboratory results for a patient", + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US", + "display": "United States of America" + } + ] + } + ], + "fhirVersion": "4.0.0", + "mapping": [ + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + } + ], + "kind": "resource", + "abstract": false, + "type": "DiagnosticReport", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/DiagnosticReport", + "derivation": "constraint", + "snapshot": { + "element": [ + { + "id": "DiagnosticReport", + "path": "DiagnosticReport", + "short": "A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports", + "definition": "The US Core Diagnostic Report Profile is based upon the core FHIR DiagnosticReport Resource and created to meet the 2015 Edition Common Clinical Data Set 'Laboratory test(s) and Laboratory value(s)/result(s)' requirements.", + "comment": "This is intended to capture a single report and is not suitable for use in displaying summary information that covers multiple reports. For example, this resource has not been designed for laboratory cumulative reporting formats nor detailed structured reports for sequencing.", + "alias": [ + "Report", + "Test", + "Result", + "Results", + "Labs", + "Laboratory", + "Lab Result", + "Lab Report" + ], + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport", + "min": 0, + "max": "*" + }, + "constraint": [ + { + "key": "dom-2", + "severity": "error", + "human": "If the resource is contained in another resource, it SHALL NOT contain nested Resources", + "expression": "contained.contained.empty()", + "xpath": "not(parent::f:contained and f:contained)", + "source": "DomainResource" + }, + { + "key": "dom-4", + "severity": "error", + "human": "If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated", + "expression": "contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()", + "xpath": "not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))", + "source": "DomainResource" + }, + { + "key": "dom-3", + "severity": "error", + "human": "If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource", + "expression": "contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()", + "xpath": "not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))", + "source": "DomainResource" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice", + "valueBoolean": true + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation", + "valueMarkdown": "When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time." + } + ], + "key": "dom-6", + "severity": "warning", + "human": "A resource should have narrative for robust management", + "expression": "text.div.exists()", + "xpath": "exists(f:text/h:div)", + "source": "DomainResource" + }, + { + "key": "dom-5", + "severity": "error", + "human": "If a resource is contained in another resource, it SHALL NOT have a security label", + "expression": "contained.meta.security.empty()", + "xpath": "not(exists(f:contained/*/f:meta/f:security))", + "source": "DomainResource" + }, + { + "key": "us-core-7", + "severity": "error", + "human": "DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.", + "expression": "result.exists() or presentedForm.exists()", + "xpath": "f:result or f:presentedForm" + } + ], + "mustSupport": false, + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + }, + { + "identity": "workflow", + "map": "Event" + }, + { + "identity": "v2", + "map": "ORU -> OBR" + }, + { + "identity": "rim", + "map": "Observation[classCode=OBS, moodCode=EVN]" + } + ] + }, + { + "id": "DiagnosticReport.id", + "path": "DiagnosticReport.id", + "short": "Logical id of this artifact", + "definition": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + "comment": "The only time that a resource does not have an id is when it is being submitted to the server using a create operation.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "id" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "DiagnosticReport.meta", + "path": "DiagnosticReport.meta", + "short": "Metadata about the resource", + "definition": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.meta", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Meta" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "DiagnosticReport.implicitRules", + "path": "DiagnosticReport.implicitRules", + "short": "A set of rules under which this content was created", + "definition": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + "comment": "Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.implicitRules", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "uri" + } + ], + "isModifier": true, + "isModifierReason": "This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation", + "isSummary": true + }, + { + "id": "DiagnosticReport.language", + "path": "DiagnosticReport.language", + "short": "Language of the resource content", + "definition": "The base language in which the resource is written.", + "comment": "Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).", + "min": 0, + "max": "1", + "base": { + "path": "Resource.language", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet", + "valueCanonical": "http://hl7.org/fhir/ValueSet/all-languages" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "Language" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", + "valueBoolean": true + } + ], + "strength": "preferred", + "description": "A human language.", + "valueSet": "http://hl7.org/fhir/ValueSet/languages" + } + }, + { + "id": "DiagnosticReport.text", + "path": "DiagnosticReport.text", + "short": "Text summary of the resource, for human interpretation", + "definition": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + "comment": "Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.", + "alias": [ + "narrative", + "html", + "xhtml", + "display" + ], + "min": 0, + "max": "1", + "base": { + "path": "DomainResource.text", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Narrative" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "Act.text?" + } + ] + }, + { + "id": "DiagnosticReport.contained", + "path": "DiagnosticReport.contained", + "short": "Contained, inline Resources", + "definition": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.", + "comment": "This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.", + "alias": [ + "inline resources", + "anonymous resources", + "contained resources" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.contained", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Resource" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "DiagnosticReport.extension", + "path": "DiagnosticReport.extension", + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "DiagnosticReport.modifierExtension", + "path": "DiagnosticReport.modifierExtension", + "short": "Extensions that cannot be ignored", + "definition": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them", + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "DiagnosticReport.identifier", + "path": "DiagnosticReport.identifier", + "short": "Business identifier for report", + "definition": "Identifiers assigned to this report by the performer or other systems.", + "comment": "Usually assigned by the Information System of the diagnostic service provider (filler id).", + "requirements": "Need to know what identifier to use when making queries about this report from the source laboratory, and for linking to the report outside FHIR context.", + "alias": [ + "ReportID", + "Filler ID", + "Placer ID" + ], + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.identifier", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Identifier" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.identifier" + }, + { + "identity": "w5", + "map": "FiveWs.identifier" + }, + { + "identity": "v2", + "map": "OBR-51/ for globally unique filler ID - OBR-3 , For non-globally unique filler-id the flller/placer number must be combined with the universal service Id - OBR-2(if present)+OBR-3+OBR-4" + }, + { + "identity": "rim", + "map": "id" + } + ] + }, + { + "id": "DiagnosticReport.basedOn", + "path": "DiagnosticReport.basedOn", + "short": "What was requested", + "definition": "Details concerning a service requested.", + "comment": "Note: Usually there is one test request for each result, however in some circumstances multiple test requests may be represented using a single test result resource. Note that there are also cases where one request leads to multiple reports.", + "requirements": "This allows tracing of authorization for the report and tracking whether proposals/recommendations were acted upon.", + "alias": [ + "Request" + ], + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.basedOn", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/CarePlan", + "http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation", + "http://hl7.org/fhir/StructureDefinition/MedicationRequest", + "http://hl7.org/fhir/StructureDefinition/NutritionOrder", + "http://hl7.org/fhir/StructureDefinition/ServiceRequest" + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "workflow", + "map": "Event.basedOn" + }, + { + "identity": "v2", + "map": "ORC? OBR-2/3?" + }, + { + "identity": "rim", + "map": "outboundRelationship[typeCode=FLFS].target" + } + ] + }, + { + "id": "DiagnosticReport.status", + "path": "DiagnosticReport.status", + "short": "registered | partial | preliminary | final +", + "definition": "The status of the diagnostic report.", + "requirements": "Diagnostic services routinely issue provisional/incomplete reports, and sometimes withdraw previously released reports.", + "min": 1, + "max": "1", + "base": { + "path": "DiagnosticReport.status", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "mustSupport": true, + "isModifier": true, + "isModifierReason": "This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid", + "isSummary": true, + "binding": { + "strength": "required", + "valueSet": "http://hl7.org/fhir/ValueSet/diagnostic-report-status" + }, + "mapping": [ + { + "identity": "workflow", + "map": "Event.status" + }, + { + "identity": "w5", + "map": "FiveWs.status" + }, + { + "identity": "v2", + "map": "OBR-25 (not 1:1 mapping)" + }, + { + "identity": "rim", + "map": "statusCode Note: final and amended are distinguished by whether observation is the subject of a ControlAct event of type \"revise\"" + } + ] + }, + { + "id": "DiagnosticReport.category", + "path": "DiagnosticReport.category", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "$this" + } + ], + "rules": "open" + }, + "short": "Service category", + "definition": "A code that classifies the clinical discipline, department or diagnostic service that created the report (e.g. cardiology, biochemistry, hematology, MRI). This is used for searching, sorting and display purposes.", + "comment": "Multiple categories are allowed using various categorization schemes. The level of granularity is defined by the category concepts in the value set. More fine-grained filtering can be performed using the metadata and/or terminology hierarchy in DiagnosticReport.code.", + "alias": [ + "Department", + "Sub-department", + "Service", + "Discipline" + ], + "min": 1, + "max": "*", + "base": { + "path": "DiagnosticReport.category", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "DiagnosticServiceSection" + } + ], + "strength": "example", + "description": "Codes for diagnostic service sections.", + "valueSet": "http://hl7.org/fhir/ValueSet/diagnostic-service-sections" + }, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.class" + }, + { + "identity": "v2", + "map": "OBR-24" + }, + { + "identity": "rim", + "map": "inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code" + } + ] + }, + { + "id": "DiagnosticReport.category:LaboratorySlice", + "path": "DiagnosticReport.category", + "sliceName": "LaboratorySlice", + "short": "Service category", + "definition": "A code that classifies the clinical discipline, department or diagnostic service that created the report (e.g. cardiology, biochemistry, hematology, MRI). This is used for searching, sorting and display purposes.", + "comment": "Multiple categories are allowed using various categorization schemes. The level of granularity is defined by the category concepts in the value set. More fine-grained filtering can be performed using the metadata and/or terminology hierarchy in DiagnosticReport.code.", + "alias": [ + "Department", + "Sub-department", + "Service", + "Discipline" + ], + "min": 1, + "max": "1", + "base": { + "path": "DiagnosticReport.category", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "patternCodeableConcept": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0074", + "code": "LAB" + } + ] + }, + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "DiagnosticServiceSection" + } + ], + "strength": "example", + "description": "Codes for diagnostic service sections.", + "valueSet": "http://hl7.org/fhir/ValueSet/diagnostic-service-sections" + }, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.class" + }, + { + "identity": "v2", + "map": "OBR-24" + }, + { + "identity": "rim", + "map": "inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code" + } + ] + }, + { + "id": "DiagnosticReport.code", + "path": "DiagnosticReport.code", + "short": "US Core Laboratory Report Order Code", + "definition": "The test, panel or battery that was ordered.", + "comment": "UsageNote= The typical patterns for codes are: 1) a LOINC code either as a translation from a \"local\" code or as a primary code, or 2) a local code only if no suitable LOINC exists, or 3) both the local and the LOINC translation. Systems SHALL be capable of sending the local code if one exists.", + "alias": [ + "Type" + ], + "min": 1, + "max": "1", + "base": { + "path": "DiagnosticReport.code", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "binding": { + "strength": "extensible", + "description": "LOINC codes", + "valueSet": "http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-lab-codes" + }, + "mapping": [ + { + "identity": "workflow", + "map": "Event.code" + }, + { + "identity": "w5", + "map": "FiveWs.what[x]" + }, + { + "identity": "v2", + "map": "OBR-4 (HL7 v2 doesn't provide an easy way to indicate both the ordered test and the performed panel)" + }, + { + "identity": "rim", + "map": "code" + } + ] + }, + { + "id": "DiagnosticReport.subject", + "path": "DiagnosticReport.subject", + "short": "The subject of the report - usually, but not always, the patient", + "definition": "The subject of the report. Usually, but not always, this is a patient. However, diagnostic services also perform analyses on specimens collected from a variety of other sources.", + "requirements": "SHALL know the subject context.", + "alias": [ + "Patient" + ], + "min": 1, + "max": "1", + "base": { + "path": "DiagnosticReport.subject", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" + ] + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.subject" + }, + { + "identity": "w5", + "map": "FiveWs.subject[x]" + }, + { + "identity": "v2", + "map": "PID-3 (no HL7 v2 mapping for Group or Device)" + }, + { + "identity": "rim", + "map": "participation[typeCode=SBJ]" + }, + { + "identity": "w5", + "map": "FiveWs.subject" + } + ] + }, + { + "id": "DiagnosticReport.encounter", + "path": "DiagnosticReport.encounter", + "short": "Health care event when test ordered", + "definition": "The healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport is about.", + "comment": "This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).", + "requirements": "Links the request to the Encounter context.", + "alias": [ + "Context" + ], + "min": 0, + "max": "1", + "base": { + "path": "DiagnosticReport.encounter", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Encounter" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.encounter" + }, + { + "identity": "w5", + "map": "FiveWs.context" + }, + { + "identity": "v2", + "map": "PV1-19" + }, + { + "identity": "rim", + "map": "inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]" + } + ] + }, + { + "id": "DiagnosticReport.effective[x]", + "path": "DiagnosticReport.effective[x]", + "short": "Specimen Collection Datetime or Period", + "definition": "This is the Specimen Collection Datetime or Period which is the physically relevent dateTime for laboratory tests.", + "comment": "If the diagnostic procedure was performed on the patient, this is the time it was performed. If there are specimens, the diagnostically relevant time can be derived from the specimen collection times, but the specimen information is not always available, and the exact relationship between the specimens and the diagnostically relevant time is not always automatic.", + "requirements": "Need to know where in the patient history to file/present this report.", + "alias": [ + "Observation time", + "Effective Time", + "Occurrence" + ], + "min": 1, + "max": "1", + "base": { + "path": "DiagnosticReport.effective[x]", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "dateTime" + }, + { + "code": "Period" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.occurrence[x]" + }, + { + "identity": "w5", + "map": "FiveWs.done[x]" + }, + { + "identity": "v2", + "map": "OBR-7" + }, + { + "identity": "rim", + "map": "effectiveTime" + } + ] + }, + { + "id": "DiagnosticReport.issued", + "path": "DiagnosticReport.issued", + "short": "DateTime this version was made", + "definition": "The date and time that this version of the report was made available to providers, typically after the report was reviewed and verified.", + "comment": "May be different from the update time of the resource itself, because that is the status of the record (potentially a secondary copy), not the actual release time of the report.", + "requirements": "Clinicians need to be able to check the date that the report was released.", + "alias": [ + "Date published", + "Date Issued", + "Date Verified" + ], + "min": 1, + "max": "1", + "base": { + "path": "DiagnosticReport.issued", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "instant" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.recorded" + }, + { + "identity": "v2", + "map": "OBR-22" + }, + { + "identity": "rim", + "map": "participation[typeCode=VRF or AUT].time" + } + ] + }, + { + "id": "DiagnosticReport.performer", + "path": "DiagnosticReport.performer", + "short": "Responsible Diagnostic Service", + "definition": "The diagnostic service that is responsible for issuing the report.", + "comment": "This is not necessarily the source of the atomic data items or the entity that interpreted the results. It is the entity that takes responsibility for the clinical report.", + "requirements": "Need to know whom to contact if there are queries about the results. Also may need to track the source of reports for secondary data analysis.", + "alias": [ + "Laboratory", + "Service", + "Practitioner", + "Department", + "Company", + "Authorized by", + "Director" + ], + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.performer", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner", + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization" + ] + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.performer.actor" + }, + { + "identity": "w5", + "map": "FiveWs.actor" + }, + { + "identity": "v2", + "map": "PRT-8 (where this PRT-4-Participation = \"PO\")" + }, + { + "identity": "rim", + "map": ".participation[typeCode=PRF]" + } + ] + }, + { + "id": "DiagnosticReport.resultsInterpreter", + "path": "DiagnosticReport.resultsInterpreter", + "short": "Primary result interpreter", + "definition": "The practitioner or organization that is responsible for the report's conclusions and interpretations.", + "comment": "Might not be the same entity that takes responsibility for the clinical report.", + "requirements": "Need to know whom to contact if there are queries about the results. Also may need to track the source of reports for secondary data analysis.", + "alias": [ + "Analyzed by", + "Reported by" + ], + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.resultsInterpreter", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Practitioner", + "http://hl7.org/fhir/StructureDefinition/PractitionerRole", + "http://hl7.org/fhir/StructureDefinition/Organization", + "http://hl7.org/fhir/StructureDefinition/CareTeam" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.performer.actor" + }, + { + "identity": "w5", + "map": "FiveWs.actor" + }, + { + "identity": "v2", + "map": "OBR-32, PRT-8 (where this PRT-4-Participation = \"PI\")" + }, + { + "identity": "rim", + "map": ".participation[typeCode=PRF]" + } + ] + }, + { + "id": "DiagnosticReport.specimen", + "path": "DiagnosticReport.specimen", + "short": "Specimens this report is based on", + "definition": "Details about the specimens on which this diagnostic report is based.", + "comment": "If the specimen is sufficiently specified with a code in the test result name, then this additional data may be redundant. If there are multiple specimens, these may be represented per observation or group.", + "requirements": "Need to be able to report information about the collected specimens on which the report is based.", + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.specimen", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Specimen" + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "SPM" + }, + { + "identity": "rim", + "map": "participation[typeCode=SBJ]" + } + ] + }, + { + "id": "DiagnosticReport.result", + "path": "DiagnosticReport.result", + "short": "Observations", + "definition": "[Observations](http://hl7.org/fhir/R4/observation.html) that are part of this diagnostic report.", + "comment": "Observations can contain observations.", + "requirements": "Need to support individual results, or groups of results, where the result grouping is arbitrary, but meaningful.", + "alias": [ + "Data", + "Atomic Value", + "Result", + "Atomic result", + "Data", + "Test", + "Analyte", + "Battery", + "Organizer" + ], + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.result", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab" + ] + } + ], + "constraint": [ + { + "key": "us-core-7", + "severity": "error", + "human": "DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.", + "expression": "result.exists() or presentedForm.exists()", + "xpath": "f:result or f:presentedForm" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "OBXs" + }, + { + "identity": "rim", + "map": "outboundRelationship[typeCode=COMP].target" + } + ] + }, + { + "id": "DiagnosticReport.imagingStudy", + "path": "DiagnosticReport.imagingStudy", + "short": "Reference to full details of imaging associated with the diagnostic report", + "definition": "One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.", + "comment": "ImagingStudy and the image element are somewhat overlapping - typically, the list of image references in the image element will also be found in one of the imaging study resources. However, each caters to different types of displays for different types of purposes. Neither, either, or both may be provided.", + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.imagingStudy", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/ImagingStudy" + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "outboundRelationship[typeCode=COMP].target[classsCode=DGIMG, moodCode=EVN]" + } + ] + }, + { + "id": "DiagnosticReport.media", + "path": "DiagnosticReport.media", + "short": "Key images associated with this report", + "definition": "A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).", + "requirements": "Many diagnostic services include images in the report as part of their service.", + "alias": [ + "DICOM", + "Slides", + "Scans" + ], + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.media", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "BackboneElement" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "Element" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "OBX?" + }, + { + "identity": "rim", + "map": "outboundRelationship[typeCode=COMP].target" + } + ] + }, + { + "id": "DiagnosticReport.media.id", + "path": "DiagnosticReport.media.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "DiagnosticReport.media.extension", + "path": "DiagnosticReport.media.extension", + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "DiagnosticReport.media.modifierExtension", + "path": "DiagnosticReport.media.modifierExtension", + "short": "Extensions that cannot be ignored even if unrecognized", + "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content", + "modifiers" + ], + "min": 0, + "max": "*", + "base": { + "path": "BackboneElement.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "DiagnosticReport.media.comment", + "path": "DiagnosticReport.media.comment", + "short": "Comment about the image (e.g. explanation)", + "definition": "A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.", + "comment": "The comment should be displayed with the image. It would be common for the report to include additional discussion of the image contents in other sections such as the conclusion.", + "requirements": "The provider of the report should make a comment about each image included in the report.", + "min": 0, + "max": "1", + "base": { + "path": "DiagnosticReport.media.comment", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": ".inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code=\"annotation\"].value" + } + ] + }, + { + "id": "DiagnosticReport.media.link", + "path": "DiagnosticReport.media.link", + "short": "Reference to the image source", + "definition": "Reference to the image source.", + "min": 1, + "max": "1", + "base": { + "path": "DiagnosticReport.media.link", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Media" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": ".value.reference" + } + ] + }, + { + "id": "DiagnosticReport.conclusion", + "path": "DiagnosticReport.conclusion", + "short": "Clinical conclusion (interpretation) of test results", + "definition": "Concise and clinically contextualized summary conclusion (interpretation/impression) of the diagnostic report.", + "requirements": "Need to be able to provide a conclusion that is not lost among the basic result data.", + "alias": [ + "Report" + ], + "min": 0, + "max": "1", + "base": { + "path": "DiagnosticReport.conclusion", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "OBX" + }, + { + "identity": "rim", + "map": "inboundRelationship[typeCode=\"SPRT\"].source[classCode=OBS, moodCode=EVN, code=LOINC:48767-8].value (type=ST)" + } + ] + }, + { + "id": "DiagnosticReport.conclusionCode", + "path": "DiagnosticReport.conclusionCode", + "short": "Codes for the clinical conclusion of test results", + "definition": "One or more codes that represent the summary conclusion (interpretation/impression) of the diagnostic report.", + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.conclusionCode", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "AdjunctDiagnosis" + } + ], + "strength": "example", + "description": "Diagnosis codes provided as adjuncts to the report.", + "valueSet": "http://hl7.org/fhir/ValueSet/clinical-findings" + }, + "mapping": [ + { + "identity": "v2", + "map": "OBX" + }, + { + "identity": "rim", + "map": "inboundRelationship[typeCode=SPRT].source[classCode=OBS, moodCode=EVN, code=LOINC:54531-9].value (type=CD)" + } + ] + }, + { + "id": "DiagnosticReport.presentedForm", + "path": "DiagnosticReport.presentedForm", + "short": "Entire report as issued", + "definition": "Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.", + "comment": "\"application/pdf\" is recommended as the most reliable and interoperable in this context.", + "requirements": "Gives laboratory the ability to provide its own fully formatted report for clinical fidelity.", + "min": 0, + "max": "*", + "base": { + "path": "DiagnosticReport.presentedForm", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Attachment" + } + ], + "constraint": [ + { + "key": "us-core-7", + "severity": "error", + "human": "DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.", + "expression": "result.exists() or presentedForm.exists()", + "xpath": "f:result or f:presentedForm" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "OBX" + }, + { + "identity": "rim", + "map": "text (type=ED)" + } + ] + } + ] + }, + "differential": { + "element": [ + { + "id": "DiagnosticReport", + "path": "DiagnosticReport", + "definition": "The US Core Diagnostic Report Profile is based upon the core FHIR DiagnosticReport Resource and created to meet the 2015 Edition Common Clinical Data Set 'Laboratory test(s) and Laboratory value(s)/result(s)' requirements.", + "alias": [ + "Lab Result", + "Lab Report" + ], + "constraint": [ + { + "key": "us-core-7", + "severity": "error", + "human": "DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.", + "expression": "result.exists() or presentedForm.exists()", + "xpath": "f:result or f:presentedForm" + } + ], + "mustSupport": false, + "isModifier": false + }, + { + "id": "DiagnosticReport.status", + "path": "DiagnosticReport.status", + "min": 1, + "max": "1", + "type": [ + { + "code": "code" + } + ], + "mustSupport": true, + "isModifier": false, + "binding": { + "strength": "required", + "valueSet": "http://hl7.org/fhir/ValueSet/diagnostic-report-status" + } + }, + { + "id": "DiagnosticReport.category", + "path": "DiagnosticReport.category", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "$this" + } + ], + "rules": "open" + }, + "min": 1, + "max": "*", + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "isModifier": false + }, + { + "id": "DiagnosticReport.category:LaboratorySlice", + "path": "DiagnosticReport.category", + "sliceName": "LaboratorySlice", + "min": 1, + "max": "1", + "type": [ + { + "code": "CodeableConcept" + } + ], + "patternCodeableConcept": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0074", + "code": "LAB" + } + ] + }, + "mustSupport": true, + "isModifier": false + }, + { + "id": "DiagnosticReport.code", + "path": "DiagnosticReport.code", + "short": "US Core Laboratory Report Order Code", + "definition": "The test, panel or battery that was ordered.", + "comment": "UsageNote= The typical patterns for codes are: 1) a LOINC code either as a translation from a \"local\" code or as a primary code, or 2) a local code only if no suitable LOINC exists, or 3) both the local and the LOINC translation. Systems SHALL be capable of sending the local code if one exists.", + "min": 1, + "max": "1", + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "isModifier": false, + "binding": { + "strength": "extensible", + "description": "LOINC codes", + "valueSet": "http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-lab-codes" + } + }, + { + "id": "DiagnosticReport.subject", + "path": "DiagnosticReport.subject", + "min": 1, + "max": "1", + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" + ] + } + ], + "mustSupport": true, + "isModifier": false + }, + { + "id": "DiagnosticReport.effective[x]", + "path": "DiagnosticReport.effective[x]", + "short": "Specimen Collection Datetime or Period", + "definition": "This is the Specimen Collection Datetime or Period which is the physically relevent dateTime for laboratory tests.", + "min": 1, + "max": "1", + "type": [ + { + "code": "dateTime" + }, + { + "code": "Period" + } + ], + "mustSupport": true, + "isModifier": false + }, + { + "id": "DiagnosticReport.issued", + "path": "DiagnosticReport.issued", + "min": 1, + "max": "1", + "type": [ + { + "code": "instant" + } + ], + "mustSupport": true, + "isModifier": false + }, + { + "id": "DiagnosticReport.performer", + "path": "DiagnosticReport.performer", + "min": 0, + "max": "*", + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner", + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization" + ] + } + ], + "mustSupport": true, + "isModifier": false + }, + { + "id": "DiagnosticReport.result", + "path": "DiagnosticReport.result", + "min": 0, + "max": "*", + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab" + ] + } + ], + "constraint": [ + { + "key": "us-core-7", + "severity": "error", + "human": "DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.", + "expression": "result.exists() or presentedForm.exists()", + "xpath": "f:result or f:presentedForm" + } + ], + "mustSupport": true, + "isModifier": false + }, + { + "id": "DiagnosticReport.media", + "path": "DiagnosticReport.media", + "min": 0, + "max": "*", + "mustSupport": true, + "isModifier": false + }, + { + "id": "DiagnosticReport.presentedForm", + "path": "DiagnosticReport.presentedForm", + "min": 0, + "max": "*", + "type": [ + { + "code": "Attachment" + } + ], + "constraint": [ + { + "key": "us-core-7", + "severity": "error", + "human": "DiagnosticReport.result or DiagnosticReport.presentedForm or both SHALL be present.", + "expression": "result.exists() or presentedForm.exists()", + "xpath": "f:result or f:presentedForm" + } + ], + "mustSupport": true, + "isModifier": false + } + ] + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-diagnosticreport-note.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-diagnosticreport-note.json new file mode 100644 index 000000000..fafce52ad --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-diagnosticreport-note.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-diagnosticreport-note","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" DiagnosticReport 0..*US Core Diagnostic Report Profile for Report and Note exchange
    \".\"\".\"\".\" status S1..1codeBinding: DiagnosticReportStatus (required)
    \".\"\".\"\".\" category S1..*CodeableConceptBinding: US Core DiagnosticReport Category (extensible)
    \".\"\".\"\".\" code S1..1CodeableConceptUS Core Report Code
    Binding: US Core Diagnosticreport Report And Note Codes (extensible)
    \".\"\".\"\".\" subject SΣ1..1Reference(US Core Patient Profile)The subject of the report - usually, but not always, the patient
    \".\"\".\"\".\" encounter S0..1Reference(US Core Encounter Profile)
    \".\"\".\"\".\" effective[x] S1..1Time of the report or note
    \".\"\".\"\".\"\".\" effectiveDateTimedateTime
    \".\"\".\"\".\"\".\" effectivePeriodPeriod
    \".\"\".\"\".\" issued S0..1instant
    \".\"\".\"\".\" performer S0..*Reference(US Core Practitioner Profile | US Core Organization Profile)
    \".\"\".\"\".\" media S0..*BackboneElement
    \".\"\".\"\".\" presentedForm S0..*Attachment

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note","name":"USCoreDiagnosticReportProfileNoteExchange","title":"US Core DiagnosticReport Profile for Report and Note exchange","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the DiagnosticReport resource for the minimal set of data to query and retrieve diagnostic reports associated with clinical notes for a patient","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"}],"kind":"resource","abstract":false,"type":"DiagnosticReport","baseDefinition":"http://hl7.org/fhir/StructureDefinition/DiagnosticReport","derivation":"constraint","snapshot":{"element":[{"id":"DiagnosticReport","path":"DiagnosticReport","short":"US Core Diagnostic Report Profile for Report and Note exchange","definition":"The US Core Diagnostic Report Profile for Report and Note exchange is based upon the requirements of the Argonauts to exchang imaginge reports.","comment":"This is intended to capture a single report and is not suitable for use in displaying summary information that covers multiple reports. For example, this resource has not been designed for laboratory cumulative reporting formats nor detailed structured reports for sequencing.","alias":["Report","Test","Result","Results","Labs","Laboratory","Imaging Report","Radiology Report"],"min":0,"max":"*","base":{"path":"DiagnosticReport","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"v2","map":"ORU -> OBR"},{"identity":"rim","map":"Observation[classCode=OBS, moodCode=EVN]"}]},{"id":"DiagnosticReport.id","path":"DiagnosticReport.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"DiagnosticReport.meta","path":"DiagnosticReport.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"DiagnosticReport.implicitRules","path":"DiagnosticReport.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"DiagnosticReport.language","path":"DiagnosticReport.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"DiagnosticReport.text","path":"DiagnosticReport.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"DiagnosticReport.contained","path":"DiagnosticReport.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DiagnosticReport.extension","path":"DiagnosticReport.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DiagnosticReport.modifierExtension","path":"DiagnosticReport.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DiagnosticReport.identifier","path":"DiagnosticReport.identifier","short":"Business identifier for report","definition":"Identifiers assigned to this report by the performer or other systems.","comment":"Usually assigned by the Information System of the diagnostic service provider (filler id).","requirements":"Need to know what identifier to use when making queries about this report from the source laboratory, and for linking to the report outside FHIR context.","alias":["ReportID","Filler ID","Placer ID"],"min":0,"max":"*","base":{"path":"DiagnosticReport.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"OBR-51/ for globally unique filler ID - OBR-3 , For non-globally unique filler-id the flller/placer number must be combined with the universal service Id - OBR-2(if present)+OBR-3+OBR-4"},{"identity":"rim","map":"id"}]},{"id":"DiagnosticReport.basedOn","path":"DiagnosticReport.basedOn","short":"What was requested","definition":"Details concerning a service requested.","comment":"Note: Usually there is one test request for each result, however in some circumstances multiple test requests may be represented using a single test result resource. Note that there are also cases where one request leads to multiple reports.","requirements":"This allows tracing of authorization for the report and tracking whether proposals/recommendations were acted upon.","alias":["Request"],"min":0,"max":"*","base":{"path":"DiagnosticReport.basedOn","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan","http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation","http://hl7.org/fhir/StructureDefinition/MedicationRequest","http://hl7.org/fhir/StructureDefinition/NutritionOrder","http://hl7.org/fhir/StructureDefinition/ServiceRequest"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.basedOn"},{"identity":"v2","map":"ORC? OBR-2/3?"},{"identity":"rim","map":"outboundRelationship[typeCode=FLFS].target"}]},{"id":"DiagnosticReport.status","path":"DiagnosticReport.status","short":"registered | partial | preliminary | final +","definition":"The status of the diagnostic report.","requirements":"Diagnostic services routinely issue provisional/incomplete reports, and sometimes withdraw previously released reports.","min":1,"max":"1","base":{"path":"DiagnosticReport.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/diagnostic-report-status"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"v2","map":"OBR-25 (not 1:1 mapping)"},{"identity":"rim","map":"statusCode Note: final and amended are distinguished by whether observation is the subject of a ControlAct event of type \"revise\""}]},{"id":"DiagnosticReport.category","path":"DiagnosticReport.category","short":"Service category","definition":"A code that classifies the clinical discipline, department or diagnostic service that created the report (e.g. cardiology, biochemistry, hematology, MRI). This is used for searching, sorting and display purposes.","comment":"Multiple categories are allowed using various categorization schemes. The level of granularity is defined by the category concepts in the value set. More fine-grained filtering can be performed using the metadata and/or terminology hierarchy in DiagnosticReport.code.","alias":["Department","Sub-department","Service","Discipline","service","discipline"],"min":1,"max":"*","base":{"path":"DiagnosticReport.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"v2","map":"OBR-24"},{"identity":"rim","map":"inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code"}]},{"id":"DiagnosticReport.code","path":"DiagnosticReport.code","short":"US Core Report Code","definition":"The test, panel, report, or note that was ordered.","comment":"UsageNote= The typical patterns for codes are: 1) a LOINC code either as a translation from a \"local\" code or as a primary code, or 2) a local code only if no suitable LOINC exists, or 3) both the local and the LOINC translation. Systems SHALL be capable of sending the local code if one exists.","alias":["Type"],"min":1,"max":"1","base":{"path":"DiagnosticReport.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"LOINC codes","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-report-and-note-codes"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"v2","map":"OBR-4 (HL7 v2 doesn't provide an easy way to indicate both the ordered test and the performed panel)"},{"identity":"rim","map":"code"}]},{"id":"DiagnosticReport.subject","path":"DiagnosticReport.subject","short":"The subject of the report - usually, but not always, the patient","definition":"The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.","requirements":"SHALL know the subject context.","alias":["Patient"],"min":1,"max":"1","base":{"path":"DiagnosticReport.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3 (no HL7 v2 mapping for Group or Device)"},{"identity":"rim","map":"participation[typeCode=SBJ]"},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"DiagnosticReport.encounter","path":"DiagnosticReport.encounter","short":"Health care event when test ordered","definition":"The healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport is about.","comment":"This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).","requirements":"Links the request to the Encounter context.","alias":["Context"],"min":0,"max":"1","base":{"path":"DiagnosticReport.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.encounter"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1-19"},{"identity":"rim","map":"inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]"}]},{"id":"DiagnosticReport.effective[x]","path":"DiagnosticReport.effective[x]","short":"Time of the report or note","definition":"This is the Datetime or Period when the report or note was written.","comment":"If the diagnostic procedure was performed on the patient, this is the time it was performed. If there are specimens, the diagnostically relevant time can be derived from the specimen collection times, but the specimen information is not always available, and the exact relationship between the specimens and the diagnostically relevant time is not always automatic.","requirements":"Need to know where in the patient history to file/present this report.","alias":["Observation time","Effective Time","Occurrence"],"min":1,"max":"1","base":{"path":"DiagnosticReport.effective[x]","min":0,"max":"1"},"type":[{"code":"dateTime"},{"code":"Period"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"OBR-7"},{"identity":"rim","map":"effectiveTime"}]},{"id":"DiagnosticReport.issued","path":"DiagnosticReport.issued","short":"DateTime this version was made","definition":"The date and time that this version of the report was made available to providers, typically after the report was reviewed and verified.","comment":"May be different from the update time of the resource itself, because that is the status of the record (potentially a secondary copy), not the actual release time of the report.","requirements":"Clinicians need to be able to check the date that the report was released.","alias":["Date published","Date Issued","Date Verified"],"min":0,"max":"1","base":{"path":"DiagnosticReport.issued","min":0,"max":"1"},"type":[{"code":"instant"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.recorded"},{"identity":"v2","map":"OBR-22"},{"identity":"rim","map":"participation[typeCode=VRF or AUT].time"}]},{"id":"DiagnosticReport.performer","path":"DiagnosticReport.performer","short":"Responsible Diagnostic Service","definition":"The diagnostic service that is responsible for issuing the report.","comment":"This is not necessarily the source of the atomic data items or the entity that interpreted the results. It is the entity that takes responsibility for the clinical report.","requirements":"Need to know whom to contact if there are queries about the results. Also may need to track the source of reports for secondary data analysis.","alias":["Laboratory","Service","Practitioner","Department","Company","Authorized by","Director"],"min":0,"max":"*","base":{"path":"DiagnosticReport.performer","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"PRT-8 (where this PRT-4-Participation = \"PO\")"},{"identity":"rim","map":".participation[typeCode=PRF]"}]},{"id":"DiagnosticReport.resultsInterpreter","path":"DiagnosticReport.resultsInterpreter","short":"Primary result interpreter","definition":"The practitioner or organization that is responsible for the report's conclusions and interpretations.","comment":"Might not be the same entity that takes responsibility for the clinical report.","requirements":"Need to know whom to contact if there are queries about the results. Also may need to track the source of reports for secondary data analysis.","alias":["Analyzed by","Reported by"],"min":0,"max":"*","base":{"path":"DiagnosticReport.resultsInterpreter","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/CareTeam"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"OBR-32, PRT-8 (where this PRT-4-Participation = \"PI\")"},{"identity":"rim","map":".participation[typeCode=PRF]"}]},{"id":"DiagnosticReport.specimen","path":"DiagnosticReport.specimen","short":"Specimens this report is based on","definition":"Details about the specimens on which this diagnostic report is based.","comment":"If the specimen is sufficiently specified with a code in the test result name, then this additional data may be redundant. If there are multiple specimens, these may be represented per observation or group.","requirements":"Need to be able to report information about the collected specimens on which the report is based.","min":0,"max":"*","base":{"path":"DiagnosticReport.specimen","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Specimen"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"SPM"},{"identity":"rim","map":"participation[typeCode=SBJ]"}]},{"id":"DiagnosticReport.result","path":"DiagnosticReport.result","short":"Observations","definition":"[Observations](http://hl7.org/fhir/R4/observation.html) that are part of this diagnostic report.","comment":"Observations can contain observations.","requirements":"Need to support individual results, or groups of results, where the result grouping is arbitrary, but meaningful.","alias":["Data","Atomic Value","Result","Atomic result","Data","Test","Analyte","Battery","Organizer"],"min":0,"max":"*","base":{"path":"DiagnosticReport.result","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Observation"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBXs"},{"identity":"rim","map":"outboundRelationship[typeCode=COMP].target"}]},{"id":"DiagnosticReport.imagingStudy","path":"DiagnosticReport.imagingStudy","short":"Reference to full details of imaging associated with the diagnostic report","definition":"One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.","comment":"ImagingStudy and the image element are somewhat overlapping - typically, the list of image references in the image element will also be found in one of the imaging study resources. However, each caters to different types of displays for different types of purposes. Neither, either, or both may be provided.","min":0,"max":"*","base":{"path":"DiagnosticReport.imagingStudy","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/ImagingStudy"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"outboundRelationship[typeCode=COMP].target[classsCode=DGIMG, moodCode=EVN]"}]},{"id":"DiagnosticReport.media","path":"DiagnosticReport.media","short":"Key images associated with this report","definition":"A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).","requirements":"Many diagnostic services include images in the report as part of their service.","alias":["DICOM","Slides","Scans"],"min":0,"max":"*","base":{"path":"DiagnosticReport.media","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"OBX?"},{"identity":"rim","map":"outboundRelationship[typeCode=COMP].target"}]},{"id":"DiagnosticReport.media.id","path":"DiagnosticReport.media.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DiagnosticReport.media.extension","path":"DiagnosticReport.media.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DiagnosticReport.media.modifierExtension","path":"DiagnosticReport.media.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DiagnosticReport.media.comment","path":"DiagnosticReport.media.comment","short":"Comment about the image (e.g. explanation)","definition":"A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.","comment":"The comment should be displayed with the image. It would be common for the report to include additional discussion of the image contents in other sections such as the conclusion.","requirements":"The provider of the report should make a comment about each image included in the report.","min":0,"max":"1","base":{"path":"DiagnosticReport.media.comment","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code=\"annotation\"].value"}]},{"id":"DiagnosticReport.media.link","path":"DiagnosticReport.media.link","short":"Reference to the image source","definition":"Reference to the image source.","min":1,"max":"1","base":{"path":"DiagnosticReport.media.link","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Media"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".value.reference"}]},{"id":"DiagnosticReport.conclusion","path":"DiagnosticReport.conclusion","short":"Clinical conclusion (interpretation) of test results","definition":"Concise and clinically contextualized summary conclusion (interpretation/impression) of the diagnostic report.","requirements":"Need to be able to provide a conclusion that is not lost among the basic result data.","alias":["Report"],"min":0,"max":"1","base":{"path":"DiagnosticReport.conclusion","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX"},{"identity":"rim","map":"inboundRelationship[typeCode=\"SPRT\"].source[classCode=OBS, moodCode=EVN, code=LOINC:48767-8].value (type=ST)"}]},{"id":"DiagnosticReport.conclusionCode","path":"DiagnosticReport.conclusionCode","short":"Codes for the clinical conclusion of test results","definition":"One or more codes that represent the summary conclusion (interpretation/impression) of the diagnostic report.","min":0,"max":"*","base":{"path":"DiagnosticReport.conclusionCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AdjunctDiagnosis"}],"strength":"example","description":"Diagnosis codes provided as adjuncts to the report.","valueSet":"http://hl7.org/fhir/ValueSet/clinical-findings"},"mapping":[{"identity":"v2","map":"OBX"},{"identity":"rim","map":"inboundRelationship[typeCode=SPRT].source[classCode=OBS, moodCode=EVN, code=LOINC:54531-9].value (type=CD)"}]},{"id":"DiagnosticReport.presentedForm","path":"DiagnosticReport.presentedForm","short":"Entire report as issued","definition":"Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.","comment":"\"application/pdf\" is recommended as the most reliable and interoperable in this context.","requirements":"Gives laboratory the ability to provide its own fully formatted report for clinical fidelity.","min":0,"max":"*","base":{"path":"DiagnosticReport.presentedForm","min":0,"max":"*"},"type":[{"code":"Attachment"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX"},{"identity":"rim","map":"text (type=ED)"}]}]},"differential":{"element":[{"id":"DiagnosticReport","path":"DiagnosticReport","short":"US Core Diagnostic Report Profile for Report and Note exchange","definition":"The US Core Diagnostic Report Profile for Report and Note exchange is based upon the requirements of the Argonauts to exchang imaginge reports.","alias":["Imaging Report","Radiology Report"],"mustSupport":false,"isModifier":false},{"id":"DiagnosticReport.status","path":"DiagnosticReport.status","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true,"isModifier":false,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/diagnostic-report-status"}},{"id":"DiagnosticReport.category","path":"DiagnosticReport.category","alias":["Department","Sub-department","service","discipline"],"min":1,"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-category"}},{"id":"DiagnosticReport.code","path":"DiagnosticReport.code","short":"US Core Report Code","definition":"The test, panel, report, or note that was ordered.","comment":"UsageNote= The typical patterns for codes are: 1) a LOINC code either as a translation from a \"local\" code or as a primary code, or 2) a local code only if no suitable LOINC exists, or 3) both the local and the LOINC translation. Systems SHALL be capable of sending the local code if one exists.","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"binding":{"strength":"extensible","description":"LOINC codes","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-report-and-note-codes"}},{"id":"DiagnosticReport.subject","path":"DiagnosticReport.subject","short":"The subject of the report - usually, but not always, the patient","definition":"The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.","requirements":"SHALL know the subject context.","alias":["Patient"],"min":1,"max":"1","base":{"path":"DiagnosticReport.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true},{"id":"DiagnosticReport.encounter","path":"DiagnosticReport.encounter","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"]}],"mustSupport":true,"isModifier":false},{"id":"DiagnosticReport.effective[x]","path":"DiagnosticReport.effective[x]","short":"Time of the report or note","definition":"This is the Datetime or Period when the report or note was written.","min":1,"max":"1","type":[{"code":"dateTime"},{"code":"Period"}],"mustSupport":true,"isModifier":false},{"id":"DiagnosticReport.issued","path":"DiagnosticReport.issued","min":0,"max":"1","type":[{"code":"instant"}],"mustSupport":true,"isModifier":false},{"id":"DiagnosticReport.performer","path":"DiagnosticReport.performer","min":0,"max":"*","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true,"isModifier":false},{"id":"DiagnosticReport.media","path":"DiagnosticReport.media","min":0,"max":"*","mustSupport":true,"isModifier":false},{"id":"DiagnosticReport.presentedForm","path":"DiagnosticReport.presentedForm","min":0,"max":"*","type":[{"code":"Attachment"}],"mustSupport":true,"isModifier":false}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-direct.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-direct.json new file mode 100644 index 000000000..92516193e --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-direct.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-direct","text":{"status":"generated","div":"
    \r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Extension 0..1Email is a "direct" email
    \".\"\".\"\".\" url "http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct"
    \".\"\".\"\".\" valueBoolean 0..1boolean

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct","version":"3.0.1","name":"USCoreDirectEmailExtension","title":"US Core Direct email Extension","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"This email address is associated with a [direct](http://wiki.directproject.org/Addressing+Specification) service. This extension can only be used on contact points where the system = 'email'","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"}],"kind":"complex-type","abstract":false,"context":[{"type":"element","expression":"ContactPoint"}],"type":"Extension","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Extension","derivation":"constraint","snapshot":{"element":[{"id":"Extension:direct","path":"Extension","short":"Email is a \"direct\" email","definition":"This email address is associated with a [direct](http://wiki.directproject.org/Addressing+Specification) service.","comment":"This extension can only be used on contact points where the system = 'email'.","min":0,"max":"1","base":{"path":"Extension","min":0,"max":"*"},"condition":["ele-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"children().count() > id.count()","xpath":"@value|f:*|h:div","source":"Element"},{"key":"ext-1","severity":"error","human":"Must have either extensions or value[x], not both","expression":"extension.exists() != value.exists()","xpath":"exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])","source":"Extension"}],"isModifier":false,"mapping":[{"identity":"v2","map":"No v2 equivalent"},{"identity":"rim","map":"No RIM equivalent"}]},{"id":"Extension:direct.id","path":"Extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:direct.extension","path":"Extension.extension","short":"Additional Content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:direct.url","path":"Extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:direct.valueBoolean","path":"Extension.valueBoolean","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":0,"max":"1","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"boolean"}],"mapping":[{"identity":"rim","map":"N/A"}]}]},"differential":{"element":[{"id":"Extension:direct","path":"Extension","short":"Email is a \"direct\" email","definition":"This email address is associated with a \"direct\" service - e.g. http://wiki.directproject.org/Addressing+Specification. This extension can only be used on contact points where the system = 'email'","comment":"This extension can only be used on contact points where the system = 'email'.","min":0,"max":"1","isModifier":false,"mapping":[{"identity":"v2","map":"No v2 equivalent"},{"identity":"rim","map":"No RIM equivalent"}]},{"id":"Extension:direct.url","path":"Extension.url","fixedUri":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct"},{"id":"Extension:direct.valueBoolean","path":"Extension.valueBoolean","min":0,"max":"1","type":[{"code":"boolean"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-documentreference.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-documentreference.json new file mode 100644 index 000000000..013bdb283 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-documentreference.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-documentreference","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" DocumentReference 0..*
    \".\"\".\"\".\" identifier S0..*Identifier
    \".\"\".\"\".\" status S1..1codeBinding: DocumentReferenceStatus (required)
    \".\"\".\"\".\" type S1..1CodeableConceptBinding: US Core DocumentReference Type (required)
    Min Binding: US Core Clinical Note Type
    \".\"\".\"\".\" category S1..*CodeableConceptBinding: US Core DocumentReference Category (extensible)
    \".\"\".\"\".\" subject S1..1Reference(US Core Patient Profile)
    \".\"\".\"\".\" date S0..1instant
    \".\"\".\"\".\" author S0..*Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | Device | US Core Patient Profile | RelatedPerson)
    \".\"\".\"\".\" custodian S0..1Reference(US Core Organization Profile)
    \".\"\".\"\".\" content S1..1BackboneElement
    \".\"\".\"\".\"\".\" attachment SI1..1Attachmentus-core-6: DocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.
    \".\"\".\"\".\"\".\"\".\" contentType S1..1code
    \".\"\".\"\".\"\".\"\".\" data SI0..1base64Binary
    \".\"\".\"\".\"\".\"\".\" url SI0..1url
    \".\"\".\"\".\"\".\" format S0..1CodingBinding: DocumentReferenceFormatCodeSet (extensible)
    \".\"\".\"\".\" context S0..1BackboneElement
    \".\"\".\"\".\"\".\" encounter S0..1Reference(US Core Encounter Profile)
    \".\"\".\"\".\"\".\" period S0..1Period

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference","name":"USCoreDocumentReferenceProfile","title":"US Core DocumentReference Profile","status":"active","experimental":false,"date":"2019-08-11T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"The document reference profile used in US Core.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"fhircomposition","uri":"http://hl7.org/fhir/composition","name":"FHIR Composition"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"cda","uri":"http://hl7.org/v3/cda","name":"CDA (R2)"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"xds","uri":"http://ihe.net/xds","name":"XDS metadata equivalent"}],"kind":"resource","abstract":false,"type":"DocumentReference","baseDefinition":"http://hl7.org/fhir/StructureDefinition/DocumentReference","derivation":"constraint","snapshot":{"element":[{"id":"DocumentReference","path":"DocumentReference","short":"A reference to a document","definition":"This is a basic constraint on DocumentRefernce for use in the US Core IG.","comment":"Usually, this is used for documents other than those defined by FHIR.","min":0,"max":"*","base":{"path":"DocumentReference","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"fhircomposition","map":"when describing a Composition"},{"identity":"rim","map":"Document[classCode=\"DOC\" and moodCode=\"EVN\"]"},{"identity":"cda","map":"when describing a CDA"}]},{"id":"DocumentReference.id","path":"DocumentReference.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"DocumentReference.meta","path":"DocumentReference.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"DocumentReference.implicitRules","path":"DocumentReference.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"DocumentReference.language","path":"DocumentReference.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"DocumentReference.text","path":"DocumentReference.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"DocumentReference.contained","path":"DocumentReference.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DocumentReference.extension","path":"DocumentReference.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DocumentReference.modifierExtension","path":"DocumentReference.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DocumentReference.masterIdentifier","path":"DocumentReference.masterIdentifier","short":"Master Version Specific Identifier","definition":"Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document.","comment":"CDA Document Id extension and root.","requirements":"The structure and format of this Id shall be consistent with the specification corresponding to the formatCode attribute. (e.g. for a DICOM standard document a 64-character numeric UID, for an HL7 CDA format a serialization of the CDA Document Id extension and root in the form \"oid^extension\", where OID is a 64 digits max, and the Id is a 16 UTF-8 char max. If the OID is coded without the extension then the '^' character shall not be included.).","min":0,"max":"1","base":{"path":"DocumentReference.masterIdentifier","min":0,"max":"1"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"fhircomposition","map":"Composition.identifier"},{"identity":"v2","map":"TXA-12"},{"identity":"rim","map":".id"},{"identity":"xds","map":"DocumentEntry.uniqueId"},{"identity":"cda","map":"ClinicalDocument/id"}]},{"id":"DocumentReference.identifier","path":"DocumentReference.identifier","short":"Other identifiers for the document","definition":"Other identifiers associated with the document, including version independent identifiers.","min":0,"max":"*","base":{"path":"DocumentReference.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"TXA-16?"},{"identity":"rim","map":".id / .setId"},{"identity":"xds","map":"DocumentEntry.entryUUID"}]},{"id":"DocumentReference.status","path":"DocumentReference.status","short":"current | superseded | entered-in-error","definition":"The status of this document reference.","comment":"This is the status of the DocumentReference object, which might be independent from the docStatus element.\n\nThis element is labeled as a modifier because the status contains the codes that mark the document or reference as not currently valid.","min":1,"max":"1","base":{"path":"DocumentReference.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/document-reference-status"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"v2","map":"TXA-19"},{"identity":"rim","map":"interim: .completionCode=\"IN\" & ./statusCode[isNormalDatatype()]=\"active\"; final: .completionCode=\"AU\" && ./statusCode[isNormalDatatype()]=\"complete\" and not(./inboundRelationship[typeCode=\"SUBJ\" and isNormalActRelationship()]/source[subsumesCode(\"ActClass#CACT\") and moodCode=\"EVN\" and domainMember(\"ReviseDocument\", code) and isNormalAct()]); amended: .completionCode=\"AU\" && ./statusCode[isNormalDatatype()]=\"complete\" and ./inboundRelationship[typeCode=\"SUBJ\" and isNormalActRelationship()]/source[subsumesCode(\"ActClass#CACT\") and moodCode=\"EVN\" and domainMember(\"ReviseDocument\", code) and isNormalAct() and statusCode=\"completed\"]; withdrawn : .completionCode=NI && ./statusCode[isNormalDatatype()]=\"obsolete\""},{"identity":"xds","map":"DocumentEntry.availabilityStatus"}]},{"id":"DocumentReference.docStatus","path":"DocumentReference.docStatus","short":"preliminary | final | appended | amended | entered-in-error","definition":"The status of the underlying document.","comment":"The document that is pointed to might be in various lifecycle states.","min":0,"max":"1","base":{"path":"DocumentReference.docStatus","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ReferredDocumentStatus"}],"strength":"required","description":"Status of the underlying document.","valueSet":"http://hl7.org/fhir/ValueSet/composition-status|4.0.0"},"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"fhircomposition","map":"Composition.status"},{"identity":"v2","map":"TXA-17"},{"identity":"rim","map":".statusCode"}]},{"id":"DocumentReference.type","path":"DocumentReference.type","short":"Kind of document (LOINC if possible)","definition":"Specifies the particular kind of document referenced (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the document referenced.","comment":"Key metadata element describing the document that describes he exact type of document. Helps humans to assess whether the document is of interest when viewing a list of documents.","min":1,"max":"1","base":{"path":"DocumentReference.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-minValueSet","valueCanonical":"http://hl7.org/fhir/us/core/ValueSet/us-core-clinical-note-type"}],"strength":"required","description":"All LOINC values whose SCALE is DOC in the LOINC database and the HL7 v3 Code System NullFlavor concept 'unknown'","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-documentreference-type"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.class"},{"identity":"fhircomposition","map":"Composition.type"},{"identity":"v2","map":"TXA-2"},{"identity":"rim","map":"./code"},{"identity":"xds","map":"DocumentEntry.type"},{"identity":"cda","map":"ClinicalDocument/code/@code \n\nThe typeCode should be mapped from the ClinicalDocument/code element to a set of document type codes configured in the affinity domain. One suggested coding system to use for typeCode is LOINC, in which case the mapping step can be omitted."}]},{"id":"DocumentReference.category","path":"DocumentReference.category","short":"Categorization of document","definition":"A categorization for the type of document referenced - helps for indexing and searching. This may be implied by or derived from the code specified in the DocumentReference.type.","comment":"Key metadata element describing the the category or classification of the document. This is a broader perspective that groups similar documents based on how they would be used. This is a primary key used in searching.","alias":["claxs"],"min":1,"max":"*","base":{"path":"DocumentReference.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"The US Core DocumentReferences Type Value Set is a 'starter set' of categories supported for fetching and storing clinical notes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-documentreference-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"fhircomposition","map":"Composition.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"},{"identity":"xds","map":"DocumentEntry.class"},{"identity":"cda","map":"Derived from a mapping of /ClinicalDocument/code/@code to an Affinity Domain specified coded value to use and coding system. Affinity Domains are encouraged to use the appropriate value for Type of Service, based on the LOINC Type of Service (see Page 53 of the LOINC User's Manual). Must be consistent with /ClinicalDocument/code/@code"}]},{"id":"DocumentReference.subject","path":"DocumentReference.subject","short":"Who/what is the subject of the document","definition":"Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).","min":1,"max":"1","base":{"path":"DocumentReference.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"fhircomposition","map":"Composition.subject"},{"identity":"v2","map":"PID-3 (No standard way to define a Practitioner or Group subject in HL7 v2 MDM message)"},{"identity":"rim","map":".participation[typeCode=\"SBJ\"].role[typeCode=\"PAT\"]"},{"identity":"xds","map":"DocumentEntry.patientId"},{"identity":"cda","map":"ClinicalDocument/recordTarget/"},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"DocumentReference.date","path":"DocumentReference.date","short":"When this document reference was created","definition":"When the document reference was created.","comment":"Referencing/indexing time is used for tracking, organizing versions and searching.","alias":["indexed"],"min":0,"max":"1","base":{"path":"DocumentReference.date","min":0,"max":"1"},"type":[{"code":"instant"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.recorded"},{"identity":"fhircomposition","map":"Composition.date"},{"identity":"rim","map":".availabilityTime[type=\"TS\"]"}]},{"id":"DocumentReference.author","path":"DocumentReference.author","short":"Who and/or what authored the document","definition":"Identifies who is responsible for adding the information to the document.","comment":"Not necessarily who did the actual data entry (i.e. typist) or who was the source (informant).","min":0,"max":"*","base":{"path":"DocumentReference.author","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"fhircomposition","map":"Composition.author"},{"identity":"v2","map":"TXA-9 (No standard way to indicate a Device in HL7 v2 MDM message)"},{"identity":"rim","map":".participation[typeCode=\"AUT\"].role[classCode=\"ASSIGNED\"]"},{"identity":"xds","map":"DocumentEntry.author"},{"identity":"cda","map":"ClinicalDocument/author"}]},{"id":"DocumentReference.authenticator","path":"DocumentReference.authenticator","short":"Who/what authenticated the document","definition":"Which person or organization authenticates that this document is valid.","comment":"Represents a participant within the author institution who has legally authenticated or attested the document. Legal authentication implies that a document has been signed manually or electronically by the legal Authenticator.","min":0,"max":"1","base":{"path":"DocumentReference.authenticator","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.witness"},{"identity":"fhircomposition","map":"Composition.attester"},{"identity":"v2","map":"TXA-10"},{"identity":"rim","map":".participation[typeCode=\"AUTHEN\"].role[classCode=\"ASSIGNED\"]"},{"identity":"xds","map":"DocumentEntry.legalAuthenticator"},{"identity":"cda","map":"ClinicalDocument/legalAuthenticator"}]},{"id":"DocumentReference.custodian","path":"DocumentReference.custodian","short":"Organization which maintains the document","definition":"Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.","comment":"Identifies the logical organization (software system, vendor, or department) to go to find the current version, where to report issues, etc. This is different from the physical location (URL, disk drive, or server) of the document, which is the technical location of the document, which host may be delegated to the management of some other organization.","min":0,"max":"1","base":{"path":"DocumentReference.custodian","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"fhircomposition","map":"Composition.custodian"},{"identity":"rim","map":".participation[typeCode=\"RCV\"].role[classCode=\"CUST\"].scoper[classCode=\"ORG\" and determinerCode=\"INST\"]"}]},{"id":"DocumentReference.relatesTo","path":"DocumentReference.relatesTo","short":"Relationships to other documents","definition":"Relationships that this document has with other document references that already exist.","comment":"This element is labeled as a modifier because documents that append to other documents are incomplete on their own.","min":0,"max":"*","base":{"path":"DocumentReference.relatesTo","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"fhircomposition","map":"Composition.relatesTo"},{"identity":"rim","map":".outboundRelationship"},{"identity":"xds","map":"DocumentEntry Associations"}]},{"id":"DocumentReference.relatesTo.id","path":"DocumentReference.relatesTo.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DocumentReference.relatesTo.extension","path":"DocumentReference.relatesTo.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DocumentReference.relatesTo.modifierExtension","path":"DocumentReference.relatesTo.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DocumentReference.relatesTo.code","path":"DocumentReference.relatesTo.code","short":"replaces | transforms | signs | appends","definition":"The type of relationship that this document has with anther document.","comment":"If this document appends another document, then the document cannot be fully understood without also accessing the referenced document.","min":1,"max":"1","base":{"path":"DocumentReference.relatesTo.code","min":1,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DocumentRelationshipType"}],"strength":"required","description":"The type of relationship between documents.","valueSet":"http://hl7.org/fhir/ValueSet/document-relationship-type|4.0.0"},"mapping":[{"identity":"fhircomposition","map":"Composition.relatesTo.code"},{"identity":"rim","map":".outboundRelationship.typeCode"},{"identity":"xds","map":"DocumentEntry Associations type"}]},{"id":"DocumentReference.relatesTo.target","path":"DocumentReference.relatesTo.target","short":"Target of the relationship","definition":"The target document of this relationship.","min":1,"max":"1","base":{"path":"DocumentReference.relatesTo.target","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/DocumentReference"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"fhircomposition","map":"Composition.relatesTo.target"},{"identity":"rim","map":".target[classCode=\"DOC\", moodCode=\"EVN\"].id"},{"identity":"xds","map":"DocumentEntry Associations reference"}]},{"id":"DocumentReference.description","path":"DocumentReference.description","short":"Human-readable description","definition":"Human-readable description of the source document.","comment":"What the document is about, a terse summary of the document.","requirements":"Helps humans to assess whether the document is of interest.","min":0,"max":"1","base":{"path":"DocumentReference.description","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"TXA-25"},{"identity":"rim","map":".outboundRelationship[typeCode=\"SUBJ\"].target.text"},{"identity":"xds","map":"DocumentEntry.comments"}]},{"id":"DocumentReference.securityLabel","path":"DocumentReference.securityLabel","short":"Document security-tags","definition":"A set of Security-Tag codes specifying the level of privacy/security of the Document. Note that DocumentReference.meta.security contains the security labels of the \"reference\" to the document, while DocumentReference.securityLabel contains a snapshot of the security labels on the document the reference refers to.","comment":"The confidentiality codes can carry multiple vocabulary items. HL7 has developed an understanding of security and privacy tags that might be desirable in a Document Sharing environment, called HL7 Healthcare Privacy and Security Classification System (HCS). The following specification is recommended but not mandated, as the vocabulary bindings are an administrative domain responsibility. The use of this method is up to the policy domain such as the XDS Affinity Domain or other Trust Domain where all parties including sender and recipients are trusted to appropriately tag and enforce. \n\nIn the HL7 Healthcare Privacy and Security Classification (HCS) there are code systems specific to Confidentiality, Sensitivity, Integrity, and Handling Caveats. Some values would come from a local vocabulary as they are related to workflow roles and special projects.","requirements":"Use of the Health Care Privacy/Security Classification (HCS) system of security-tag use is recommended.","min":0,"max":"*","base":{"path":"DocumentReference.securityLabel","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"SecurityLabels"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"extensible","description":"Security Labels from the Healthcare Privacy and Security Classification System.","valueSet":"http://hl7.org/fhir/ValueSet/security-labels"},"mapping":[{"identity":"fhircomposition","map":"Composition.confidentiality, Composition.meta.security"},{"identity":"v2","map":"TXA-18"},{"identity":"rim","map":".confidentialityCode"},{"identity":"xds","map":"DocumentEntry.confidentialityCode"},{"identity":"cda","map":"ClinicalDocument/confidentialityCode/@code"}]},{"id":"DocumentReference.content","path":"DocumentReference.content","short":"Document referenced","definition":"The document and format referenced. There may be multiple content element repetitions, each with a different format.","min":1,"max":"1","base":{"path":"DocumentReference.content","min":1,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"fhircomposition","map":"Bundle(Composition+*)"},{"identity":"rim","map":"document.text"}]},{"id":"DocumentReference.content.id","path":"DocumentReference.content.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DocumentReference.content.extension","path":"DocumentReference.content.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DocumentReference.content.modifierExtension","path":"DocumentReference.content.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DocumentReference.content.attachment","path":"DocumentReference.content.attachment","short":"Where to access the document","definition":"The document or URL of the document along with critical metadata to prove content has integrity.","min":1,"max":"1","base":{"path":"DocumentReference.content.attachment","min":1,"max":"1"},"type":[{"code":"Attachment"}],"constraint":[{"key":"us-core-6","severity":"error","human":"DocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.","expression":"url.exists() or data.exists()","xpath":"f:url or f:content"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"fhircomposition","map":"Composition.language, \nComposition.title, \nComposition.date"},{"identity":"v2","map":"TXA-3 for mime type"},{"identity":"rim","map":"document.text"},{"identity":"xds","map":"DocumentEntry.mimeType, DocumentEntry.languageCode, DocumentEntry.URI, DocumentEntry.size, DocumentEntry.hash, DocumentEntry.title, DocumentEntry.creationTime"},{"identity":"cda","map":"ClinicalDocument/languageCode, ClinicalDocument/title, ClinicalDocument/date"}]},{"id":"DocumentReference.content.attachment.id","path":"DocumentReference.content.attachment.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DocumentReference.content.attachment.extension","path":"DocumentReference.content.attachment.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DocumentReference.content.attachment.contentType","path":"DocumentReference.content.attachment.contentType","short":"Mime type of the content, with charset etc.","definition":"Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.","requirements":"Processors of the data need to be able to know how to interpret the data.","min":1,"max":"1","base":{"path":"Attachment.contentType","min":0,"max":"1"},"type":[{"code":"code"}],"example":[{"label":"General","valueCode":"text/plain; charset=UTF-8, image/png"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MimeType"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"required","description":"The mime type of an attachment. Any valid mime type is allowed.","valueSet":"http://hl7.org/fhir/ValueSet/mimetypes|4.0.0"},"mapping":[{"identity":"v2","map":"ED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used"},{"identity":"rim","map":"./mediaType, ./charset"}]},{"id":"DocumentReference.content.attachment.language","path":"DocumentReference.content.attachment.language","short":"Human language of the content (BCP-47)","definition":"The human language of the content. The value can be any valid value according to BCP 47.","requirements":"Users need to be able to choose between the languages in a set of attachments.","min":0,"max":"1","base":{"path":"Attachment.language","min":0,"max":"1"},"type":[{"code":"code"}],"example":[{"label":"General","valueCode":"en-AU"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"},"mapping":[{"identity":"rim","map":"./language"}]},{"id":"DocumentReference.content.attachment.data","path":"DocumentReference.content.attachment.data","short":"Data inline, base64ed","definition":"The actual data of the attachment - a sequence of bytes, base64 encoded.","comment":"The base64-encoded data SHALL be expressed in the same character set as the base resource XML or JSON.","requirements":"The data needs to able to be transmitted inline.","min":0,"max":"1","base":{"path":"Attachment.data","min":0,"max":"1"},"type":[{"code":"base64Binary"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"ED.5"},{"identity":"rim","map":"./data"}]},{"id":"DocumentReference.content.attachment.url","path":"DocumentReference.content.attachment.url","short":"Uri where the data can be found","definition":"A location where the data can be accessed.","comment":"If both data and url are provided, the url SHALL point to the same content as the data contains. Urls may be relative references or may reference transient locations such as a wrapping envelope using cid: though this has ramifications for using signatures. Relative URLs are interpreted relative to the service url, like a resource reference, rather than relative to the resource itself. If a URL is provided, it SHALL resolve to actual data.","requirements":"The data needs to be transmitted by reference.","min":0,"max":"1","base":{"path":"Attachment.url","min":0,"max":"1"},"type":[{"code":"url"}],"example":[{"label":"General","valueUrl":"http://www.acme.com/logo-small.png"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"RP.1+RP.2 - if they refer to a URL (see v2.6)"},{"identity":"rim","map":"./reference/literal"}]},{"id":"DocumentReference.content.attachment.size","path":"DocumentReference.content.attachment.size","short":"Number of bytes of content (if url provided)","definition":"The number of bytes of data that make up this attachment (before base64 encoding, if that is done).","comment":"The number of bytes is redundant if the data is provided as a base64binary, but is useful if the data is provided as a url reference.","requirements":"Representing the size allows applications to determine whether they should fetch the content automatically in advance, or refuse to fetch it at all.","min":0,"max":"1","base":{"path":"Attachment.size","min":0,"max":"1"},"type":[{"code":"unsignedInt"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"N/A (needs data type R3 proposal)"}]},{"id":"DocumentReference.content.attachment.hash","path":"DocumentReference.content.attachment.hash","short":"Hash of the data (sha-1, base64ed)","definition":"The calculated hash of the data using SHA-1. Represented using base64.","comment":"The hash is calculated on the data prior to base64 encoding, if the data is based64 encoded. The hash is not intended to support digital signatures. Where protection against malicious threats a digital signature should be considered, see [Provenance.signature](http://hl7.org/fhir/R4/provenance-definitions.html#Provenance.signature) for mechanism to protect a resource with a digital signature.","requirements":"Included so that applications can verify that the contents of a location have not changed due to technical failures (e.g., storage rot, transport glitch, incorrect version).","min":0,"max":"1","base":{"path":"Attachment.hash","min":0,"max":"1"},"type":[{"code":"base64Binary"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".integrityCheck[parent::ED/integrityCheckAlgorithm=\"SHA-1\"]"}]},{"id":"DocumentReference.content.attachment.title","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"DocumentReference.content.attachment.title","short":"Label to display in place of the data","definition":"A label or set of text to display in place of the data.","requirements":"Applications need a label to display to a human user in place of the actual data if the data cannot be rendered or perceived by the viewer.","min":0,"max":"1","base":{"path":"Attachment.title","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"Official Corporate Logo"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"./title/data"}]},{"id":"DocumentReference.content.attachment.creation","path":"DocumentReference.content.attachment.creation","short":"Date attachment was first created","definition":"The date that the attachment was first created.","requirements":"This is often tracked as an integrity issue for use of the attachment.","min":0,"max":"1","base":{"path":"Attachment.creation","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"N/A (needs data type R3 proposal)"}]},{"id":"DocumentReference.content.format","path":"DocumentReference.content.format","short":"Format/content rules for the document","definition":"An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.","comment":"Note that while IHE mostly issues URNs for format types, not all documents can be identified by a URI.","min":0,"max":"1","base":{"path":"DocumentReference.content.format","min":0,"max":"1"},"type":[{"code":"Coding"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/ValueSet/formatcodes"},"mapping":[{"identity":"fhircomposition","map":"Composition.meta.profile"},{"identity":"rim","map":"document.text"},{"identity":"xds","map":"DocumentEntry.formatCode"},{"identity":"cda","map":"derived from the IHE Profile or Implementation Guide templateID"}]},{"id":"DocumentReference.context","path":"DocumentReference.context","short":"Clinical context of document","definition":"The clinical context in which the document was prepared.","comment":"These values are primarily added to help with searching for interesting/relevant documents.","min":0,"max":"1","base":{"path":"DocumentReference.context","min":0,"max":"1"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"outboundRelationship[typeCode=\"SUBJ\"].target[classCode<'ACT']"}]},{"id":"DocumentReference.context.id","path":"DocumentReference.context.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DocumentReference.context.extension","path":"DocumentReference.context.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"DocumentReference.context.modifierExtension","path":"DocumentReference.context.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"DocumentReference.context.encounter","path":"DocumentReference.context.encounter","short":"Context of the document content","definition":"Describes the clinical encounter or type of care that the document content is associated with.","min":0,"max":"1","base":{"path":"DocumentReference.context.encounter","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"]}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"fhircomposition","map":"Composition.encounter"},{"identity":"rim","map":"unique(highest(./outboundRelationship[typeCode=\"SUBJ\" and isNormalActRelationship()], priorityNumber)/target[moodCode=\"EVN\" and classCode=(\"ENC\", \"PCPR\") and isNormalAct])"}]},{"id":"DocumentReference.context.event","path":"DocumentReference.context.event","short":"Main clinical acts documented","definition":"This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the type Code, such as a \"History and Physical Report\" in which the procedure being documented is necessarily a \"History and Physical\" act.","comment":"An event can further specialize the act inherent in the type, such as where it is simply \"Procedure Report\" and the procedure was a \"colonoscopy\". If one or more event codes are included, they shall not conflict with the values inherent in the class or type elements as such a conflict would create an ambiguous situation.","min":0,"max":"*","base":{"path":"DocumentReference.context.event","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DocumentEventType"}],"strength":"example","description":"This list of codes represents the main clinical acts being documented.","valueSet":"http://terminology.hl7.org/ValueSet/v3-ActCode"},"mapping":[{"identity":"fhircomposition","map":"Composition.event.code"},{"identity":"rim","map":".code"},{"identity":"xds","map":"DocumentEntry.eventCodeList"}]},{"id":"DocumentReference.context.period","path":"DocumentReference.context.period","short":"Time of service that is being documented","definition":"The time period over which the service that is described by the document was provided.","min":0,"max":"1","base":{"path":"DocumentReference.context.period","min":0,"max":"1"},"type":[{"code":"Period"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"fhircomposition","map":"Composition.event.period"},{"identity":"rim","map":".effectiveTime"},{"identity":"xds","map":"DocumentEntry.serviceStartTime, DocumentEntry.serviceStopTime"},{"identity":"cda","map":"ClinicalDocument/documentationOf/\nserviceEvent/effectiveTime/low/\n@value --> ClinicalDocument/documentationOf/\nserviceEvent/effectiveTime/high/\n@value"}]},{"id":"DocumentReference.context.facilityType","path":"DocumentReference.context.facilityType","short":"Kind of facility where patient was seen","definition":"The kind of facility where the patient was seen.","min":0,"max":"1","base":{"path":"DocumentReference.context.facilityType","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DocumentC80FacilityType"}],"strength":"example","description":"XDS Facility Type.","valueSet":"http://hl7.org/fhir/ValueSet/c80-facilitycodes"},"mapping":[{"identity":"fhircomposition","map":"usually from a mapping to a local ValueSet"},{"identity":"rim","map":".participation[typeCode=\"LOC\"].role[classCode=\"DSDLOC\"].code"},{"identity":"xds","map":"DocumentEntry.healthcareFacilityTypeCode"},{"identity":"cda","map":"usually a mapping to a local ValueSet. Must be consistent with /clinicalDocument/code"}]},{"id":"DocumentReference.context.practiceSetting","path":"DocumentReference.context.practiceSetting","short":"Additional details about where the content was created (e.g. clinical specialty)","definition":"This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty.","comment":"This element should be based on a coarse classification system for the class of specialty practice. Recommend the use of the classification system for Practice Setting, such as that described by the Subject Matter Domain in LOINC.","requirements":"This is an important piece of metadata that providers often rely upon to quickly sort and/or filter out to find specific content.","min":0,"max":"1","base":{"path":"DocumentReference.context.practiceSetting","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DocumentC80PracticeSetting"}],"strength":"example","description":"Additional details about where the content was created (e.g. clinical specialty).","valueSet":"http://hl7.org/fhir/ValueSet/c80-practice-codes"},"mapping":[{"identity":"fhircomposition","map":"usually from a mapping to a local ValueSet"},{"identity":"rim","map":".participation[typeCode=\"LOC\"].role[classCode=\"DSDLOC\"].code"},{"identity":"xds","map":"DocumentEntry.practiceSettingCode"},{"identity":"cda","map":"usually from a mapping to a local ValueSet"}]},{"id":"DocumentReference.context.sourcePatientInfo","path":"DocumentReference.context.sourcePatientInfo","short":"Patient demographics from source","definition":"The Patient Information as known when the document was published. May be a reference to a version specific, or contained.","min":0,"max":"1","base":{"path":"DocumentReference.context.sourcePatientInfo","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"fhircomposition","map":"Composition.subject"},{"identity":"rim","map":".participation[typeCode=\"SBJ\"].role[typeCode=\"PAT\"]"},{"identity":"xds","map":"DocumentEntry.sourcePatientInfo, DocumentEntry.sourcePatientId"},{"identity":"cda","map":"ClinicalDocument/recordTarget/"}]},{"id":"DocumentReference.context.related","path":"DocumentReference.context.related","short":"Related identifiers or resources","definition":"Related identifiers or resources associated with the DocumentReference.","comment":"May be identifiers or resources that caused the DocumentReference or referenced Document to be created.","min":0,"max":"*","base":{"path":"DocumentReference.context.related","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"fhircomposition","map":"Composition.event.detail"},{"identity":"rim","map":"./outboundRelationship[typeCode=\"PERT\" and isNormalActRelationship()] / target[isNormalAct]"},{"identity":"xds","map":"DocumentEntry.referenceIdList"},{"identity":"cda","map":"ClinicalDocument/relatedDocument"}]}]},"differential":{"element":[{"id":"DocumentReference","path":"DocumentReference","definition":"This is a basic constraint on DocumentRefernce for use in the US Core IG.","mustSupport":false},{"id":"DocumentReference.identifier","path":"DocumentReference.identifier","min":0,"max":"*","mustSupport":true},{"id":"DocumentReference.status","path":"DocumentReference.status","min":1,"max":"1","mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/document-reference-status"}},{"id":"DocumentReference.type","path":"DocumentReference.type","min":1,"max":"1","mustSupport":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-minValueSet","valueCanonical":"http://hl7.org/fhir/us/core/ValueSet/us-core-clinical-note-type"}],"strength":"required","description":"All LOINC values whose SCALE is DOC in the LOINC database and the HL7 v3 Code System NullFlavor concept 'unknown'","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-documentreference-type"}},{"id":"DocumentReference.category","path":"DocumentReference.category","min":1,"max":"*","mustSupport":true,"binding":{"strength":"extensible","description":"The US Core DocumentReferences Type Value Set is a 'starter set' of categories supported for fetching and storing clinical notes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-documentreference-category"}},{"id":"DocumentReference.subject","path":"DocumentReference.subject","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true},{"id":"DocumentReference.date","path":"DocumentReference.date","min":0,"max":"1","mustSupport":true},{"id":"DocumentReference.author","path":"DocumentReference.author","min":0,"max":"*","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"mustSupport":true},{"id":"DocumentReference.custodian","path":"DocumentReference.custodian","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true},{"id":"DocumentReference.content","path":"DocumentReference.content","min":1,"max":"1","mustSupport":true},{"id":"DocumentReference.content.attachment","path":"DocumentReference.content.attachment","min":1,"max":"1","constraint":[{"key":"us-core-6","severity":"error","human":"DocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.","expression":"url.exists() or data.exists()","xpath":"f:url or f:content"}],"mustSupport":true},{"id":"DocumentReference.content.attachment.contentType","path":"DocumentReference.content.attachment.contentType","min":1,"max":"1","mustSupport":true},{"id":"DocumentReference.content.attachment.data","path":"DocumentReference.content.attachment.data","min":0,"max":"1","mustSupport":true},{"id":"DocumentReference.content.attachment.url","path":"DocumentReference.content.attachment.url","min":0,"max":"1","mustSupport":true},{"id":"DocumentReference.content.format","path":"DocumentReference.content.format","min":0,"max":"1","mustSupport":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/ValueSet/formatcodes"}},{"id":"DocumentReference.context","path":"DocumentReference.context","min":0,"max":"1","mustSupport":true},{"id":"DocumentReference.context.encounter","path":"DocumentReference.context.encounter","min":0,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"]}],"mustSupport":true},{"id":"DocumentReference.context.period","path":"DocumentReference.context.period","mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-encounter.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-encounter.json new file mode 100644 index 000000000..a8f3fe726 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-encounter.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-encounter","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter","name":"USCoreEncounterProfile","title":"US Core Encounter Profile","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"The Encounter referenced in the US Core profiles.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"}],"kind":"resource","abstract":false,"type":"Encounter","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Encounter","derivation":"constraint","snapshot":{"element":[{"id":"Encounter","path":"Encounter","short":"An interaction during which services are provided to the patient","definition":"This is basic constraint on Encounter for use in US Core resources.","alias":["Visit"],"min":0,"max":"*","base":{"path":"Encounter","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"rim","map":"Encounter[@moodCode='EVN']"}]},{"id":"Encounter.id","path":"Encounter.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Encounter.meta","path":"Encounter.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Encounter.implicitRules","path":"Encounter.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Encounter.language","path":"Encounter.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Encounter.text","path":"Encounter.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Encounter.contained","path":"Encounter.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.extension","path":"Encounter.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.modifierExtension","path":"Encounter.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.identifier","path":"Encounter.identifier","short":"Identifier(s) by which this encounter is known","definition":"Identifier(s) by which this encounter is known.","min":0,"max":"*","base":{"path":"Encounter.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"PV1-19"},{"identity":"rim","map":".id"}]},{"id":"Encounter.identifier.id","path":"Encounter.identifier.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.identifier.extension","path":"Encounter.identifier.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.identifier.use","path":"Encounter.identifier.use","short":"usual | official | temp | secondary | old (If known)","definition":"The purpose of this identifier.","comment":"Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.","requirements":"Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.","min":0,"max":"1","base":{"path":"Identifier.use","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"IdentifierUse"}],"strength":"required","description":"Identifies the purpose for this identifier, if known .","valueSet":"http://hl7.org/fhir/ValueSet/identifier-use|4.0.0"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"Role.code or implied by context"}]},{"id":"Encounter.identifier.type","path":"Encounter.identifier.type","short":"Description of identifier","definition":"A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.","comment":"This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.","requirements":"Allows users to make use of identifiers when the identifier system is not known.","min":0,"max":"1","base":{"path":"Identifier.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"IdentifierType"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"extensible","description":"A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.","valueSet":"http://hl7.org/fhir/ValueSet/identifier-type"},"mapping":[{"identity":"v2","map":"CX.5"},{"identity":"rim","map":"Role.code or implied by context"}]},{"id":"Encounter.identifier.system","path":"Encounter.identifier.system","short":"The namespace for the identifier value","definition":"Establishes the namespace for the value - that is, a URL that describes a set values that are unique.","comment":"Identifier.system is always case sensitive.","requirements":"There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.","min":1,"max":"1","base":{"path":"Identifier.system","min":0,"max":"1"},"type":[{"code":"uri"}],"example":[{"label":"General","valueUri":"http://www.acme.com/identifiers/patient"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.4 / EI-2-4"},{"identity":"rim","map":"II.root or Role.id.root"},{"identity":"servd","map":"./IdentifierType"}]},{"id":"Encounter.identifier.value","path":"Encounter.identifier.value","short":"The value that is unique","definition":"The portion of the identifier typically relevant to the user and which is unique within the context of the system.","comment":"If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](http://hl7.org/fhir/R4/extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.","min":1,"max":"1","base":{"path":"Identifier.value","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"123456"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.1 / EI.1"},{"identity":"rim","map":"II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)"},{"identity":"servd","map":"./Value"}]},{"id":"Encounter.identifier.period","path":"Encounter.identifier.period","short":"Time period when id is/was valid for use","definition":"Time period during which identifier is/was valid for use.","min":0,"max":"1","base":{"path":"Identifier.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.7 + CX.8"},{"identity":"rim","map":"Role.effectiveTime or implied by context"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Encounter.identifier.assigner","path":"Encounter.identifier.assigner","short":"Organization that issued id (may be just text)","definition":"Organization that issued/manages the identifier.","comment":"The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.","min":0,"max":"1","base":{"path":"Identifier.assigner","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.4 / (CX.4,CX.9,CX.10)"},{"identity":"rim","map":"II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper"},{"identity":"servd","map":"./IdentifierIssuingAuthority"}]},{"id":"Encounter.status","path":"Encounter.status","short":"planned | arrived | triaged | in-progress | onleave | finished | cancelled +","definition":"planned | arrived | triaged | in-progress | onleave | finished | cancelled +.","comment":"Note that internal business rules will determine the appropriate transitions that may occur between statuses (and also classes).","min":1,"max":"1","base":{"path":"Encounter.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"EncounterStatus"}],"strength":"required","description":"Current state of the encounter.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-status|4.0.0"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"v2","map":"No clear equivalent in HL7 v2; active/finished could be inferred from PV1-44, PV1-45, PV2-24; inactive could be inferred from PV2-16"},{"identity":"rim","map":".statusCode"}]},{"id":"Encounter.statusHistory","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name","valueString":"StatusHistory"}],"path":"Encounter.statusHistory","short":"List of past encounter statuses","definition":"The status history permits the encounter resource to contain the status history without needing to read through the historical versions of the resource, or even have the server store them.","comment":"The current status is always found in the current version of the resource, not the status history.","min":0,"max":"*","base":{"path":"Encounter.statusHistory","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.statusHistory.id","path":"Encounter.statusHistory.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.statusHistory.extension","path":"Encounter.statusHistory.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.statusHistory.modifierExtension","path":"Encounter.statusHistory.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.statusHistory.status","path":"Encounter.statusHistory.status","short":"planned | arrived | triaged | in-progress | onleave | finished | cancelled +","definition":"planned | arrived | triaged | in-progress | onleave | finished | cancelled +.","min":1,"max":"1","base":{"path":"Encounter.statusHistory.status","min":1,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"EncounterStatus"}],"strength":"required","description":"Current state of the encounter.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-status|4.0.0"},"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.statusHistory.period","path":"Encounter.statusHistory.period","short":"The time that the episode was in the specified status","definition":"The time that the episode was in the specified status.","min":1,"max":"1","base":{"path":"Encounter.statusHistory.period","min":1,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.class","path":"Encounter.class","short":"Classification of patient encounter","definition":"Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.","min":1,"max":"1","base":{"path":"Encounter.class","min":1,"max":"1"},"type":[{"code":"Coding"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"EncounterClass"}],"strength":"extensible","description":"Classification of the encounter.","valueSet":"http://terminology.hl7.org/ValueSet/v3-ActEncounterCode"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"v2","map":"PV1-2"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=LIST].code"}]},{"id":"Encounter.classHistory","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name","valueString":"ClassHistory"}],"path":"Encounter.classHistory","short":"List of past encounter classes","definition":"The class history permits the tracking of the encounters transitions without needing to go through the resource history. This would be used for a case where an admission starts of as an emergency encounter, then transitions into an inpatient scenario. Doing this and not restarting a new encounter ensures that any lab/diagnostic results can more easily follow the patient and not require re-processing and not get lost or cancelled during a kind of discharge from emergency to inpatient.","min":0,"max":"*","base":{"path":"Encounter.classHistory","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.classHistory.id","path":"Encounter.classHistory.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.classHistory.extension","path":"Encounter.classHistory.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.classHistory.modifierExtension","path":"Encounter.classHistory.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.classHistory.class","path":"Encounter.classHistory.class","short":"inpatient | outpatient | ambulatory | emergency +","definition":"inpatient | outpatient | ambulatory | emergency +.","min":1,"max":"1","base":{"path":"Encounter.classHistory.class","min":1,"max":"1"},"type":[{"code":"Coding"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"EncounterClass"}],"strength":"extensible","description":"Classification of the encounter.","valueSet":"http://terminology.hl7.org/ValueSet/v3-ActEncounterCode"},"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.classHistory.period","path":"Encounter.classHistory.period","short":"The time that the episode was in the specified class","definition":"The time that the episode was in the specified class.","min":1,"max":"1","base":{"path":"Encounter.classHistory.period","min":1,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.type","path":"Encounter.type","short":"Specific type of encounter","definition":"Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).","comment":"Since there are many ways to further classify encounters, this element is 0..*.","min":1,"max":"*","base":{"path":"Encounter.type","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Valueset to describe the Encounter Type","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-encounter-type"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.class"},{"identity":"v2","map":"PV1-4 / PV1-18"},{"identity":"rim","map":".code"}]},{"id":"Encounter.serviceType","path":"Encounter.serviceType","short":"Specific type of service","definition":"Broad categorization of the service that is to be provided (e.g. cardiology).","min":0,"max":"1","base":{"path":"Encounter.serviceType","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"EncounterServiceType"}],"strength":"example","description":"Broad categorization of the service that is to be provided.","valueSet":"http://hl7.org/fhir/ValueSet/service-type"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"v2","map":"PV1-10"},{"identity":"rim","map":"n/a"}]},{"id":"Encounter.priority","path":"Encounter.priority","short":"Indicates the urgency of the encounter","definition":"Indicates the urgency of the encounter.","min":0,"max":"1","base":{"path":"Encounter.priority","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Priority"}],"strength":"example","description":"Indicates the urgency of the encounter.","valueSet":"http://terminology.hl7.org/ValueSet/v3-ActPriority"},"mapping":[{"identity":"w5","map":"FiveWs.grade"},{"identity":"v2","map":"PV2-25"},{"identity":"rim","map":".priorityCode"}]},{"id":"Encounter.subject","path":"Encounter.subject","short":"The patient or group present at the encounter","definition":"The patient or group present at the encounter.","comment":"While the encounter is always about the patient, the patient might not actually be known in all contexts of use, and there may be a group of patients that could be anonymous (such as in a group therapy for Alcoholics Anonymous - where the recording of the encounter could be used for billing on the number of people/staff and not important to the context of the specific patients) or alternately in veterinary care a herd of sheep receiving treatment (where the animals are not individually tracked).","alias":["patient"],"min":1,"max":"1","base":{"path":"Encounter.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":".participation[typeCode=SBJ]/role[classCode=PAT]"},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"Encounter.episodeOfCare","path":"Encounter.episodeOfCare","short":"Episode(s) of care that this encounter should be recorded against","definition":"Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).","min":0,"max":"*","base":{"path":"Encounter.episodeOfCare","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/EpisodeOfCare"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1-54, PV1-53"},{"identity":"rim","map":"n/a"}]},{"id":"Encounter.basedOn","path":"Encounter.basedOn","short":"The ServiceRequest that initiated this encounter","definition":"The request this encounter satisfies (e.g. incoming referral or procedure request).","alias":["incomingReferral"],"min":0,"max":"*","base":{"path":"Encounter.basedOn","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/ServiceRequest"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.basedOn"},{"identity":"rim","map":".reason.ClinicalDocument"}]},{"id":"Encounter.participant","path":"Encounter.participant","short":"List of participants involved in the encounter","definition":"The list of people responsible for providing the service.","min":0,"max":"*","base":{"path":"Encounter.participant","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer"},{"identity":"v2","map":"ROL"},{"identity":"rim","map":".participation[typeCode=PFM]"}]},{"id":"Encounter.participant.id","path":"Encounter.participant.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.participant.extension","path":"Encounter.participant.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.participant.modifierExtension","path":"Encounter.participant.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.participant.type","path":"Encounter.participant.type","short":"Role of participant in encounter","definition":"Role of participant in encounter.","comment":"The participant type indicates how an individual participates in an encounter. It includes non-practitioner participants, and for practitioners this is to describe the action type in the context of this encounter (e.g. Admitting Dr, Attending Dr, Translator, Consulting Dr). This is different to the practitioner roles which are functional roles, derived from terms of employment, education, licensing, etc.","min":0,"max":"*","base":{"path":"Encounter.participant.type","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ParticipantType"}],"strength":"extensible","description":"Role of participant in encounter.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-participant-type"},"mapping":[{"identity":"workflow","map":"Event.performer.function"},{"identity":"v2","map":"ROL-3 (or maybe PRT-4)"},{"identity":"rim","map":".functionCode"}]},{"id":"Encounter.participant.period","path":"Encounter.participant.period","short":"Period of time during the encounter that the participant participated","definition":"The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.","min":0,"max":"1","base":{"path":"Encounter.participant.period","min":0,"max":"1"},"type":[{"code":"Period"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"ROL-5, ROL-6 (or maybe PRT-5)"},{"identity":"rim","map":".time"}]},{"id":"Encounter.participant.individual","path":"Encounter.participant.individual","short":"Persons involved in the encounter other than the patient","definition":"Persons involved in the encounter other than the patient.","min":0,"max":"1","base":{"path":"Encounter.participant.individual","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.who"},{"identity":"v2","map":"ROL-4"},{"identity":"rim","map":".role"}]},{"id":"Encounter.appointment","path":"Encounter.appointment","short":"The appointment that scheduled this encounter","definition":"The appointment that scheduled this encounter.","min":0,"max":"*","base":{"path":"Encounter.appointment","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Appointment"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.basedOn"},{"identity":"v2","map":"SCH-1 / SCH-2"},{"identity":"rim","map":".outboundRelationship[typeCode=FLFS].target[classCode=ENC, moodCode=APT]"}]},{"id":"Encounter.period","path":"Encounter.period","short":"The start and end time of the encounter","definition":"The start and end time of the encounter.","comment":"If not (yet) known, the end of the Period may be omitted.","min":0,"max":"1","base":{"path":"Encounter.period","min":0,"max":"1"},"type":[{"code":"Period"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"PV1-44, PV1-45"},{"identity":"rim","map":".effectiveTime (low & high)"}]},{"id":"Encounter.length","path":"Encounter.length","short":"Quantity of time the encounter lasted (less time absent)","definition":"Quantity of time the encounter lasted. This excludes the time during leaves of absence.","comment":"May differ from the time the Encounter.period lasted because of leave of absence.","min":0,"max":"1","base":{"path":"Encounter.length","min":0,"max":"1"},"type":[{"code":"Duration"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"v2","map":"(PV1-45 less PV1-44) iff ( (PV1-44 not empty) and (PV1-45 not empty) ); units in minutes"},{"identity":"rim","map":".lengthOfStayQuantity"}]},{"id":"Encounter.reasonCode","path":"Encounter.reasonCode","short":"Coded reason the encounter takes place","definition":"Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.","comment":"For systems that need to know which was the primary diagnosis, these will be marked with the standard extension primaryDiagnosis (which is a sequence value rather than a flag, 1 = primary diagnosis).","alias":["Indication","Admission diagnosis"],"min":0,"max":"*","base":{"path":"Encounter.reasonCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"EncounterReason"}],"strength":"preferred","description":"Reason why the encounter takes place.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-reason"},"mapping":[{"identity":"workflow","map":"Event.reasonCode"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"v2","map":"EVN-4 / PV2-3 (note: PV2-3 is nominally constrained to inpatient admissions; HL7 v2 makes no vocabulary suggestions for PV2-3; would not expect PV2 segment or PV2-3 to be in use in all implementations )"},{"identity":"rim","map":".reasonCode"}]},{"id":"Encounter.reasonReference","path":"Encounter.reasonReference","short":"Reason the encounter takes place (reference)","definition":"Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.","comment":"For systems that need to know which was the primary diagnosis, these will be marked with the standard extension primaryDiagnosis (which is a sequence value rather than a flag, 1 = primary diagnosis).","alias":["Indication","Admission diagnosis"],"min":0,"max":"*","base":{"path":"Encounter.reasonReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition","http://hl7.org/fhir/StructureDefinition/Procedure","http://hl7.org/fhir/StructureDefinition/Observation","http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.reasonCode"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"v2","map":"EVN-4 / PV2-3 (note: PV2-3 is nominally constrained to inpatient admissions; HL7 v2 makes no vocabulary suggestions for PV2-3; would not expect PV2 segment or PV2-3 to be in use in all implementations )"},{"identity":"rim","map":".reasonCode"}]},{"id":"Encounter.diagnosis","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name","valueString":"Diagnosis"}],"path":"Encounter.diagnosis","short":"The list of diagnosis relevant to this encounter","definition":"The list of diagnosis relevant to this encounter.","min":0,"max":"*","base":{"path":"Encounter.diagnosis","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=RSON]"}]},{"id":"Encounter.diagnosis.id","path":"Encounter.diagnosis.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.diagnosis.extension","path":"Encounter.diagnosis.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.diagnosis.modifierExtension","path":"Encounter.diagnosis.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.diagnosis.condition","path":"Encounter.diagnosis.condition","short":"The diagnosis or procedure relevant to the encounter","definition":"Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.","comment":"For systems that need to know which was the primary diagnosis, these will be marked with the standard extension primaryDiagnosis (which is a sequence value rather than a flag, 1 = primary diagnosis).","alias":["Admission diagnosis","discharge diagnosis","indication"],"min":1,"max":"1","base":{"path":"Encounter.diagnosis.condition","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition","http://hl7.org/fhir/StructureDefinition/Procedure"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.reasonReference"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"v2","map":"Resources that would commonly referenced at Encounter.indication would be Condition and/or Procedure. These most closely align with DG1/PRB and PR1 respectively."},{"identity":"rim","map":".outboundRelationship[typeCode=RSON].target"}]},{"id":"Encounter.diagnosis.use","path":"Encounter.diagnosis.use","short":"Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …)","definition":"Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).","min":0,"max":"1","base":{"path":"Encounter.diagnosis.use","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DiagnosisRole"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"The type of diagnosis this condition represents.","valueSet":"http://hl7.org/fhir/ValueSet/diagnosis-role"},"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.diagnosis.rank","path":"Encounter.diagnosis.rank","short":"Ranking of the diagnosis (for each role type)","definition":"Ranking of the diagnosis (for each role type).","min":0,"max":"1","base":{"path":"Encounter.diagnosis.rank","min":0,"max":"1"},"type":[{"code":"positiveInt"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=RSON].priority"}]},{"id":"Encounter.account","path":"Encounter.account","short":"The set of accounts that may be used for billing for this Encounter","definition":"The set of accounts that may be used for billing for this Encounter.","comment":"The billing system may choose to allocate billable items associated with the Encounter to different referenced Accounts based on internal business rules.","min":0,"max":"*","base":{"path":"Encounter.account","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Account"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".pertains.A_Account"}]},{"id":"Encounter.hospitalization","path":"Encounter.hospitalization","short":"Details about the admission to a healthcare service","definition":"Details about the admission to a healthcare service.","comment":"An Encounter may cover more than just the inpatient stay. Contexts such as outpatients, community clinics, and aged care facilities are also included.\r\rThe duration recorded in the period of this encounter covers the entire scope of this hospitalization record.","min":0,"max":"1","base":{"path":"Encounter.hospitalization","min":0,"max":"1"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=COMP].target[classCode=ENC, moodCode=EVN]"}]},{"id":"Encounter.hospitalization.id","path":"Encounter.hospitalization.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.hospitalization.extension","path":"Encounter.hospitalization.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.hospitalization.modifierExtension","path":"Encounter.hospitalization.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.hospitalization.preAdmissionIdentifier","path":"Encounter.hospitalization.preAdmissionIdentifier","short":"Pre-admission identifier","definition":"Pre-admission identifier.","min":0,"max":"1","base":{"path":"Encounter.hospitalization.preAdmissionIdentifier","min":0,"max":"1"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"PV1-5"},{"identity":"rim","map":".id"}]},{"id":"Encounter.hospitalization.origin","path":"Encounter.hospitalization.origin","short":"The location/organization from which the patient came before admission","definition":"The location/organization from which the patient came before admission.","min":0,"max":"1","base":{"path":"Encounter.hospitalization.origin","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Location","http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".participation[typeCode=ORG].role"}]},{"id":"Encounter.hospitalization.admitSource","path":"Encounter.hospitalization.admitSource","short":"From where patient was admitted (physician referral, transfer)","definition":"From where patient was admitted (physician referral, transfer).","min":0,"max":"1","base":{"path":"Encounter.hospitalization.admitSource","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AdmitSource"}],"strength":"preferred","description":"From where the patient was admitted.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-admit-source"},"mapping":[{"identity":"v2","map":"PV1-14"},{"identity":"rim","map":".admissionReferralSourceCode"}]},{"id":"Encounter.hospitalization.reAdmission","path":"Encounter.hospitalization.reAdmission","short":"The type of hospital re-admission that has occurred (if any). If the value is absent, then this is not identified as a readmission","definition":"Whether this hospitalization is a readmission and why if known.","min":0,"max":"1","base":{"path":"Encounter.hospitalization.reAdmission","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ReAdmissionType"}],"strength":"example","description":"The reason for re-admission of this hospitalization encounter.","valueSet":"http://terminology.hl7.org/ValueSet/v2-0092"},"mapping":[{"identity":"v2","map":"PV1-13"},{"identity":"rim","map":"n/a"}]},{"id":"Encounter.hospitalization.dietPreference","path":"Encounter.hospitalization.dietPreference","short":"Diet preferences reported by the patient","definition":"Diet preferences reported by the patient.","comment":"For example, a patient may request both a dairy-free and nut-free diet preference (not mutually exclusive).","requirements":"Used to track patient's diet restrictions and/or preference. For a complete description of the nutrition needs of a patient during their stay, one should use the nutritionOrder resource which links to Encounter.","min":0,"max":"*","base":{"path":"Encounter.hospitalization.dietPreference","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"PatientDiet"}],"strength":"example","description":"Medical, cultural or ethical food preferences to help with catering requirements.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-diet"},"mapping":[{"identity":"v2","map":"PV1-38"},{"identity":"rim","map":".outboundRelationship[typeCode=COMP].target[classCode=SBADM, moodCode=EVN, code=\"diet\"]"}]},{"id":"Encounter.hospitalization.specialCourtesy","path":"Encounter.hospitalization.specialCourtesy","short":"Special courtesies (VIP, board member)","definition":"Special courtesies (VIP, board member).","min":0,"max":"*","base":{"path":"Encounter.hospitalization.specialCourtesy","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Courtesies"}],"strength":"preferred","description":"Special courtesies.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-special-courtesy"},"mapping":[{"identity":"v2","map":"PV1-16"},{"identity":"rim","map":".specialCourtesiesCode"}]},{"id":"Encounter.hospitalization.specialArrangement","path":"Encounter.hospitalization.specialArrangement","short":"Wheelchair, translator, stretcher, etc.","definition":"Any special requests that have been made for this hospitalization encounter, such as the provision of specific equipment or other things.","min":0,"max":"*","base":{"path":"Encounter.hospitalization.specialArrangement","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Arrangements"}],"strength":"preferred","description":"Special arrangements.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-special-arrangements"},"mapping":[{"identity":"v2","map":"PV1-15 / OBR-30 / OBR-43"},{"identity":"rim","map":".specialArrangementCode"}]},{"id":"Encounter.hospitalization.destination","path":"Encounter.hospitalization.destination","short":"Location/organization to which the patient is discharged","definition":"Location/organization to which the patient is discharged.","min":0,"max":"1","base":{"path":"Encounter.hospitalization.destination","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Location","http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"PV1-37"},{"identity":"rim","map":".participation[typeCode=DST]"}]},{"id":"Encounter.hospitalization.dischargeDisposition","path":"Encounter.hospitalization.dischargeDisposition","short":"Category or kind of location after discharge","definition":"Category or kind of location after discharge.","min":0,"max":"1","base":{"path":"Encounter.hospitalization.dischargeDisposition","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DischargeDisp"}],"strength":"example","description":"Discharge Disposition.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-discharge-disposition"},"mapping":[{"identity":"v2","map":"PV1-36"},{"identity":"rim","map":".dischargeDispositionCode"}]},{"id":"Encounter.location","path":"Encounter.location","short":"List of locations where the patient has been","definition":"List of locations where the patient has been during this encounter.","comment":"Virtual encounters can be recorded in the Encounter by specifying a location reference to a location of type \"kind\" such as \"client's home\" and an encounter.class = \"virtual\".","min":0,"max":"*","base":{"path":"Encounter.location","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".participation[typeCode=LOC]"}]},{"id":"Encounter.location.id","path":"Encounter.location.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.location.extension","path":"Encounter.location.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Encounter.location.modifierExtension","path":"Encounter.location.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Encounter.location.location","path":"Encounter.location.location","short":"Location the encounter takes place","definition":"The location where the encounter takes place.","min":1,"max":"1","base":{"path":"Encounter.location.location","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-location"]}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.location"},{"identity":"w5","map":"FiveWs.where[x]"},{"identity":"v2","map":"PV1-3 / PV1-6 / PV1-11 / PV1-42 / PV1-43"},{"identity":"rim","map":".role"}]},{"id":"Encounter.location.status","path":"Encounter.location.status","short":"planned | active | reserved | completed","definition":"The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.","comment":"When the patient is no longer active at a location, then the period end date is entered, and the status may be changed to completed.","min":0,"max":"1","base":{"path":"Encounter.location.status","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"EncounterLocationStatus"}],"strength":"required","description":"The status of the location.","valueSet":"http://hl7.org/fhir/ValueSet/encounter-location-status|4.0.0"},"mapping":[{"identity":"rim","map":".role.statusCode"}]},{"id":"Encounter.location.physicalType","path":"Encounter.location.physicalType","short":"The physical type of the location (usually the level in the location hierachy - bed room ward etc.)","definition":"This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.","comment":"This information is de-normalized from the Location resource to support the easier understanding of the encounter resource and processing in messaging or query.\n\nThere may be many levels in the hierachy, and this may only pic specific levels that are required for a specific usage scenario.","min":0,"max":"1","base":{"path":"Encounter.location.physicalType","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"PhysicalType"}],"strength":"example","description":"Physical form of the location.","valueSet":"http://hl7.org/fhir/ValueSet/location-physical-type"}},{"id":"Encounter.location.period","path":"Encounter.location.period","short":"Time period during which the patient was present at the location","definition":"Time period during which the patient was present at the location.","min":0,"max":"1","base":{"path":"Encounter.location.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".time"}]},{"id":"Encounter.serviceProvider","path":"Encounter.serviceProvider","short":"The organization (facility) responsible for this encounter","definition":"The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the example bundle showing an abbreviated set of Encounters for a colonoscopy.","min":0,"max":"1","base":{"path":"Encounter.serviceProvider","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"v2","map":"PL.6 & PL.1"},{"identity":"rim","map":".particiaption[typeCode=PFM].role"}]},{"id":"Encounter.partOf","path":"Encounter.partOf","short":"Another Encounter this encounter is part of","definition":"Another Encounter of which this encounter is a part of (administratively or in time).","comment":"This is also used for associating a child's encounter back to the mother's encounter.\r\rRefer to the Notes section in the Patient resource for further details.","min":0,"max":"1","base":{"path":"Encounter.partOf","min":0,"max":"1"},"type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy","valueBoolean":true}],"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.partOf"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[classCode=COMP, moodCode=EVN]"}]}]},"differential":{"element":[{"id":"Encounter","path":"Encounter","definition":"This is basic constraint on Encounter for use in US Core resources.","alias":["Visit"],"mustSupport":false},{"id":"Encounter.identifier","path":"Encounter.identifier","min":0,"max":"*","type":[{"code":"Identifier"}],"mustSupport":true},{"id":"Encounter.identifier.system","path":"Encounter.identifier.system","min":1,"max":"1","type":[{"code":"uri"}],"mustSupport":true},{"id":"Encounter.identifier.value","path":"Encounter.identifier.value","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Encounter.status","path":"Encounter.status","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true},{"id":"Encounter.class","path":"Encounter.class","min":1,"max":"1","type":[{"code":"Coding"}],"mustSupport":true},{"id":"Encounter.type","path":"Encounter.type","min":1,"max":"*","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Valueset to describe the Encounter Type","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-encounter-type"}},{"id":"Encounter.subject","path":"Encounter.subject","alias":["patient"],"min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true},{"id":"Encounter.participant","path":"Encounter.participant","min":0,"max":"*","mustSupport":true},{"id":"Encounter.participant.type","path":"Encounter.participant.type","min":0,"max":"*","type":[{"code":"CodeableConcept"}],"mustSupport":true},{"id":"Encounter.participant.period","path":"Encounter.participant.period","min":0,"max":"1","type":[{"code":"Period"}],"mustSupport":true},{"id":"Encounter.participant.individual","path":"Encounter.participant.individual","min":0,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"]}],"mustSupport":true},{"id":"Encounter.period","path":"Encounter.period","min":0,"max":"1","type":[{"code":"Period"}],"mustSupport":true},{"id":"Encounter.reasonCode","path":"Encounter.reasonCode","alias":["Indication","Admission diagnosis"],"min":0,"max":"*","type":[{"code":"CodeableConcept"}],"mustSupport":true},{"id":"Encounter.hospitalization","path":"Encounter.hospitalization","min":0,"max":"1","mustSupport":true},{"id":"Encounter.hospitalization.dischargeDisposition","path":"Encounter.hospitalization.dischargeDisposition","min":0,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true},{"id":"Encounter.location","path":"Encounter.location","min":0,"max":"*","mustSupport":true},{"id":"Encounter.location.location","path":"Encounter.location.location","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-location"]}],"mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-ethnicity.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-ethnicity.json new file mode 100644 index 000000000..c0f2a3fca --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-ethnicity.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-ethnicity","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Extension 0..1US Core ethnicity Extension
    \".\"\".\"\".\" extension:ombCategory S0..1ExtensionHispanic or Latino|Not Hispanic or Latino
    \".\"\".\"\".\"\".\" url 1..1uri"ombCategory"
    \".\"\".\"\".\"\".\" valueCoding 1..1CodingBinding: OMB Ethnicity Categories (required)
    \".\"\".\"\".\" extension:detailed 0..*ExtensionExtended ethnicity codes
    \".\"\".\"\".\"\".\" url 1..1uri"detailed"
    \".\"\".\"\".\"\".\" valueCoding 1..1CodingBinding: Detailed ethnicity (required)
    \".\"\".\"\".\" extension:text S1..1Extensionethnicity Text
    \".\"\".\"\".\"\".\" url 1..1uri"text"
    \".\"\".\"\".\"\".\" valueString 1..1string
    \".\"\".\"\".\" url 1..1"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity","version":"3.0.1","name":"USCoreEthnicityExtension","title":"US Core Ethnicity Extension","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Concepts classifying the person into a named category of humans sharing common history, traits, geographical origin or nationality. The ethnicity codes used to represent these concepts are based upon the [CDC ethnicity and Ethnicity Code Set Version 1.0](http://www.cdc.gov/phin/resources/vocabulary/index.html) which includes over 900 concepts for representing race and ethnicity of which 43 reference ethnicity. The ethnicity concepts are grouped by and pre-mapped to the 2 OMB ethnicity categories: - Hispanic or Latino - Not Hispanic or Latino.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"purpose":"Complies with 2015 Edition Common Clinical Data Set for patient race.","fhirVersion":"4.0.0","mapping":[{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"}],"kind":"complex-type","abstract":false,"context":[{"type":"element","expression":"Patient"}],"type":"Extension","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Extension","derivation":"constraint","snapshot":{"element":[{"id":"Extension:ethnicity","path":"Extension","short":"US Core ethnicity Extension","definition":"Concepts classifying the person into a named category of humans sharing common history, traits, geographical origin or nationality. The ethnicity codes used to represent these concepts are based upon the [CDC ethnicity and Ethnicity Code Set Version 1.0](http://www.cdc.gov/phin/resources/vocabulary/index.html) which includes over 900 concepts for representing race and ethnicity of which 43 reference ethnicity. The ethnicity concepts are grouped by and pre-mapped to the 2 OMB ethnicity categories: - Hispanic or Latino - Not Hispanic or Latino.","min":0,"max":"1","base":{"path":"Extension","min":0,"max":"*"},"condition":["ele-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"children().count() > id.count()","xpath":"@value|f:*|h:div","source":"Element"},{"key":"ext-1","severity":"error","human":"Must have either extensions or value[x], not both","expression":"extension.exists() != value.exists()","xpath":"exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])","source":"Extension"}],"isModifier":false},{"id":"Extension:ethnicity.id","path":"Extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:ethnicity.extension","path":"Extension.extension","slicing":{"id":"2","discriminator":[{"type":"value","path":"url"}],"ordered":false,"rules":"open"},"short":"Extension","definition":"An Extension","min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}]},{"id":"Extension:ethnicity.extension:ombcategory","path":"Extension.extension","sliceName":"ombCategory","short":"Hispanic or Latino|Not Hispanic or Latino","definition":"The 2 ethnicity category codes according to the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","min":0,"max":"1","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mustSupport":true,"isModifier":false,"mapping":[{"identity":"iso11179","map":"/ClinicalDocument/recordTarget/patientRole/patient/ethnicGroupCode"}]},{"id":"Extension:ethnicity.extension:ombcategory.id","path":"Extension.extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:ethnicity.extension:ombcategory.extension","path":"Extension.extension.extension","short":"Additional Content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"0","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:ethnicity.extension:ombcategory.url","path":"Extension.extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"ombCategory","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:ethnicity.extension:ombcategory.valueCoding","path":"Extension.extension.valueCoding","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":1,"max":"1","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"Coding"}],"binding":{"strength":"required","description":"The 2 ethnicity category codes according to the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","valueSet":"http://hl7.org/fhir/us/core/ValueSet/omb-ethnicity-category"},"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:ethnicity.extension:detailed","path":"Extension.extension","sliceName":"detailed","short":"Extended ethnicity codes","definition":"The 41 CDC ethnicity codes that are grouped under one of the 2 OMB ethnicity category codes.","min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"mapping":[{"identity":"iso11179","map":"/ClinicalDocument/recordTarget/patientRole/patient/sdtc:ethnicGroupCode"}]},{"id":"Extension:ethnicity.extension:detailed.id","path":"Extension.extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:ethnicity.extension:detailed.extension","path":"Extension.extension.extension","short":"Additional Content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"0","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:ethnicity.extension:detailed.url","path":"Extension.extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"detailed","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:ethnicity.extension:detailed.valueCoding","path":"Extension.extension.valueCoding","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":1,"max":"1","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"Coding"}],"binding":{"strength":"required","description":"The 41 [CDC ethnicity codes](http://www.cdc.gov/phin/resources/vocabulary/index.html) that are grouped under one of the 2 OMB ethnicity category codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/detailed-ethnicity"},"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:ethnicity.extension:text","path":"Extension.extension","sliceName":"text","short":"ethnicity Text","definition":"Plain text representation of the ethnicity concept(s).","min":1,"max":"1","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mustSupport":true,"isModifier":false},{"id":"Extension:ethnicity.extension:text.id","path":"Extension.extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:ethnicity.extension:text.extension","path":"Extension.extension.extension","short":"Additional Content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"0","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:ethnicity.extension:text.url","path":"Extension.extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"text","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:ethnicity.extension:text.valueString","path":"Extension.extension.valueString","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":1,"max":"1","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:ethnicity.url","path":"Extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:ethnicity.value[x]","path":"Extension.value[x]","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":0,"max":"0","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"base64Binary"},{"code":"boolean"},{"code":"code"},{"code":"date"},{"code":"dateTime"},{"code":"decimal"},{"code":"id"},{"code":"instant"},{"code":"integer"},{"code":"markdown"},{"code":"oid"},{"code":"positiveInt"},{"code":"string"},{"code":"time"},{"code":"unsignedInt"},{"code":"uri"},{"code":"Address"},{"code":"Age"},{"code":"Annotation"},{"code":"Attachment"},{"code":"CodeableConcept"},{"code":"Coding"},{"code":"ContactPoint"},{"code":"Count"},{"code":"Distance"},{"code":"Duration"},{"code":"HumanName"},{"code":"Identifier"},{"code":"Money"},{"code":"Period"},{"code":"Quantity"},{"code":"Range"},{"code":"Ratio"},{"code":"Reference"},{"code":"SampledData"},{"code":"Signature"},{"code":"Timing"},{"code":"Meta"}],"mapping":[{"identity":"rim","map":"N/A"}]}]},"differential":{"element":[{"id":"Extension:ethnicity","path":"Extension","short":"US Core ethnicity Extension","definition":"Concepts classifying the person into a named category of humans sharing common history, traits, geographical origin or nationality. The ethnicity codes used to represent these concepts are based upon the [CDC ethnicity and Ethnicity Code Set Version 1.0](http://www.cdc.gov/phin/resources/vocabulary/index.html) which includes over 900 concepts for representing race and ethnicity of which 43 reference ethnicity. The ethnicity concepts are grouped by and pre-mapped to the 2 OMB ethnicity categories: - Hispanic or Latino - Not Hispanic or Latino.","min":0,"max":"1","isModifier":false},{"id":"Extension:ethnicity.extension:ombcategory","path":"Extension.extension","sliceName":"ombCategory","short":"Hispanic or Latino|Not Hispanic or Latino","definition":"The 2 ethnicity category codes according to the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","min":0,"max":"1","type":[{"code":"Extension"}],"mustSupport":true,"isModifier":false,"mapping":[{"identity":"iso11179","map":"/ClinicalDocument/recordTarget/patientRole/patient/ethnicGroupCode"}]},{"id":"Extension:ethnicity.extension:ombcategory.url","path":"Extension.extension.url","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"ombCategory"},{"id":"Extension:ethnicity.extension:ombcategory.valueCoding","path":"Extension.extension.valueCoding","min":1,"max":"1","type":[{"code":"Coding"}],"binding":{"strength":"required","description":"The 2 ethnicity category codes according to the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","valueSet":"http://hl7.org/fhir/us/core/ValueSet/omb-ethnicity-category"}},{"id":"Extension:ethnicity.extension:detailed","path":"Extension.extension","sliceName":"detailed","short":"Extended ethnicity codes","definition":"The 41 CDC ethnicity codes that are grouped under one of the 2 OMB ethnicity category codes.","min":0,"max":"*","type":[{"code":"Extension"}],"isModifier":false,"mapping":[{"identity":"iso11179","map":"/ClinicalDocument/recordTarget/patientRole/patient/sdtc:ethnicGroupCode"}]},{"id":"Extension:ethnicity.extension:detailed.url","path":"Extension.extension.url","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"detailed"},{"id":"Extension:ethnicity.extension:detailed.valueCoding","path":"Extension.extension.valueCoding","min":1,"max":"1","type":[{"code":"Coding"}],"binding":{"strength":"required","description":"The 41 [CDC ethnicity codes](http://www.cdc.gov/phin/resources/vocabulary/index.html) that are grouped under one of the 2 OMB ethnicity category codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/detailed-ethnicity"}},{"id":"Extension:ethnicity.extension:text","path":"Extension.extension","sliceName":"text","short":"ethnicity Text","definition":"Plain text representation of the ethnicity concept(s).","min":1,"max":"1","type":[{"code":"Extension"}],"mustSupport":true,"isModifier":false},{"id":"Extension:ethnicity.extension:text.url","path":"Extension.extension.url","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"text"},{"id":"Extension:ethnicity.extension:text.valueString","path":"Extension.extension.valueString","min":1,"max":"1","type":[{"code":"string"}]},{"id":"Extension:ethnicity.url","path":"Extension.url","min":1,"max":"1","fixedUri":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-goal.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-goal.json new file mode 100644 index 000000000..df11758bb --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-goal.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-goal","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal","version":"3.0.1","name":"USCoreGoalProfile","title":"US Core Goal Profile","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"}],"kind":"resource","abstract":false,"type":"Goal","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Goal","derivation":"constraint","snapshot":{"element":[{"id":"Goal","path":"Goal","short":"Describes the intended objective(s) for a patient, group or organization","definition":"The US Core Goal Profile is based upon the core FHIR Goal Resource and created to meet the 2015 Edition Common Clinical Data Set 'Goals' requirements.","comment":"Goal can be achieving a particular change or merely maintaining a current state or even slowing a decline.","min":0,"max":"*","base":{"path":"Goal","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"v2","map":"GOL.1"},{"identity":"rim","map":".outboundRelationship[typeCode<=OBJ]."},{"identity":"argonaut-dq-dstu2","map":"Goal"}]},{"id":"Goal.id","path":"Goal.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Goal.meta","path":"Goal.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Goal.implicitRules","path":"Goal.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Goal.language","path":"Goal.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Goal.text","path":"Goal.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Goal.contained","path":"Goal.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Goal.extension","path":"Goal.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Goal.modifierExtension","path":"Goal.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Goal.identifier","path":"Goal.identifier","short":"External Ids for this goal","definition":"Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server.","comment":"This is a business identifier, not a resource identifier (see [discussion](http://hl7.org/fhir/R4/resource.html#identifiers)). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number.","requirements":"Allows identification of the goal as it is known by various participating systems and in a way that remains consistent across servers.","min":0,"max":"*","base":{"path":"Goal.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"rim","map":".id"}]},{"id":"Goal.lifecycleStatus","path":"Goal.lifecycleStatus","short":"proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected","definition":"Type of plan.","comment":"This element is labeled as a modifier because the lifecycleStatus contains codes that mark the resource as not currently valid.","requirements":"Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", \"wellness plan\", etc.","min":1,"max":"1","base":{"path":"Goal.lifecycleStatus","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/goal-status"},"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"v2","map":"GOL-18-goal life cycle status"},{"identity":"rim","map":".statusCode in-progress = active (classCode = OBJ) cancelled = aborted"},{"identity":"argonaut-dq-dstu2","map":"Goal.status"}]},{"id":"Goal.achievementStatus","path":"Goal.achievementStatus","short":"in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable","definition":"Describes the progression, or lack thereof, towards the goal against the target.","min":0,"max":"1","base":{"path":"Goal.achievementStatus","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"GoalAchievementStatus"}],"strength":"preferred","description":"Indicates the progression, or lack thereof, towards the goal against the target.","valueSet":"http://hl7.org/fhir/ValueSet/goal-achievement"},"mapping":[{"identity":"rim","map":".statusCode achieved = complete sustaining = active"}]},{"id":"Goal.category","path":"Goal.category","short":"E.g. Treatment, dietary, behavioral, etc.","definition":"Indicates a category the goal falls within.","requirements":"Allows goals to be filtered and sorted.","min":0,"max":"*","base":{"path":"Goal.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"GoalCategory"}],"strength":"example","description":"Codes for grouping and sorting goals.","valueSet":"http://hl7.org/fhir/ValueSet/goal-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"}]},{"id":"Goal.priority","path":"Goal.priority","short":"high-priority | medium-priority | low-priority","definition":"Identifies the mutually agreed level of importance associated with reaching/sustaining the goal.","comment":"Extensions are available to track priorities as established by each participant (i.e. Priority from the patient's perspective, different practitioners' perspectives, family member's perspectives)\r\rThe ordinal extension on Coding can be used to convey a numerically comparable ranking to priority. (Keep in mind that different coding systems may use a \"low value=important\".","requirements":"Used for sorting and presenting goals.","min":0,"max":"1","base":{"path":"Goal.priority","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"GoalPriority"}],"strength":"preferred","description":"The level of importance associated with a goal.","valueSet":"http://hl7.org/fhir/ValueSet/goal-priority"},"mapping":[{"identity":"w5","map":"FiveWs.grade"},{"identity":"rim","map":".priorityCode"}]},{"id":"Goal.description","path":"Goal.description","short":"Code or text describing goal","definition":"proposed | draft | active | completed | cancelled.","comment":"If no code is available, use CodeableConcept.text.","requirements":"Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.","min":1,"max":"1","base":{"path":"Goal.description","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"GoalDescription"}],"strength":"example","description":"Codes providing the details of a particular goal. This will generally be system or implementation guide-specific. In many systems, only the text element will be used.","valueSet":"http://hl7.org/fhir/ValueSet/clinical-findings"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"v2","map":"GOL-3.2-goal ID.text"},{"identity":"rim","map":".text"},{"identity":"argonaut-dq-dstu2","map":"Goal.description"}]},{"id":"Goal.subject","path":"Goal.subject","short":"Who this goal is intended for","definition":"Who care plan is for.","requirements":"Identifies the patient or group whose intended care is described by the plan.","min":1,"max":"1","base":{"path":"Goal.subject","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3-patient ID list"},{"identity":"rim","map":".participation[typeCode=PAT].role[classCode=PAT]"},{"identity":"w5","map":"FiveWs.subject"},{"identity":"argonaut-dq-dstu2","map":"Goal.subject"}]},{"id":"Goal.start[x]","path":"Goal.start[x]","short":"When goal pursuit begins","definition":"The date or event after which the goal should begin being pursued.","requirements":"Goals can be established prior to there being an intention to start pursuing them; e.g. Goals for post-surgical recovery established prior to surgery.","min":0,"max":"1","base":{"path":"Goal.start[x]","min":0,"max":"1"},"type":[{"code":"date"},{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"GoalStartEvent"}],"strength":"example","description":"Codes describing events that can trigger the initiation of a goal.","valueSet":"http://hl7.org/fhir/ValueSet/goal-start-event"},"mapping":[{"identity":"w5","map":"FiveWs.planned"}]},{"id":"Goal.target","path":"Goal.target","short":"Target outcome for the goal","definition":"Indicates what should be done by when.","comment":"When multiple targets are present for a single goal instance, all targets must be met for the overall goal to be met.","requirements":"Allows the progress of the goal to be monitored against an observation or due date. Target is 0..* to support Observations with multiple components, such as blood pressure goals with both a systolic and diastolic target.","min":0,"max":"*","base":{"path":"Goal.target","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"condition":["gol-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"gol-1","severity":"error","human":"Goal.target.measure is required if Goal.target.detail is populated","expression":"(detail.exists() and measure.exists()) or detail.exists().not()","xpath":"(exists(f:*[starts-with(local-name(.), 'detail')]) and exists(f:measure)) or not(exists(f:*[starts-with(local-name(.), 'detail')]))","source":"Goal.target"}],"mustSupport":true,"isModifier":false,"isSummary":false},{"id":"Goal.target.id","path":"Goal.target.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Goal.target.extension","path":"Goal.target.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Goal.target.modifierExtension","path":"Goal.target.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Goal.target.measure","path":"Goal.target.measure","short":"The parameter whose value is being tracked","definition":"The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.","min":0,"max":"1","base":{"path":"Goal.target.measure","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["gol-1"],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"GoalTargetMeasure"}],"strength":"example","description":"Codes to identify the value being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.","valueSet":"http://hl7.org/fhir/ValueSet/observation-codes"}},{"id":"Goal.target.detail[x]","path":"Goal.target.detail[x]","short":"The target value to be achieved","definition":"The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.","comment":"A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Goal.target.measure defines a coded value.","min":0,"max":"1","base":{"path":"Goal.target.detail[x]","min":0,"max":"1"},"type":[{"code":"Quantity"},{"code":"Range"},{"code":"CodeableConcept"},{"code":"string"},{"code":"boolean"},{"code":"integer"},{"code":"Ratio"}],"condition":["gol-1"],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"GoalTargetDetail"}],"strength":"example","description":"Codes to identify the target value of the focus to be achieved to signify the fulfillment of the goal."}},{"id":"Goal.target.due[x]","path":"Goal.target.due[x]","slicing":{"discriminator":[{"type":"type","path":"$this"}],"ordered":false,"rules":"closed"},"short":"Reach goal on or before","definition":"Indicates either the date or the duration after start by which the goal should be met.","requirements":"Identifies when the goal should be evaluated.","min":0,"max":"1","base":{"path":"Goal.target.due[x]","min":0,"max":"1"},"type":[{"code":"date"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.done[x]"}]},{"id":"Goal.target.due[x]:dueDate","path":"Goal.target.due[x]","sliceName":"dueDate","short":"Reach goal on or before","definition":"Indicates either the date or the duration after start by which the goal should be met.","requirements":"Identifies when the goal should be evaluated.","min":0,"max":"1","base":{"path":"Goal.target.due[x]","min":0,"max":"1"},"type":[{"code":"date"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.done[x]"}]},{"id":"Goal.statusDate","path":"Goal.statusDate","short":"When goal status took effect","definition":"Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.","comment":"To see the date for past statuses, query history.","min":0,"max":"1","base":{"path":"Goal.statusDate","min":0,"max":"1"},"type":[{"code":"date"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.recorded"}]},{"id":"Goal.statusReason","path":"Goal.statusReason","short":"Reason for current status","definition":"Captures the reason for the current status.","comment":"This will typically be captured for statuses such as rejected, on-hold or cancelled, but could be present for others.","min":0,"max":"1","base":{"path":"Goal.statusReason","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false},{"id":"Goal.expressedBy","path":"Goal.expressedBy","short":"Who's responsible for creating Goal?","definition":"Indicates whose goal this is - patient goal, practitioner goal, etc.","comment":"This is the individual responsible for establishing the goal, not necessarily who recorded it. (For that, use the Provenance resource.).","min":0,"max":"1","base":{"path":"Goal.expressedBy","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.source"}]},{"id":"Goal.addresses","path":"Goal.addresses","short":"Issues addressed by this goal","definition":"The identified conditions and other health record elements that are intended to be addressed by the goal.","requirements":"Allows specific goals to explicitly linked to the concerns they're dealing with - makes the goal more understandable.","min":0,"max":"*","base":{"path":"Goal.addresses","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition","http://hl7.org/fhir/StructureDefinition/Observation","http://hl7.org/fhir/StructureDefinition/MedicationStatement","http://hl7.org/fhir/StructureDefinition/NutritionOrder","http://hl7.org/fhir/StructureDefinition/ServiceRequest","http://hl7.org/fhir/StructureDefinition/RiskAssessment"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"rim","map":".outboundRelationship[typeCode=SUBJ].target[classCode=CONC]"}]},{"id":"Goal.note","path":"Goal.note","short":"Comments about the goal","definition":"Any comments related to the goal.","comment":"May be used for progress notes, concerns or other related information that doesn't actually describe the goal itself.","requirements":"There's a need to capture information about the goal that doesn't actually describe the goal.","min":0,"max":"*","base":{"path":"Goal.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"GOL-16-goal evaluation + NTE?"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"annotation\"].value"}]},{"id":"Goal.outcomeCode","path":"Goal.outcomeCode","short":"What result was achieved regarding the goal?","definition":"Identifies the change (or lack of change) at the point when the status of the goal is assessed.","comment":"Note that this should not duplicate the goal status.","requirements":"Outcome tracking is a key aspect of care planning.","min":0,"max":"*","base":{"path":"Goal.outcomeCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"GoalOutcome"}],"strength":"example","description":"The result of the goal; e.g. \"25% increase in shoulder mobility\", \"Anxiety reduced to moderate levels\". \"15 kg weight loss sustained over 6 months\".","valueSet":"http://hl7.org/fhir/ValueSet/clinical-findings"}},{"id":"Goal.outcomeReference","path":"Goal.outcomeReference","short":"Observation that resulted from goal","definition":"Details of what's changed (or not changed).","comment":"The goal outcome is independent of the outcome of the related activities. For example, if the Goal is to achieve a target body weight of 150 lb and a care plan activity is defined to diet, then the care plan’s activity outcome could be calories consumed whereas goal outcome is an observation for the actual body weight measured.","requirements":"Outcome tracking is a key aspect of care planning.","min":0,"max":"*","base":{"path":"Goal.outcomeReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Observation"]}],"isModifier":false,"isSummary":false}]},"differential":{"element":[{"id":"Goal","path":"Goal","definition":"The US Core Goal Profile is based upon the core FHIR Goal Resource and created to meet the 2015 Edition Common Clinical Data Set 'Goals' requirements.","mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Goal"}]},{"id":"Goal.lifecycleStatus","path":"Goal.lifecycleStatus","definition":"Type of plan.","requirements":"Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", \"wellness plan\", etc.","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/goal-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Goal.status"}]},{"id":"Goal.description","path":"Goal.description","definition":"proposed | draft | active | completed | cancelled.","requirements":"Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Goal.description"}]},{"id":"Goal.subject","path":"Goal.subject","definition":"Who care plan is for.","requirements":"Identifies the patient or group whose intended care is described by the plan.","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Goal.subject"}]},{"id":"Goal.target","path":"Goal.target","min":0,"max":"*","mustSupport":true},{"id":"Goal.target.dueDate","path":"Goal.target.dueDate","min":0,"max":"1","mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-immunization.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-immunization.json new file mode 100644 index 000000000..1783b20a8 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-immunization.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-immunization","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Immunization 0..*
    \".\"\".\"\".\" status S1..1codeBinding: ImmunizationStatusCodes (required)
    \".\"\".\"\".\" statusReason S0..1CodeableConceptBinding: ImmunizationStatusReasonCodes (example)
    \".\"\".\"\".\" vaccineCode SI1..1CodeableConceptVaccine Product Type (bind to CVX)
    Binding: US Core Vaccine Administered Value Set (CVX) (extensible)
    us-core-1: SHOULD have a translation to the NDC value set
    \".\"\".\"\".\" patient S1..1Reference(US Core Patient Profile)
    \".\"\".\"\".\" occurrence[x] S1..1
    \".\"\".\"\".\"\".\" occurrenceDateTimedateTime
    \".\"\".\"\".\"\".\" occurrenceStringstring
    \".\"\".\"\".\" primarySource S1..1boolean

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization","version":"3.0.1","name":"USCoreImmunizationProfile","title":"US Core Immunization Profile","status":"active","experimental":false,"date":"2019-08-26T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Immunization resource for the minimal set of data to query and retrieve patient's immunization information.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"quick","uri":"http://unknown.org/QUICK","name":"QUICK"},{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"cda","uri":"http://hl7.org/v3/cda","name":"CDA (R2)"}],"kind":"resource","abstract":false,"type":"Immunization","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Immunization","derivation":"constraint","snapshot":{"element":[{"id":"Immunization","path":"Immunization","short":"Immunization event information","definition":"The US Core Immunization Profile is based upon the core FHIR Immunization Resource and created to meet the 2015 Edition Common Clinical Data Set 'Immunizations' requirements.","min":0,"max":"*","base":{"path":"Immunization","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"v2","map":"VXU_V04"},{"identity":"rim","map":"SubstanceAdministration"},{"identity":"quick","map":"ImmunizationPerformanceOccurrence"},{"identity":"argonaut-dq-dstu2","map":"Immunization"}]},{"id":"Immunization.id","path":"Immunization.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Immunization.meta","path":"Immunization.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Immunization.implicitRules","path":"Immunization.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Immunization.language","path":"Immunization.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Immunization.text","path":"Immunization.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Immunization.contained","path":"Immunization.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.extension","path":"Immunization.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.modifierExtension","path":"Immunization.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.identifier","path":"Immunization.identifier","short":"Business identifier","definition":"A unique identifier assigned to this immunization record.","min":0,"max":"*","base":{"path":"Immunization.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"rim","map":".id"},{"identity":"cda","map":"ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/id"}]},{"id":"Immunization.status","path":"Immunization.status","short":"completed | entered-in-error | not-done","definition":"Indicates the current status of the immunization event.","comment":"Will generally be set to show that the immunization has been completed or not done. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.","min":1,"max":"1","base":{"path":"Immunization.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains statuses entered-in-error and not-done which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","description":"Constrained list of immunizaiotn status","valueSet":"http://hl7.org/fhir/ValueSet/immunization-status"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":"statusCode"},{"identity":"argonaut-dq-dstu2","map":"Immunization.status"}]},{"id":"Immunization.statusReason","path":"Immunization.statusReason","short":"Reason not done","definition":"Indicates the reason the immunization event was not performed.","comment":"This is generally only used for the status of \"not-done\". The reason for performing the immunization event is captured in reasonCode, not here.","min":0,"max":"1","base":{"path":"Immunization.statusReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"strength":"example","valueSet":"http://hl7.org/fhir/ValueSet/immunization-status-reason"},"mapping":[{"identity":"workflow","map":"Event.statusReason"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN].reasonCOde"},{"identity":"argonaut-dq-dstu2","map":"Immunization.wasNotGiven"}]},{"id":"Immunization.vaccineCode","path":"Immunization.vaccineCode","short":"Vaccine Product Type (bind to CVX)","definition":"Vaccine that was administered or was to be administered.","min":1,"max":"1","base":{"path":"Immunization.vaccineCode","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"constraint":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true}],"key":"us-core-1","severity":"warning","human":"SHOULD have a translation to the NDC value set","expression":"coding.where(system='http://hl7.org/fhir/sid/ndc').empty()","xpath":"not(exists(f:coding/f:system[@value='http://hl7.org/fhir/sid/ndc']))"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"The CVX (vaccine administered) code system","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-vaccines-cvx"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"v2","map":"RXA-5"},{"identity":"rim","map":".code"},{"identity":"cda","map":"ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacturedMaterial/realmCode/code"},{"identity":"quick","map":"vaccine"},{"identity":"argonaut-dq-dstu2","map":"Immunization.vaccineCode"}]},{"id":"Immunization.patient","path":"Immunization.patient","short":"Who was immunized","definition":"The patient who either received or did not receive the immunization.","alias":["Patient"],"min":1,"max":"1","base":{"path":"Immunization.patient","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":".partipication[ttypeCode=].role"},{"identity":"w5","map":"FiveWs.subject"},{"identity":"quick","map":"subject"},{"identity":"argonaut-dq-dstu2","map":"Immunization.patient"}]},{"id":"Immunization.encounter","path":"Immunization.encounter","short":"Encounter immunization was part of","definition":"The visit or admission or other contact between patient and health care provider the immunization was performed as part of.","min":0,"max":"1","base":{"path":"Immunization.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1-19"},{"identity":"rim","map":"component->EncounterEvent"}]},{"id":"Immunization.occurrence[x]","path":"Immunization.occurrence[x]","short":"Vaccine administration date","definition":"Date vaccine administered or was to be administered.","comment":"When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose.","min":1,"max":"1","base":{"path":"Immunization.occurrence[x]","min":1,"max":"1"},"type":[{"code":"dateTime"},{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"RXA-3"},{"identity":"rim","map":".effectiveTime"},{"identity":"cda","map":"ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/effectiveTime/value"},{"identity":"quick","map":"performanceTime"},{"identity":"argonaut-dq-dstu2","map":"Immunization.date"}]},{"id":"Immunization.recorded","path":"Immunization.recorded","short":"When the immunization was first captured in the subject's record","definition":"The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.","min":0,"max":"1","base":{"path":"Immunization.recorded","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.recorded"},{"identity":"rim","map":".participation[typeCode=AUT].time"}]},{"id":"Immunization.primarySource","path":"Immunization.primarySource","short":"Indicates context the data was recorded in","definition":"An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded.","comment":"Reflects the “reliability” of the content.","min":1,"max":"1","base":{"path":"Immunization.primarySource","min":0,"max":"1"},"type":[{"code":"boolean"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.source"},{"identity":"v2","map":"RXA-9"},{"identity":"rim","map":"immunization.uncertaintycode (if primary source=false, uncertainty=U)"},{"identity":"quick","map":"reported"},{"identity":"argonaut-dq-dstu2","map":"Immunization.reported"}]},{"id":"Immunization.reportOrigin","path":"Immunization.reportOrigin","short":"Indicates the source of a secondarily reported record","definition":"The source of the data when the report of the immunization event is not based on information from the person who administered the vaccine.","comment":"Should not be populated if primarySource = True, not required even if primarySource = False.","min":0,"max":"1","base":{"path":"Immunization.reportOrigin","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ImmunizationReportOrigin"}],"strength":"example","description":"The source of the data for a record which is not from a primary source.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-origin"},"mapping":[{"identity":"w5","map":"FiveWs.source"},{"identity":"v2","map":"RXA-9"},{"identity":"rim","map":".participation[typeCode=INF].role[classCode=PAT] (this syntax for self-reported) .participation[typeCode=INF].role[classCode=LIC] (this syntax for health care professional) .participation[typeCode=INF].role[classCode=PRS] (this syntax for family member)"}]},{"id":"Immunization.location","path":"Immunization.location","short":"Where immunization occurred","definition":"The service delivery location where the vaccine administration occurred.","min":0,"max":"1","base":{"path":"Immunization.location","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Location"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.location"},{"identity":"w5","map":"FiveWs.where[x]"},{"identity":"v2","map":"RXA-27 (or RXA-11, deprecated as of v2.7)"},{"identity":"rim","map":".participation[typeCode=LOC].COCT_MT240000UV"}]},{"id":"Immunization.manufacturer","path":"Immunization.manufacturer","short":"Vaccine manufacturer","definition":"Name of vaccine manufacturer.","min":0,"max":"1","base":{"path":"Immunization.manufacturer","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"RXA-17"},{"identity":"rim","map":".participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=ORG]"},{"identity":"cda","map":"ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacuturerOrganization/name"}]},{"id":"Immunization.lotNumber","path":"Immunization.lotNumber","short":"Vaccine lot number","definition":"Lot number of the vaccine product.","min":0,"max":"1","base":{"path":"Immunization.lotNumber","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"RXA-15"},{"identity":"rim","map":".participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=MMAT].id"},{"identity":"cda","map":"ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacturedMaterial/lotNumberText"}]},{"id":"Immunization.expirationDate","path":"Immunization.expirationDate","short":"Vaccine expiration date","definition":"Date vaccine batch expires.","min":0,"max":"1","base":{"path":"Immunization.expirationDate","min":0,"max":"1"},"type":[{"code":"date"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"RXA-16"},{"identity":"rim","map":".participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=MMAT].expirationTime"}]},{"id":"Immunization.site","path":"Immunization.site","short":"Body site vaccine was administered","definition":"Body site where vaccine was administered.","min":0,"max":"1","base":{"path":"Immunization.site","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ImmunizationSite"}],"strength":"example","description":"The site at which the vaccine was administered.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-site"},"mapping":[{"identity":"v2","map":"RXR-2"},{"identity":"rim","map":"observation.targetSiteCode"},{"identity":"cda","map":"ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/approachSiteCode/code"}]},{"id":"Immunization.route","path":"Immunization.route","short":"How vaccine entered body","definition":"The path by which the vaccine product is taken into the body.","min":0,"max":"1","base":{"path":"Immunization.route","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ImmunizationRoute"}],"strength":"example","description":"The route by which the vaccine was administered.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-route"},"mapping":[{"identity":"v2","map":"RXR-1"},{"identity":"rim","map":".routeCode"},{"identity":"cda","map":"ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/routeCode/code"}]},{"id":"Immunization.doseQuantity","path":"Immunization.doseQuantity","short":"Amount of vaccine administered","definition":"The quantity of vaccine product that was administered.","min":0,"max":"1","base":{"path":"Immunization.doseQuantity","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"RXA-6 / RXA-7"},{"identity":"rim","map":".doseQuantity"}]},{"id":"Immunization.performer","path":"Immunization.performer","short":"Who performed event","definition":"Indicates who performed the immunization event.","min":0,"max":"*","base":{"path":"Immunization.performer","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer"},{"identity":"v2","map":"ORC-12 / RXA-10"},{"identity":"rim","map":".participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]"}]},{"id":"Immunization.performer.id","path":"Immunization.performer.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Immunization.performer.extension","path":"Immunization.performer.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Immunization.performer.modifierExtension","path":"Immunization.performer.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.performer.function","path":"Immunization.performer.function","short":"What type of performance was done","definition":"Describes the type of performance (e.g. ordering provider, administering provider, etc.).","min":0,"max":"1","base":{"path":"Immunization.performer.function","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ImmunizationFunction"}],"strength":"extensible","description":"The role a practitioner or organization plays in the immunization event.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-function"},"mapping":[{"identity":"workflow","map":"Event.performer.function"},{"identity":"rim","map":".participation.functionCode"}]},{"id":"Immunization.performer.actor","path":"Immunization.performer.actor","short":"Individual or organization who was performing","definition":"The practitioner or organization who performed the action.","comment":"When the individual practitioner who performed the action is known, it is best to send.","min":1,"max":"1","base":{"path":"Immunization.performer.actor","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"rim","map":".player"}]},{"id":"Immunization.note","path":"Immunization.note","short":"Additional immunization notes","definition":"Extra information about the immunization that is not conveyed by the other attributes.","min":0,"max":"*","base":{"path":"Immunization.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.note"},{"identity":"v2","map":"OBX-5 : OBX-3 = 48767-8"},{"identity":"rim","map":"note"}]},{"id":"Immunization.reasonCode","path":"Immunization.reasonCode","short":"Why immunization occurred","definition":"Reasons why the vaccine was administered.","min":0,"max":"*","base":{"path":"Immunization.reasonCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ImmunizationReason"}],"strength":"example","description":"The reason why a vaccine was administered.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-reason"},"mapping":[{"identity":"workflow","map":"Event.reasonCode"},{"identity":"rim","map":"[actionNegationInd=false].reasonCode"}]},{"id":"Immunization.reasonReference","path":"Immunization.reasonReference","short":"Why immunization occurred","definition":"Condition, Observation or DiagnosticReport that supports why the immunization was administered.","min":0,"max":"*","base":{"path":"Immunization.reasonReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition","http://hl7.org/fhir/StructureDefinition/Observation","http://hl7.org/fhir/StructureDefinition/DiagnosticReport"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.reasonReference"},{"identity":"rim","map":"N/A"}]},{"id":"Immunization.isSubpotent","path":"Immunization.isSubpotent","short":"Dose potency","definition":"Indication if a dose is considered to be subpotent. By default, a dose should be considered to be potent.","comment":"Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.","min":0,"max":"1","base":{"path":"Immunization.isSubpotent","min":0,"max":"1"},"type":[{"code":"boolean"}],"meaningWhenMissing":"By default, a dose should be considered to be potent.","isModifier":true,"isModifierReason":"This element is labeled as a modifier because an immunization event with a subpotent vaccine doesn't protect the patient the same way as a potent dose.","isSummary":true,"mapping":[{"identity":"v2","map":"RXA-20 = PA (partial administration)"},{"identity":"rim","map":"N/A"}]},{"id":"Immunization.subpotentReason","path":"Immunization.subpotentReason","short":"Reason for being subpotent","definition":"Reason why a dose is considered to be subpotent.","min":0,"max":"*","base":{"path":"Immunization.subpotentReason","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"SubpotentReason"}],"strength":"example","description":"The reason why a dose is considered to be subpotent.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-subpotent-reason"},"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.education","path":"Immunization.education","short":"Educational material presented to patient","definition":"Educational material presented to the patient (or guardian) at the time of vaccine administration.","min":0,"max":"*","base":{"path":"Immunization.education","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"imm-1","severity":"error","human":"One of documentType or reference SHALL be present","expression":"documentType.exists() or reference.exists()","xpath":"exists(f:documentType) or exists(f:reference)"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.education.id","path":"Immunization.education.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Immunization.education.extension","path":"Immunization.education.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Immunization.education.modifierExtension","path":"Immunization.education.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.education.documentType","path":"Immunization.education.documentType","short":"Educational material document identifier","definition":"Identifier of the material presented to the patient.","min":0,"max":"1","base":{"path":"Immunization.education.documentType","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-5 : OBX-3 = 69764-9"},{"identity":"rim","map":"N/A"}]},{"id":"Immunization.education.reference","path":"Immunization.education.reference","short":"Educational material reference pointer","definition":"Reference pointer to the educational material given to the patient if the information was on line.","min":0,"max":"1","base":{"path":"Immunization.education.reference","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.education.publicationDate","path":"Immunization.education.publicationDate","short":"Educational material publication date","definition":"Date the educational material was published.","min":0,"max":"1","base":{"path":"Immunization.education.publicationDate","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-5 : OBX-3 = 29768-9"},{"identity":"rim","map":"N/A"}]},{"id":"Immunization.education.presentationDate","path":"Immunization.education.presentationDate","short":"Educational material presentation date","definition":"Date the educational material was given to the patient.","min":0,"max":"1","base":{"path":"Immunization.education.presentationDate","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-5 : OBX-3 = 29769-7"},{"identity":"rim","map":"N/A"}]},{"id":"Immunization.programEligibility","path":"Immunization.programEligibility","short":"Patient eligibility for a vaccination program","definition":"Indicates a patient's eligibility for a funding program.","min":0,"max":"*","base":{"path":"Immunization.programEligibility","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProgramEligibility"}],"strength":"example","description":"The patient's eligibility for a vaccation program.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-program-eligibility"},"mapping":[{"identity":"v2","map":"OBX-5 : OBX-3 = 64994-7"},{"identity":"rim","map":"N/A"}]},{"id":"Immunization.fundingSource","path":"Immunization.fundingSource","short":"Funding source for the vaccine","definition":"Indicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered).","min":0,"max":"1","base":{"path":"Immunization.fundingSource","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"FundingSource"}],"strength":"example","description":"The source of funding used to purchase the vaccine administered.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-funding-source"},"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.reaction","path":"Immunization.reaction","short":"Details of a reaction that follows immunization","definition":"Categorical data indicating that an adverse event is associated in time to an immunization.","comment":"A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.","min":0,"max":"*","base":{"path":"Immunization.reaction","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"Observation[classCode=obs].code"}]},{"id":"Immunization.reaction.id","path":"Immunization.reaction.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Immunization.reaction.extension","path":"Immunization.reaction.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Immunization.reaction.modifierExtension","path":"Immunization.reaction.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.reaction.date","path":"Immunization.reaction.date","short":"When reaction started","definition":"Date of reaction to the immunization.","min":0,"max":"1","base":{"path":"Immunization.reaction.date","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-14 (ideally this would be reported in an IAM segment, but IAM is not part of the HL7 v2 VXU message - most likely would appear in OBX segments if at all)"},{"identity":"rim","map":".effectiveTime"}]},{"id":"Immunization.reaction.detail","path":"Immunization.reaction.detail","short":"Additional information on reaction","definition":"Details of the reaction.","min":0,"max":"1","base":{"path":"Immunization.reaction.detail","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Observation"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-5"},{"identity":"rim","map":".value"}]},{"id":"Immunization.reaction.reported","path":"Immunization.reaction.reported","short":"Indicates self-reported reaction","definition":"Self-reported indicator.","min":0,"max":"1","base":{"path":"Immunization.reaction.reported","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"(HL7 v2 doesn't seem to provide for this)"},{"identity":"rim","map":".participation[typeCode=INF].role[classCode=PAT] (this syntax for self-reported=true)"}]},{"id":"Immunization.protocolApplied","path":"Immunization.protocolApplied","short":"Protocol followed by the provider","definition":"The protocol (set of recommendations) being followed by the provider who administered the dose.","min":0,"max":"*","base":{"path":"Immunization.protocolApplied","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.protocolApplied.id","path":"Immunization.protocolApplied.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Immunization.protocolApplied.extension","path":"Immunization.protocolApplied.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Immunization.protocolApplied.modifierExtension","path":"Immunization.protocolApplied.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.protocolApplied.series","path":"Immunization.protocolApplied.series","short":"Name of vaccine series","definition":"One possible path to achieve presumed immunity against a disease - within the context of an authority.","min":0,"max":"1","base":{"path":"Immunization.protocolApplied.series","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.protocolApplied.authority","path":"Immunization.protocolApplied.authority","short":"Who is responsible for publishing the recommendations","definition":"Indicates the authority who published the protocol (e.g. ACIP) that is being followed.","min":0,"max":"1","base":{"path":"Immunization.protocolApplied.authority","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.protocolApplied.targetDisease","path":"Immunization.protocolApplied.targetDisease","short":"Vaccine preventatable disease being targetted","definition":"The vaccine preventable disease the dose is being administered against.","min":0,"max":"*","base":{"path":"Immunization.protocolApplied.targetDisease","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"TargetDisease"}],"strength":"example","description":"The vaccine preventable disease the dose is being administered for.","valueSet":"http://hl7.org/fhir/ValueSet/immunization-target-disease"},"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.protocolApplied.doseNumber[x]","path":"Immunization.protocolApplied.doseNumber[x]","short":"Dose number within series","definition":"Nominal position in a series.","comment":"The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).","min":1,"max":"1","base":{"path":"Immunization.protocolApplied.doseNumber[x]","min":1,"max":"1"},"type":[{"code":"positiveInt"},{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Immunization.protocolApplied.seriesDoses[x]","path":"Immunization.protocolApplied.seriesDoses[x]","short":"Recommended number of doses for immunity","definition":"The recommended number of doses to achieve immunity.","comment":"The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).","min":0,"max":"1","base":{"path":"Immunization.protocolApplied.seriesDoses[x]","min":0,"max":"1"},"type":[{"code":"positiveInt"},{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]}]},"differential":{"element":[{"id":"Immunization","path":"Immunization","definition":"The US Core Immunization Profile is based upon the core FHIR Immunization Resource and created to meet the 2015 Edition Common Clinical Data Set 'Immunizations' requirements.","mustSupport":false,"mapping":[{"identity":"quick","map":"ImmunizationPerformanceOccurrence"},{"identity":"quick","map":"ImmunizationPerformanceOccurrence"},{"identity":"argonaut-dq-dstu2","map":"Immunization"}]},{"id":"Immunization.status","path":"Immunization.status","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","description":"Constrained list of immunizaiotn status","valueSet":"http://hl7.org/fhir/ValueSet/immunization-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Immunization.status"}]},{"id":"Immunization.statusReason","path":"Immunization.statusReason","min":0,"max":"1","mustSupport":true,"binding":{"strength":"example","valueSet":"http://hl7.org/fhir/ValueSet/immunization-status-reason"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Immunization.wasNotGiven"}]},{"id":"Immunization.vaccineCode","path":"Immunization.vaccineCode","short":"Vaccine Product Type (bind to CVX)","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"constraint":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true}],"key":"us-core-1","severity":"warning","human":"SHOULD have a translation to the NDC value set","expression":"coding.where(system='http://hl7.org/fhir/sid/ndc').empty()","xpath":"not(exists(f:coding/f:system[@value='http://hl7.org/fhir/sid/ndc']))"}],"mustSupport":true,"binding":{"strength":"extensible","description":"The CVX (vaccine administered) code system","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-vaccines-cvx"},"mapping":[{"identity":"quick","map":"vaccine"},{"identity":"quick","map":"vaccine"},{"identity":"argonaut-dq-dstu2","map":"Immunization.vaccineCode"}]},{"id":"Immunization.patient","path":"Immunization.patient","alias":["Patient"],"min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"quick","map":"subject"},{"identity":"quick","map":"subject"},{"identity":"argonaut-dq-dstu2","map":"Immunization.patient"}]},{"id":"Immunization.occurrence[x]","path":"Immunization.occurrence[x]","min":1,"max":"1","type":[{"code":"dateTime"},{"code":"string"}],"mustSupport":true,"mapping":[{"identity":"quick","map":"performanceTime"},{"identity":"quick","map":"performanceTime"},{"identity":"argonaut-dq-dstu2","map":"Immunization.date"}]},{"id":"Immunization.primarySource","path":"Immunization.primarySource","min":1,"max":"1","type":[{"code":"boolean"}],"mustSupport":true,"mapping":[{"identity":"quick","map":"reported"},{"identity":"quick","map":"reported"},{"identity":"argonaut-dq-dstu2","map":"Immunization.reported"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-implantable-device.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-implantable-device.json new file mode 100644 index 000000000..800be8bf6 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-implantable-device.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-implantable-device","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device","version":"3.0.1","name":"USCoreImplantableDeviceProfile","title":"US Core Implantable Device Profile","status":"active","experimental":false,"date":"2019-08-11T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Device resource for the minimal set of data to query and retrieve a patient's implantable device(s).","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"udi","uri":"http://fda.gov/UDI","name":"UDI Mapping"}],"kind":"resource","abstract":false,"type":"Device","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Device","derivation":"constraint","snapshot":{"element":[{"id":"Device","path":"Device","short":"Item used in healthcare","definition":"The US Core Implantable Device Profile is based upon the core FHIR Device Resource and created to meet the 2015 Edition Common Clinical Data Set 'Unique device identifier(s) for a patient’s implantable device(s)' requirements.","min":0,"max":"*","base":{"path":"Device","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"us-core-9","severity":"error","human":"At least one of the Production Identifiers (UDI-PI) SHALL be present.","expression":"manufactureDate.exists() or expirationDate.exists() or lotNumber.exists() or serialNumber.exists() or distinctIdentifier.exists()","xpath":"f:manufactureDate or f:expirationDate or f:lotNumber or f:serialNumber or f:distinctIdentifier"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"rim","map":"Device"},{"identity":"argonaut-dq-dstu2","map":"Device"}]},{"id":"Device.id","path":"Device.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Device.meta","path":"Device.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Device.implicitRules","path":"Device.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Device.language","path":"Device.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Device.text","path":"Device.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Device.contained","path":"Device.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Device.extension","path":"Device.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Device.modifierExtension","path":"Device.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Device.identifier","path":"Device.identifier","short":"Instance identifier","definition":"Unique instance identifiers assigned to a device by manufacturers other organizations or owners.","comment":"The barcode string from a barcode present on a device label or package may identify the instance, include names given to the device in local usage, or may identify the type of device. If the identifier identifies the type of device, Device.type element should be used.","min":0,"max":"*","base":{"path":"Device.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"rim","map":".id"},{"identity":"udi","map":"The serial number which is a component of the production identifier (PI), a conditional, variable portion of a UDI. The identifier.type code should be set to “SNO”(Serial Number) and the system left empty."}]},{"id":"Device.definition","path":"Device.definition","short":"The reference to the definition for the device","definition":"The reference to the definition for the device.","min":0,"max":"1","base":{"path":"Device.definition","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/DeviceDefinition"]}],"isModifier":false,"isSummary":false},{"id":"Device.udiCarrier","path":"Device.udiCarrier","short":"Unique Device Identifier (UDI) Barcode string","definition":"Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold.","comment":"Some devices may not have UDI information (for example. historical data or patient reported data).","min":1,"max":"1","base":{"path":"Device.udiCarrier","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"rim","map":".id and .code"},{"identity":"argonaut-dq-dstu2","map":"Device.udi"}]},{"id":"Device.udiCarrier.id","path":"Device.udiCarrier.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.udiCarrier.extension","path":"Device.udiCarrier.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.udiCarrier.modifierExtension","path":"Device.udiCarrier.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Device.udiCarrier.deviceIdentifier","path":"Device.udiCarrier.deviceIdentifier","short":"Mandatory fixed portion of UDI","definition":"The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device.","alias":["DI"],"min":1,"max":"1","base":{"path":"Device.udiCarrier.deviceIdentifier","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":"Role.id.extension"},{"identity":"udi","map":"The device identifier (DI), a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device."},{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.udiCarrier.issuer","path":"Device.udiCarrier.issuer","short":"UDI Issuing Organization","definition":"Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include :\n1) GS1: \nhttp://hl7.org/fhir/NamingSystem/gs1-di, \n2) HIBCC:\nhttp://hl7.org/fhir/NamingSystem/hibcc-dI, \n3) ICCBBA for blood containers:\nhttp://hl7.org/fhir/NamingSystem/iccbba-blood-di, \n4) ICCBA for other devices:\nhttp://hl7.org/fhir/NamingSystem/iccbba-other-di.","alias":["Barcode System"],"min":0,"max":"1","base":{"path":"Device.udiCarrier.issuer","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Role.id.root"},{"identity":"udi","map":"All UDIs are to be issued under a system operated by an Jurisdiction-accredited issuing agency.\nGS1 DIs: \n http://hl7.org/fhir/NamingSystem/gs1\nHIBCC DIs:\n http://hl7.org/fhir/NamingSystem/hibcc\nICCBBA DIs for blood containers:\n http://hl7.org/fhir/NamingSystem/iccbba-blood\nICCBA DIs for other devices:\n http://hl7.org/fhir/NamingSystem/iccbba-other"}]},{"id":"Device.udiCarrier.jurisdiction","path":"Device.udiCarrier.jurisdiction","short":"Regional UDI authority","definition":"The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/fda-udi.","requirements":"Allows a recipient of a UDI to know which database will contain the UDI-associated metadata.","min":0,"max":"1","base":{"path":"Device.udiCarrier.jurisdiction","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Role.scoper"}]},{"id":"Device.udiCarrier.carrierAIDC","path":"Device.udiCarrier.carrierAIDC","short":"UDI Machine Readable Barcode String","definition":"The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded.","comment":"The AIDC form of UDIs should be scanned or otherwise used for the identification of the device whenever possible to minimize errors in records resulting from manual transcriptions. If separate barcodes for DI and PI are present, concatenate the string with DI first and in order of human readable expression on label.","alias":["Automatic Identification and Data Capture","UDI","Barcode String"],"min":0,"max":"1","base":{"path":"Device.udiCarrier.carrierAIDC","min":0,"max":"1"},"type":[{"code":"base64Binary"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"Role.id.extension"},{"identity":"udi","map":"A unique device identifier (UDI) on a device label a form that uses automatic identification and data capture (AIDC) technology."},{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.udiCarrier.carrierHRF","path":"Device.udiCarrier.carrierHRF","short":"UDI Human Readable Barcode String","definition":"The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device.","comment":"If separate barcodes for DI and PI are present, concatenate the string with DI first and in order of human readable expression on label.","alias":["Human Readable Form","UDI","Barcode String"],"min":0,"max":"1","base":{"path":"Device.udiCarrier.carrierHRF","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"Role.id.extension"},{"identity":"udi","map":"A unique device identifier (UDI) on a device label in plain text"},{"identity":"argonaut-dq-dstu2","map":"Device.udi"}]},{"id":"Device.udiCarrier.entryType","path":"Device.udiCarrier.entryType","short":"barcode | rfid | manual +","definition":"A coded entry to indicate how the data was entered.","requirements":"Supports a way to distinguish hand entered from machine read data.","min":0,"max":"1","base":{"path":"Device.udiCarrier.entryType","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"UDIEntryType"}],"strength":"required","description":"Codes to identify how UDI data was entered.","valueSet":"http://hl7.org/fhir/ValueSet/udi-entry-type|4.0.0"},"mapping":[{"identity":"rim","map":"NA"}]},{"id":"Device.status","path":"Device.status","short":"active | inactive | entered-in-error | unknown","definition":"Status of the Device availability.","comment":"This element is labeled as a modifier because the status contains the codes inactive and entered-in-error that mark the device (record)as not currently valid.","min":0,"max":"1","base":{"path":"Device.status","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"FHIRDeviceStatus"}],"strength":"required","description":"The availability status of the device.","valueSet":"http://hl7.org/fhir/ValueSet/device-status|4.0.0"},"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":".statusCode"}]},{"id":"Device.statusReason","path":"Device.statusReason","short":"online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off","definition":"Reason for the dtatus of the Device availability.","min":0,"max":"*","base":{"path":"Device.statusReason","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"FHIRDeviceStatusReason"}],"strength":"extensible","description":"The availability status reason of the device.","valueSet":"http://hl7.org/fhir/ValueSet/device-status-reason"},"mapping":[{"identity":"w5","map":"FiveWs.status"}]},{"id":"Device.distinctIdentifier","path":"Device.distinctIdentifier","short":"The distinct identification string","definition":"The distinct identification string as required by regulation for a human cell, tissue, or cellular and tissue-based product.","comment":"For example, this applies to devices in the United States regulated under *Code of Federal Regulation 21CFR§1271.290(c)*.","alias":["Distinct Identification Code (DIC)"],"min":0,"max":"1","base":{"path":"Device.distinctIdentifier","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".lotNumberText"},{"identity":"udi","map":"The lot or batch number within which a device was manufactured - which is a component of the production identifier (PI), a conditional, variable portion of a UDI."},{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.manufacturer","path":"Device.manufacturer","short":"Name of device manufacturer","definition":"A name of the manufacturer.","min":0,"max":"1","base":{"path":"Device.manufacturer","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".playedRole[typeCode=MANU].scoper.name"},{"identity":"udi","map":"N/A"}]},{"id":"Device.manufactureDate","path":"Device.manufactureDate","short":"Date when the device was made","definition":"The date and time when the device was manufactured.","min":0,"max":"1","base":{"path":"Device.manufactureDate","min":0,"max":"1"},"type":[{"code":"dateTime"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".existenceTime.low"},{"identity":"udi","map":"The date a specific device was manufactured - which is a component of the production identifier (PI), a conditional, variable portion of a UDI. For FHIR, The datetime syntax must converted to YYYY-MM-DD[THH:MM:SS]. If hour is present, the minutes and seconds should both be set to “00”."},{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.expirationDate","path":"Device.expirationDate","short":"Date and time of expiry of this device (if applicable)","definition":"The date and time beyond which this device is no longer valid or should not be used (if applicable).","min":0,"max":"1","base":{"path":"Device.expirationDate","min":0,"max":"1"},"type":[{"code":"dateTime"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".expirationTime"},{"identity":"udi","map":"the expiration date of a specific device - which is a component of the production identifier (PI), a conditional, variable portion of a UDI. For FHIR, The datetime syntax must converted to YYYY-MM-DD[THH:MM:SS]. If hour is present, the minutes and seconds should both be set to “00”."},{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.lotNumber","path":"Device.lotNumber","short":"Lot number of manufacture","definition":"Lot number assigned by the manufacturer.","min":0,"max":"1","base":{"path":"Device.lotNumber","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".lotNumberText"},{"identity":"udi","map":"The lot or batch number within which a device was manufactured - which is a component of the production identifier (PI), a conditional, variable portion of a UDI."},{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.serialNumber","path":"Device.serialNumber","short":"Serial number assigned by the manufacturer","definition":"The serial number assigned by the organization when the device was manufactured.","comment":"Alphanumeric Maximum 20.","min":0,"max":"1","base":{"path":"Device.serialNumber","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".playedRole[typeCode=MANU].id"},{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.deviceName","path":"Device.deviceName","short":"The name of the device as given by the manufacturer","definition":"This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition.","min":0,"max":"*","base":{"path":"Device.deviceName","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false},{"id":"Device.deviceName.id","path":"Device.deviceName.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.deviceName.extension","path":"Device.deviceName.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.deviceName.modifierExtension","path":"Device.deviceName.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Device.deviceName.name","path":"Device.deviceName.name","short":"The name of the device","definition":"The name of the device.","alias":["Σ"],"min":1,"max":"1","base":{"path":"Device.deviceName.name","min":1,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false},{"id":"Device.deviceName.type","path":"Device.deviceName.type","short":"udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other","definition":"The type of deviceName.\nUDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName.","min":1,"max":"1","base":{"path":"Device.deviceName.type","min":1,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DeviceNameType"}],"strength":"required","description":"The type of name the device is referred by.","valueSet":"http://hl7.org/fhir/ValueSet/device-nametype|4.0.0"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".playedRole[typeCode=MANU].code"}]},{"id":"Device.modelNumber","path":"Device.modelNumber","short":"The model number for the device","definition":"The model number for the device.","min":0,"max":"1","base":{"path":"Device.modelNumber","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".softwareName (included as part)"}]},{"id":"Device.partNumber","path":"Device.partNumber","short":"The part number of the device","definition":"The part number of the device.","comment":"Alphanumeric Maximum 20.","min":0,"max":"1","base":{"path":"Device.partNumber","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":".playedRole[typeCode=MANU].id"}]},{"id":"Device.type","path":"Device.type","short":"The kind or type of device","definition":"The kind or type of device.","min":1,"max":"1","base":{"path":"Device.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"strength":"extensible","description":"Codes to identify medical devices","valueSet":"http://hl7.org/fhir/ValueSet/device-kind"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Device.type"}]},{"id":"Device.specialization","path":"Device.specialization","short":"The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication","definition":"The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication.","min":0,"max":"*","base":{"path":"Device.specialization","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false},{"id":"Device.specialization.id","path":"Device.specialization.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.specialization.extension","path":"Device.specialization.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.specialization.modifierExtension","path":"Device.specialization.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Device.specialization.systemType","path":"Device.specialization.systemType","short":"The standard that is used to operate and communicate","definition":"The standard that is used to operate and communicate.","alias":["Σ"],"min":1,"max":"1","base":{"path":"Device.specialization.systemType","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false},{"id":"Device.specialization.version","path":"Device.specialization.version","short":"The version of the standard that is used to operate and communicate","definition":"The version of the standard that is used to operate and communicate.","min":0,"max":"1","base":{"path":"Device.specialization.version","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"}]},{"id":"Device.version","path":"Device.version","short":"The actual design of the device or software version running on the device","definition":"The actual design of the device or software version running on the device.","min":0,"max":"*","base":{"path":"Device.version","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false},{"id":"Device.version.id","path":"Device.version.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.version.extension","path":"Device.version.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.version.modifierExtension","path":"Device.version.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Device.version.type","path":"Device.version.type","short":"The type of the device version","definition":"The type of the device version.","alias":["Σ"],"min":0,"max":"1","base":{"path":"Device.version.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false},{"id":"Device.version.component","path":"Device.version.component","short":"A single component of the device version","definition":"A single component of the device version.","min":0,"max":"1","base":{"path":"Device.version.component","min":0,"max":"1"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"}]},{"id":"Device.version.value","path":"Device.version.value","short":"The version text","definition":"The version text.","min":1,"max":"1","base":{"path":"Device.version.value","min":1,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false},{"id":"Device.property","path":"Device.property","short":"The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties","definition":"The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties.","min":0,"max":"*","base":{"path":"Device.property","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false},{"id":"Device.property.id","path":"Device.property.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.property.extension","path":"Device.property.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Device.property.modifierExtension","path":"Device.property.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Device.property.type","path":"Device.property.type","short":"Code that specifies the property DeviceDefinitionPropetyCode (Extensible)","definition":"Code that specifies the property DeviceDefinitionPropetyCode (Extensible).","min":1,"max":"1","base":{"path":"Device.property.type","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false},{"id":"Device.property.valueQuantity","path":"Device.property.valueQuantity","short":"Property value as a quantity","definition":"Property value as a quantity.","min":0,"max":"*","base":{"path":"Device.property.valueQuantity","min":0,"max":"*"},"type":[{"code":"Quantity"}],"isModifier":false,"isSummary":false},{"id":"Device.property.valueCode","path":"Device.property.valueCode","short":"Property value as a code, e.g., NTP4 (synced to NTP)","definition":"Property value as a code, e.g., NTP4 (synced to NTP).","min":0,"max":"*","base":{"path":"Device.property.valueCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false},{"id":"Device.patient","path":"Device.patient","short":"Patient to whom Device is affixed","definition":"Patient information, If the device is affixed to a person.","requirements":"If the device is implanted in a patient, then need to associate the device to the patient.","min":1,"max":"1","base":{"path":"Device.patient","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"rim","map":".playedRole[typeCode=USED].scoper.playedRole[typeCode=PAT]"},{"identity":"w5","map":"FiveWs.subject"},{"identity":"argonaut-dq-dstu2","map":"Device.patient"}]},{"id":"Device.owner","path":"Device.owner","short":"Organization responsible for device","definition":"An organization that is responsible for the provision and ongoing maintenance of the device.","min":0,"max":"1","base":{"path":"Device.owner","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.source"},{"identity":"rim","map":".playedRole[typeCode=OWN].scoper"}]},{"id":"Device.contact","path":"Device.contact","short":"Details for human/organization for support","definition":"Contact details for an organization or a particular human that is responsible for the device.","comment":"used for troubleshooting etc.","min":0,"max":"*","base":{"path":"Device.contact","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.source"},{"identity":"rim","map":".scopedRole[typeCode=CON].player"}]},{"id":"Device.location","path":"Device.location","short":"Where the device is found","definition":"The place where the device can be found.","requirements":"Device.location can be used to track device location.","min":0,"max":"1","base":{"path":"Device.location","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Location"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.where[x]"},{"identity":"rim","map":".playedRole[typeCode=LOCE].scoper"}]},{"id":"Device.url","path":"Device.url","short":"Network address to contact device","definition":"A network address on which the device may be contacted directly.","comment":"If the device is running a FHIR server, the network address should be the Base URL from which a conformance statement may be retrieved.","min":0,"max":"1","base":{"path":"Device.url","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.where[x]"},{"identity":"rim","map":".telecom"}]},{"id":"Device.note","path":"Device.note","short":"Device notes and comments","definition":"Descriptive information, usage information or implantation information that is not captured in an existing element.","min":0,"max":"*","base":{"path":"Device.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".text"}]},{"id":"Device.safety","path":"Device.safety","short":"Safety Characteristics of Device","definition":"Provides additional safety characteristics about a medical device. For example devices containing latex.","min":0,"max":"*","base":{"path":"Device.safety","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"NA"}]},{"id":"Device.parent","path":"Device.parent","short":"The parent device","definition":"The parent device.","min":0,"max":"1","base":{"path":"Device.parent","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Device"]}],"isModifier":false,"isSummary":false}]},"differential":{"element":[{"id":"Device","path":"Device","definition":"The US Core Implantable Device Profile is based upon the core FHIR Device Resource and created to meet the 2015 Edition Common Clinical Data Set 'Unique device identifier(s) for a patient’s implantable device(s)' requirements.","constraint":[{"key":"us-core-9","severity":"error","human":"At least one of the Production Identifiers (UDI-PI) SHALL be present.","expression":"manufactureDate.exists() or expirationDate.exists() or lotNumber.exists() or serialNumber.exists() or distinctIdentifier.exists()","xpath":"f:manufactureDate or f:expirationDate or f:lotNumber or f:serialNumber or f:distinctIdentifier"}],"mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Device"}]},{"id":"Device.udiCarrier","path":"Device.udiCarrier","comment":"Some devices may not have UDI information (for example. historical data or patient reported data).","min":1,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Device.udi"}]},{"id":"Device.udiCarrier.deviceIdentifier","path":"Device.udiCarrier.deviceIdentifier","alias":["DI"],"min":1,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.udiCarrier.carrierAIDC","path":"Device.udiCarrier.carrierAIDC","alias":["UDI","Barcode String"],"min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.udiCarrier.carrierHRF","path":"Device.udiCarrier.carrierHRF","alias":["UDI","Barcode String"],"min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Device.udi"}]},{"id":"Device.distinctIdentifier","path":"Device.distinctIdentifier","min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.manufactureDate","path":"Device.manufactureDate","min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.expirationDate","path":"Device.expirationDate","min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.lotNumber","path":"Device.lotNumber","min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.serialNumber","path":"Device.serialNumber","min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA (not Supported)"}]},{"id":"Device.type","path":"Device.type","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Codes to identify medical devices","valueSet":"http://hl7.org/fhir/ValueSet/device-kind"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Device.type"}]},{"id":"Device.patient","path":"Device.patient","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Device.patient"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-location.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-location.json new file mode 100644 index 000000000..021301fe6 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-location.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-location","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-location","name":"USCoreLocation","title":"US Core Location Profile","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines basic constraints and extensions on the Location resource for use with other US Core resources","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"servd","uri":"http://www.omg.org/spec/ServD/1.0/","name":"ServD"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"}],"kind":"resource","abstract":false,"type":"Location","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Location","derivation":"constraint","snapshot":{"element":[{"id":"Location","path":"Location","short":"Details and position information for a physical place","definition":"Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained, or accommodated.","min":0,"max":"*","base":{"path":"Location","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"rim","map":".Role[classCode=SDLC]"},{"identity":"servd","map":"Organization"}]},{"id":"Location.id","path":"Location.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Location.meta","path":"Location.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Location.implicitRules","path":"Location.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Location.language","path":"Location.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Location.text","path":"Location.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Location.contained","path":"Location.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Location.extension","path":"Location.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Location.modifierExtension","path":"Location.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Location.identifier","path":"Location.identifier","short":"Unique code or number identifying the location to its users","definition":"Unique code or number identifying the location to its users.","requirements":"Organization label locations in registries, need to keep track of those.","min":0,"max":"*","base":{"path":"Location.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"rim","map":".id"}]},{"id":"Location.status","path":"Location.status","short":"active | suspended | inactive","definition":"The status property covers the general availability of the resource, not the current value which may be covered by the operationStatus, or by a schedule/slots if they are configured for the location.","min":0,"max":"1","base":{"path":"Location.status","min":0,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"LocationStatus"}],"strength":"required","description":"Indicates whether the location is still in use.","valueSet":"http://hl7.org/fhir/ValueSet/location-status|4.0.0"},"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":".statusCode"}]},{"id":"Location.operationalStatus","path":"Location.operationalStatus","short":"The operational status of the location (typically only for a bed/room)","definition":"The operational status covers operation values most relevant to beds (but can also apply to rooms/units/chairs/etc. such as an isolation unit/dialysis chair). This typically covers concepts such as contamination, housekeeping, and other activities like maintenance.","min":0,"max":"1","base":{"path":"Location.operationalStatus","min":0,"max":"1"},"type":[{"code":"Coding"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"OperationalStatus"}],"strength":"preferred","description":"The operational status if the location (where typically a bed/room).","valueSet":"http://terminology.hl7.org/ValueSet/v2-0116"},"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":"n/a"}]},{"id":"Location.name","path":"Location.name","short":"Name of the location as used by humans","definition":"Name of the location as used by humans. Does not need to be unique.","comment":"If the name of a location changes, consider putting the old name in the alias column so that it can still be located through searches.","min":1,"max":"1","base":{"path":"Location.name","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".name"},{"identity":"servd","map":"./PrimaryAddress and ./OtherAddresses"}]},{"id":"Location.alias","path":"Location.alias","short":"A list of alternate names that the location is known as, or was known as, in the past","definition":"A list of alternate names that the location is known as, or was known as, in the past.","comment":"There are no dates associated with the alias/historic names, as this is not intended to track when names were used, but to assist in searching so that older names can still result in identifying the location.","requirements":"Over time locations and organizations go through many changes and can be known by different names.\n\nFor searching knowing previous names that the location was known by can be very useful.","min":0,"max":"*","base":{"path":"Location.alias","min":0,"max":"*"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".name"}]},{"id":"Location.description","path":"Location.description","short":"Additional details about the location that could be displayed as further information to identify the location beyond its name","definition":"Description of the Location, which helps in finding or referencing the place.","requirements":"Humans need additional information to verify a correct location has been identified.","min":0,"max":"1","base":{"path":"Location.description","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".playingEntity[classCode=PLC determinerCode=INSTANCE].desc"}]},{"id":"Location.mode","path":"Location.mode","short":"instance | kind","definition":"Indicates whether a resource instance represents a specific location or a class of locations.","comment":"This is labeled as a modifier because whether or not the location is a class of locations changes how it can be used and understood.","requirements":"When using a Location resource for scheduling or orders, we need to be able to refer to a class of Locations instead of a specific Location.","min":0,"max":"1","base":{"path":"Location.mode","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"LocationMode"}],"strength":"required","description":"Indicates whether a resource instance represents a specific location or a class of locations.","valueSet":"http://hl7.org/fhir/ValueSet/location-mode|4.0.0"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".playingEntity[classCode=PLC].determinerCode"}]},{"id":"Location.type","path":"Location.type","short":"Type of function performed","definition":"Indicates the type of function performed at the location.","min":0,"max":"*","base":{"path":"Location.type","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"LocationType"}],"strength":"extensible","description":"Indicates the type of function performed at the location.","valueSet":"http://terminology.hl7.org/ValueSet/v3-ServiceDeliveryLocationRoleType"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".code"}]},{"id":"Location.telecom","path":"Location.telecom","short":"Contact details of the location","definition":"The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites.","min":0,"max":"*","base":{"path":"Location.telecom","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".telecom"}]},{"id":"Location.address","path":"Location.address","short":"Physical location","definition":"Physical location.","comment":"Additional addresses should be recorded using another instance of the Location resource, or via the Organization.","requirements":"If locations can be visited, we need to keep track of their address.","min":0,"max":"1","base":{"path":"Location.address","min":0,"max":"1"},"type":[{"code":"Address"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".addr"},{"identity":"servd","map":"n/a"}]},{"id":"Location.address.id","path":"Location.address.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Location.address.extension","path":"Location.address.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Location.address.use","path":"Location.address.use","short":"home | work | temp | old | billing - purpose of this address","definition":"The purpose of this address.","comment":"Applications can assume that an address is current unless it explicitly says that it is temporary or old.","requirements":"Allows an appropriate address to be chosen from a list of many.","min":0,"max":"1","base":{"path":"Address.use","min":0,"max":"1"},"type":[{"code":"code"}],"example":[{"label":"General","valueCode":"home"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old address etc.for a current/permanent one","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AddressUse"}],"strength":"required","description":"The use of an address.","valueSet":"http://hl7.org/fhir/ValueSet/address-use|4.0.0"},"mapping":[{"identity":"v2","map":"XAD.7"},{"identity":"rim","map":"unique(./use)"},{"identity":"servd","map":"./AddressPurpose"}]},{"id":"Location.address.type","path":"Location.address.type","short":"postal | physical | both","definition":"Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.","comment":"The definition of Address states that \"address is intended to describe postal addresses, not physical locations\". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the [Location](http://hl7.org/fhir/R4/location.html#) resource).","min":0,"max":"1","base":{"path":"Address.type","min":0,"max":"1"},"type":[{"code":"code"}],"example":[{"label":"General","valueCode":"both"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AddressType"}],"strength":"required","description":"The type of an address (physical / postal).","valueSet":"http://hl7.org/fhir/ValueSet/address-type|4.0.0"},"mapping":[{"identity":"v2","map":"XAD.18"},{"identity":"rim","map":"unique(./use)"},{"identity":"vcard","map":"address type parameter"}]},{"id":"Location.address.text","path":"Location.address.text","short":"Text representation of the address","definition":"Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.","comment":"Can provide both a text representation and parts. Applications updating an address SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.","requirements":"A renderable, unencoded form.","min":0,"max":"1","base":{"path":"Address.text","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"137 Nowhere Street, Erewhon 9132"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6"},{"identity":"rim","map":"./formatted"},{"identity":"vcard","map":"address label parameter"}]},{"id":"Location.address.line","path":"Location.address.line","short":"Street name, number, direction & P.O. Box etc.","definition":"This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.","min":0,"max":"*","base":{"path":"Address.line","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"The order in which lines should appear in an address label","example":[{"label":"General","valueString":"137 Nowhere Street"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.1 + XAD.2 (note: XAD.1 and XAD.2 have different meanings for a company address than for a person address)"},{"identity":"rim","map":"AD.part[parttype = AL]"},{"identity":"vcard","map":"street"},{"identity":"servd","map":"./StreetAddress (newline delimitted)"}]},{"id":"Location.address.city","path":"Location.address.city","short":"Name of city, town etc.","definition":"The name of the city, town, suburb, village or other community or delivery center.","alias":["Municpality"],"min":0,"max":"1","base":{"path":"Address.city","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"Erewhon"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.3"},{"identity":"rim","map":"AD.part[parttype = CTY]"},{"identity":"vcard","map":"locality"},{"identity":"servd","map":"./Jurisdiction"}]},{"id":"Location.address.district","path":"Location.address.district","short":"District name (aka county)","definition":"The name of the administrative area (county).","comment":"District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.","alias":["County"],"min":0,"max":"1","base":{"path":"Address.district","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"Madison"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.9"},{"identity":"rim","map":"AD.part[parttype = CNT | CPA]"}]},{"id":"Location.address.state","path":"Location.address.state","short":"Sub-unit of country (abbreviations ok)","definition":"Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).","alias":["Province","Territory"],"min":0,"max":"1","base":{"path":"Address.state","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Two letter USPS alphabetic codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state"},"mapping":[{"identity":"v2","map":"XAD.4"},{"identity":"rim","map":"AD.part[parttype = STA]"},{"identity":"vcard","map":"region"},{"identity":"servd","map":"./Region"},{"identity":"servd","map":"./Sites"}]},{"id":"Location.address.postalCode","path":"Location.address.postalCode","short":"US Zip Codes","definition":"A postal code designating a region defined by the postal service.","alias":["Zip"],"min":0,"max":"1","base":{"path":"Address.postalCode","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"9132"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.5"},{"identity":"rim","map":"AD.part[parttype = ZIP]"},{"identity":"vcard","map":"code"},{"identity":"servd","map":"./PostalIdentificationCode"}]},{"id":"Location.address.country","path":"Location.address.country","short":"Country (e.g. can be ISO 3166 2 or 3 letter code)","definition":"Country - a nation as commonly understood or generally accepted.","comment":"ISO 3166 3 letter codes can be used in place of a human readable country name.","min":0,"max":"1","base":{"path":"Address.country","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.6"},{"identity":"rim","map":"AD.part[parttype = CNT]"},{"identity":"vcard","map":"country"},{"identity":"servd","map":"./Country"}]},{"id":"Location.address.period","path":"Location.address.period","short":"Time period when address was/is in use","definition":"Time period when address was/is in use.","requirements":"Allows addresses to be placed in historical context.","min":0,"max":"1","base":{"path":"Address.period","min":0,"max":"1"},"type":[{"code":"Period"}],"example":[{"label":"General","valuePeriod":{"start":"2010-03-23T00:00:00+00:00","end":"2010-07-01T00:00:00+00:00"}}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.12 / XAD.13 + XAD.14"},{"identity":"rim","map":"./usablePeriod[type=\"IVL\"]"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Location.physicalType","path":"Location.physicalType","short":"Physical form of the location","definition":"Physical form of the location, e.g. building, room, vehicle, road.","requirements":"For purposes of showing relevant locations in queries, we need to categorize locations.","min":0,"max":"1","base":{"path":"Location.physicalType","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"PhysicalType"}],"strength":"example","description":"Physical form of the location.","valueSet":"http://hl7.org/fhir/ValueSet/location-physical-type"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".playingEntity [classCode=PLC].code"}]},{"id":"Location.position","path":"Location.position","short":"The absolute geographic location","definition":"The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).","requirements":"For mobile applications and automated route-finding knowing the exact location of the Location is required.","min":0,"max":"1","base":{"path":"Location.position","min":0,"max":"1"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".playingEntity [classCode=PLC determinerCode=INSTANCE].positionText"}]},{"id":"Location.position.id","path":"Location.position.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Location.position.extension","path":"Location.position.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Location.position.modifierExtension","path":"Location.position.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Location.position.longitude","path":"Location.position.longitude","short":"Longitude with WGS84 datum","definition":"Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).","min":1,"max":"1","base":{"path":"Location.position.longitude","min":1,"max":"1"},"type":[{"code":"decimal"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"(RIM Opted not to map the sub-elements of GPS location, is now an OBS)"}]},{"id":"Location.position.latitude","path":"Location.position.latitude","short":"Latitude with WGS84 datum","definition":"Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).","min":1,"max":"1","base":{"path":"Location.position.latitude","min":1,"max":"1"},"type":[{"code":"decimal"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"(RIM Opted not to map the sub-elements of GPS location, is now an OBS)"}]},{"id":"Location.position.altitude","path":"Location.position.altitude","short":"Altitude with WGS84 datum","definition":"Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below).","min":0,"max":"1","base":{"path":"Location.position.altitude","min":0,"max":"1"},"type":[{"code":"decimal"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"(RIM Opted not to map the sub-elements of GPS location, is now an OBS)"}]},{"id":"Location.managingOrganization","path":"Location.managingOrganization","short":"Organization responsible for provisioning and upkeep","definition":"The organization responsible for the provisioning and upkeep of the location.","comment":"This can also be used as the part of the organization hierarchy where this location provides services. These services can be defined through the HealthcareService resource.","requirements":"Need to know who manages the location.","min":0,"max":"1","base":{"path":"Location.managingOrganization","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".scopingEntity[classCode=ORG determinerKind=INSTANCE]"}]},{"id":"Location.partOf","path":"Location.partOf","short":"Another Location this one is physically a part of","definition":"Another Location of which this Location is physically a part of.","requirements":"For purposes of location, display and identification, knowing which locations are located within other locations is important.","min":0,"max":"1","base":{"path":"Location.partOf","min":0,"max":"1"},"type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy","valueBoolean":true}],"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Location"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".inboundLink[typeCode=PART].source[classCode=SDLC]"}]},{"id":"Location.hoursOfOperation","path":"Location.hoursOfOperation","short":"What days/times during a week is this location usually open","definition":"What days/times during a week is this location usually open.","comment":"This type of information is commonly found published in directories and on websites informing customers when the facility is available.\n\nSpecific services within the location may have their own hours which could be shorter (or longer) than the locations hours.","min":0,"max":"*","base":{"path":"Location.hoursOfOperation","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"Location.hoursOfOperation.id","path":"Location.hoursOfOperation.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Location.hoursOfOperation.extension","path":"Location.hoursOfOperation.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Location.hoursOfOperation.modifierExtension","path":"Location.hoursOfOperation.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Location.hoursOfOperation.daysOfWeek","path":"Location.hoursOfOperation.daysOfWeek","short":"mon | tue | wed | thu | fri | sat | sun","definition":"Indicates which days of the week are available between the start and end Times.","min":0,"max":"*","base":{"path":"Location.hoursOfOperation.daysOfWeek","min":0,"max":"*"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DaysOfWeek"}],"strength":"required","description":"The days of the week.","valueSet":"http://hl7.org/fhir/ValueSet/days-of-week|4.0.0"},"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"Location.hoursOfOperation.allDay","path":"Location.hoursOfOperation.allDay","short":"The Location is open all day","definition":"The Location is open all day.","min":0,"max":"1","base":{"path":"Location.hoursOfOperation.allDay","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"Location.hoursOfOperation.openingTime","path":"Location.hoursOfOperation.openingTime","short":"Time that the Location opens","definition":"Time that the Location opens.","min":0,"max":"1","base":{"path":"Location.hoursOfOperation.openingTime","min":0,"max":"1"},"type":[{"code":"time"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"Location.hoursOfOperation.closingTime","path":"Location.hoursOfOperation.closingTime","short":"Time that the Location closes","definition":"Time that the Location closes.","min":0,"max":"1","base":{"path":"Location.hoursOfOperation.closingTime","min":0,"max":"1"},"type":[{"code":"time"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"Location.availabilityExceptions","path":"Location.availabilityExceptions","short":"Description of availability exceptions","definition":"A description of when the locations opening ours are different to normal, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as detailed in the opening hours Times.","min":0,"max":"1","base":{"path":"Location.availabilityExceptions","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Location.endpoint","path":"Location.endpoint","short":"Technical endpoints providing access to services operated for the location","definition":"Technical endpoints providing access to services operated for the location.","requirements":"Organizations may have different systems at different locations that provide various services and need to be able to define the technical connection details for how to connect to them, and for what purpose.","min":0,"max":"*","base":{"path":"Location.endpoint","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Endpoint"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]}]},"differential":{"element":[{"id":"Location","path":"Location","mustSupport":false,"mapping":[{"identity":"servd","map":"Organization"}]},{"id":"Location.status","path":"Location.status","min":0,"max":"1","type":[{"code":"code"}],"mustSupport":true},{"id":"Location.name","path":"Location.name","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true,"mapping":[{"identity":"servd","map":"./PrimaryAddress and ./OtherAddresses"}]},{"id":"Location.telecom","path":"Location.telecom","min":0,"max":"*","type":[{"code":"ContactPoint"}],"mustSupport":true},{"id":"Location.address","path":"Location.address","min":0,"max":"1","type":[{"code":"Address"}],"mustSupport":true,"mapping":[{"identity":"servd","map":"n/a"}]},{"id":"Location.address.line","path":"Location.address.line","min":0,"max":"*","type":[{"code":"string"}],"mustSupport":true},{"id":"Location.address.city","path":"Location.address.city","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Location.address.state","path":"Location.address.state","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Two letter USPS alphabetic codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state"},"mapping":[{"identity":"servd","map":"./Sites"}]},{"id":"Location.address.postalCode","path":"Location.address.postalCode","short":"US Zip Codes","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Location.managingOrganization","path":"Location.managingOrganization","min":0,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-medication.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-medication.json new file mode 100644 index 000000000..4a7ae13a9 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-medication.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-medication","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication","version":"3.0.1","name":"USCoreMedicationProfile","title":"US Core Medication Profile","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Medication resource for the minimal set of data to query and retrieve patient retrieving patient's medication information.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"script10.6","uri":"http://ncpdp.org/SCRIPT10_6","name":"Mapping to NCPDP SCRIPT 10.6"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"}],"kind":"resource","abstract":false,"type":"Medication","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Medication","derivation":"constraint","snapshot":{"element":[{"id":"Medication","path":"Medication","short":"Definition of a Medication","definition":"The US Core Medication Profile is based upon the core FHIR Medication Resource and created to meet the 2015 Edition Common Clinical Data Set 'Medications' requirements.","min":0,"max":"*","base":{"path":"Medication","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"script10.6","map":"NewRx/MedicationPrescribed\r-or-\rRxFill/MedicationDispensed\r-or-\rRxHistoryResponse/MedicationDispensed\r-or-\rRxHistoryResponse/MedicationPrescribed"},{"identity":"rim","map":"ManufacturedProduct[classCode=ADMM]"},{"identity":"argonaut-dq-dstu2","map":"Medication"}]},{"id":"Medication.id","path":"Medication.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Medication.meta","path":"Medication.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Medication.implicitRules","path":"Medication.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Medication.language","path":"Medication.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Medication.text","path":"Medication.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Medication.contained","path":"Medication.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Medication.extension","path":"Medication.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Medication.modifierExtension","path":"Medication.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Medication.identifier","path":"Medication.identifier","short":"Business identifier for this medication","definition":"Business identifier for this medication.","comment":"The serial number could be included as an identifier.","min":0,"max":"*","base":{"path":"Medication.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"rim","map":".id"}]},{"id":"Medication.code","path":"Medication.code","short":"Codes that identify this medication","definition":"A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.","comment":"Depending on the context of use, the code that was actually selected by the user (prescriber, dispenser, etc.) will have the coding.userSelected set to true. As described in the coding datatype: \"A coding may be marked as a \"userSelected\" if a user selected the particular coded value in a user interface (e.g. the user selects an item in a pick-list). If a user selected coding exists, it is the preferred choice for performing translations etc. Other codes can only be literal translations to alternative code systems, or codes at a lower level of granularity (e.g. a generic code for a vendor-specific primary one).","min":1,"max":"1","base":{"path":"Medication.code","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Prescribable medications","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-medication-codes"},"mapping":[{"identity":"script10.6","map":"coding.code = //element(*,MedicationType)/DrugCoded/ProductCode\r\rcoding.system = //element(*,MedicationType)/DrugCoded/ProductCodeQualifier\r\rcoding.display = //element(*,MedicationType)/DrugDescription"},{"identity":"w5","map":"FiveWs.class"},{"identity":"v2","map":"RXO-1.1-Requested Give Code.code / RXE-2.1-Give Code.code / RXD-2.1-Dispense/Give Code.code / RXG-4.1-Give Code.code /RXA-5.1-Administered Code.code / RXC-2.1 Component Code"},{"identity":"rim","map":".code"},{"identity":"argonaut-dq-dstu2","map":"Medication.code"}]},{"id":"Medication.status","path":"Medication.status","short":"active | inactive | entered-in-error","definition":"A code to indicate if the medication is in active use.","comment":"This status is intended to identify if the medication in a local system is in active use within a drug database or inventory. For example, a pharmacy system may create a new drug file record for a compounded product \"ABC Hospital Special Cream\" with an active status. At some point in the future, it may be determined that the drug record was created with an error and the status is changed to \"entered in error\". This status is not intended to specify if a medication is part of a particular formulary. It is possible that the drug record may be referenced by multiple formularies or catalogues and each of those entries would have a separate status.","min":0,"max":"1","base":{"path":"Medication.status","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This element changes the interpretation of all descriptive attributes.","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationStatus"}],"strength":"required","description":"A coded concept defining if the medication is in active use.","valueSet":"http://hl7.org/fhir/ValueSet/medication-status|4.0.0"},"mapping":[{"identity":"rim","map":".statusCode"}]},{"id":"Medication.manufacturer","path":"Medication.manufacturer","short":"Manufacturer of the item","definition":"Describes the details of the manufacturer of the medication product. This is not intended to represent the distributor of a medication product.","min":0,"max":"1","base":{"path":"Medication.manufacturer","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"script10.6","map":"no mapping"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"RXD-20-Substance Manufacturer Name / RXG-21-Substance Manufacturer Name / RXA-17-Substance Manufacturer Name"},{"identity":"rim","map":".player.scopingRole[typeCode=MANU].scoper"}]},{"id":"Medication.form","path":"Medication.form","short":"powder | tablets | capsule +","definition":"Describes the form of the item. Powder; tablets; capsule.","comment":"When Medication is referenced from MedicationRequest, this is the ordered form. When Medication is referenced within MedicationDispense, this is the dispensed form. When Medication is referenced within MedicationAdministration, this is administered form.","min":0,"max":"1","base":{"path":"Medication.form","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationForm"}],"strength":"example","description":"A coded concept defining the form of a medication.","valueSet":"http://hl7.org/fhir/ValueSet/medication-form-codes"},"mapping":[{"identity":"script10.6","map":"coding.code = //element(*,DrugCodedType)/FormCode\r\rcoding.system = //element(*,DrugCodedType)/FormSourceCode"},{"identity":"v2","map":"RXO-5-Requested Dosage Form / RXE-6-Give Dosage Form / RXD-6-Actual Dosage Form / RXG-8-Give Dosage Form / RXA-8-Administered Dosage Form"},{"identity":"rim","map":".formCode"}]},{"id":"Medication.amount","path":"Medication.amount","short":"Amount of drug in package","definition":"Specific amount of the drug in the packaged product. For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).","min":0,"max":"1","base":{"path":"Medication.amount","min":0,"max":"1"},"type":[{"code":"Ratio"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".quantity"}]},{"id":"Medication.ingredient","path":"Medication.ingredient","short":"Active or inactive ingredient","definition":"Identifies a particular constituent of interest in the product.","comment":"The ingredients need not be a complete list. If an ingredient is not specified, this does not indicate whether an ingredient is present or absent. If an ingredient is specified it does not mean that all ingredients are specified. It is possible to specify both inactive and active ingredients.","min":0,"max":"*","base":{"path":"Medication.ingredient","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".scopesRole[typeCode=INGR]"}]},{"id":"Medication.ingredient.id","path":"Medication.ingredient.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Medication.ingredient.extension","path":"Medication.ingredient.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Medication.ingredient.modifierExtension","path":"Medication.ingredient.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Medication.ingredient.item[x]","path":"Medication.ingredient.item[x]","short":"The actual ingredient or content","definition":"The actual ingredient - either a substance (simple ingredient) or another medication of a medication.","requirements":"The ingredient may reference a substance (for example, amoxicillin) or another medication (for example in the case of a compounded product, Glaxal Base).","min":1,"max":"1","base":{"path":"Medication.ingredient.item[x]","min":1,"max":"1"},"type":[{"code":"CodeableConcept"},{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Substance","http://hl7.org/fhir/StructureDefinition/Medication"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"coding.code = //element(*,MedicationType)/DrugCoded/ProductCode\r\rcoding.system = //element(*,MedicationType)/DrugCoded/ProductCodeQualifier\r\rcoding.display = //element(*,MedicationType)/DrugDescription"},{"identity":"v2","map":"RXC-2-Component Code if medication: RXO-1-Requested Give Code / RXE-2-Give Code / RXD-2-Dispense/Give Code / RXG-4-Give Code / RXA-5-Administered Code"},{"identity":"rim","map":".player"}]},{"id":"Medication.ingredient.isActive","path":"Medication.ingredient.isActive","short":"Active ingredient indicator","definition":"Indication of whether this ingredient affects the therapeutic action of the drug.","requirements":"True indicates that the ingredient affects the therapeutic action of the drug (i.e. active). \rFalse indicates that the ingredient does not affect the therapeutic action of the drug (i.e. inactive).","min":0,"max":"1","base":{"path":"Medication.ingredient.isActive","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"NA"}]},{"id":"Medication.ingredient.strength","path":"Medication.ingredient.strength","short":"Quantity of ingredient present","definition":"Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet.","min":0,"max":"1","base":{"path":"Medication.ingredient.strength","min":0,"max":"1"},"type":[{"code":"Ratio"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"//element(*,DrugCodedType)/Strength"},{"identity":"v2","map":"RXC-3-Component Amount & RXC-4-Component Units if medication: RXO-2-Requested Give Amount - Minimum & RXO-4-Requested Give Units / RXO-3-Requested Give Amount - Maximum & RXO-4-Requested Give Units / RXO-11-Requested Dispense Amount & RXO-12-Requested Dispense Units / RXE-3-Give Amount - Minimum & RXE-5-Give Units / RXE-4-Give Amount - Maximum & RXE-5-Give Units / RXE-10-Dispense Amount & RXE-10-Dispense Units"},{"identity":"rim","map":".quantity"}]},{"id":"Medication.batch","path":"Medication.batch","short":"Details about packaged medications","definition":"Information that only applies to packages (not products).","min":0,"max":"1","base":{"path":"Medication.batch","min":0,"max":"1"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"no mapping"},{"identity":"rim","map":".player[classCode=CONT]"}]},{"id":"Medication.batch.id","path":"Medication.batch.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Medication.batch.extension","path":"Medication.batch.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Medication.batch.modifierExtension","path":"Medication.batch.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Medication.batch.lotNumber","path":"Medication.batch.lotNumber","short":"Identifier assigned to batch","definition":"The assigned lot number of a batch of the specified product.","min":0,"max":"1","base":{"path":"Medication.batch.lotNumber","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"no mapping"},{"identity":"v2","map":"RXA-15 Substance Lot Number / RXG-19 Substance Lot Number"},{"identity":"rim","map":".id"}]},{"id":"Medication.batch.expirationDate","path":"Medication.batch.expirationDate","short":"When batch will expire","definition":"When this specific batch of product will expire.","min":0,"max":"1","base":{"path":"Medication.batch.expirationDate","min":0,"max":"1"},"type":[{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"no mapping"},{"identity":"v2","map":"RXA-16 Substance Expiration Date / RXG-20 Substance Expiration Date"},{"identity":"rim","map":"participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=MMAT].expirationTime"}]}]},"differential":{"element":[{"id":"Medication","path":"Medication","definition":"The US Core Medication Profile is based upon the core FHIR Medication Resource and created to meet the 2015 Edition Common Clinical Data Set 'Medications' requirements.","mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Medication"}]},{"id":"Medication.code","path":"Medication.code","min":1,"max":"1","mustSupport":true,"binding":{"strength":"extensible","description":"Prescribable medications","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-medication-codes"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Medication.code"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-medicationrequest.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-medicationrequest.json new file mode 100644 index 000000000..63ea16dee --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-medicationrequest.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-medicationrequest","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" MedicationRequest 0..*
    \".\"\".\"\".\" status S1..1codeBinding: medicationrequest Status (required)
    \".\"\".\"\".\" intent S1..1codeBinding: medicationRequest Intent (required)
    \".\"\".\"\".\" reported[x] S0..1
    \".\"\".\"\".\"\".\" reportedBooleanboolean
    \".\"\".\"\".\"\".\" reportedReferenceReference(US Core Patient Profile | US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | RelatedPerson)
    \".\"\".\"\".\" medication[x] S1..1Binding: US Core Medication Codes (RxNorm) (extensible)
    \".\"\".\"\".\"\".\" medicationCodeableConceptCodeableConcept
    \".\"\".\"\".\"\".\" medicationReferenceReference(US Core Medication Profile)
    \".\"\".\"\".\" subject S1..1Reference(US Core Patient Profile)
    \".\"\".\"\".\" encounter S0..1Reference(Encounter)
    \".\"\".\"\".\" authoredOn S1..1dateTime
    \".\"\".\"\".\" requester S1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | US Core Patient Profile | US Core Implantable Device Profile | RelatedPerson)
    \".\"\".\"\".\" dosageInstruction S0..*Dosage
    \".\"\".\"\".\"\".\" text S0..1string

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest","version":"3.0.1","name":"USCoreMedicationRequestProfile","title":"US Core MedicationRequest Profile","status":"active","experimental":false,"date":"2019-08-19T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the MedicationRequest resource for the minimal set of data to query and retrieve prescription information.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"script10.6","uri":"http://ncpdp.org/SCRIPT10_6","name":"Mapping to NCPDP SCRIPT 10.6"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"}],"kind":"resource","abstract":false,"type":"MedicationRequest","baseDefinition":"http://hl7.org/fhir/StructureDefinition/MedicationRequest","derivation":"constraint","snapshot":{"element":[{"id":"MedicationRequest","path":"MedicationRequest","short":"Ordering of medication for patient or group","definition":"The US Core Medication Request (Order) Profile is based upon the core FHIR MedicationRequest Resource and created to meet the 2015 Edition Common Clinical Data Set 'Medications' requirements.","alias":["Prescription","Order"],"min":0,"max":"*","base":{"path":"MedicationRequest","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Request"},{"identity":"script10.6","map":"Message/Body/NewRx"},{"identity":"rim","map":"CombinedMedicationRequest"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder"}]},{"id":"MedicationRequest.id","path":"MedicationRequest.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"MedicationRequest.meta","path":"MedicationRequest.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"MedicationRequest.implicitRules","path":"MedicationRequest.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"MedicationRequest.language","path":"MedicationRequest.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"MedicationRequest.text","path":"MedicationRequest.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"MedicationRequest.contained","path":"MedicationRequest.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"MedicationRequest.extension","path":"MedicationRequest.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"MedicationRequest.modifierExtension","path":"MedicationRequest.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"MedicationRequest.identifier","path":"MedicationRequest.identifier","short":"External ids for this request","definition":"Identifiers associated with this medication request that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.","comment":"This is a business identifier, not a resource identifier.","min":0,"max":"*","base":{"path":"MedicationRequest.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.identifier"},{"identity":"script10.6","map":"Message/Header/PrescriberOrderNumber"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"ORC-2-Placer Order Number / ORC-3-Filler Order Number"},{"identity":"rim","map":".id"}]},{"id":"MedicationRequest.status","path":"MedicationRequest.status","short":"active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown","definition":"A code specifying the current state of the order. Generally, this will be active or completed state.","comment":"This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.","min":1,"max":"1","base":{"path":"MedicationRequest.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","description":"A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.","valueSet":"http://hl7.org/fhir/ValueSet/medicationrequest-status"},"mapping":[{"identity":"workflow","map":"Request.status"},{"identity":"script10.6","map":"no mapping"},{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":".statusCode"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.status"}]},{"id":"MedicationRequest.statusReason","path":"MedicationRequest.statusReason","short":"Reason for current status","definition":"Captures the reason for the current state of the MedicationRequest.","comment":"This is generally only used for \"exception\" statuses such as \"suspended\" or \"cancelled\". The reason why the MedicationRequest was created at all is captured in reasonCode, not here.","min":0,"max":"1","base":{"path":"MedicationRequest.statusReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationRequestStatusReason"}],"strength":"example","description":"Identifies the reasons for a given status.","valueSet":"http://hl7.org/fhir/ValueSet/medicationrequest-status-reason"},"mapping":[{"identity":"workflow","map":"Request.statusReason"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN].reasonCOde"}]},{"id":"MedicationRequest.intent","path":"MedicationRequest.intent","short":"proposal | plan | order | original-order | instance-order | option","definition":"Whether the request is a proposal, plan, or an original order.","comment":"It is expected that the type of requester will be restricted for different stages of a MedicationRequest. For example, Proposals can be created by a patient, relatedPerson, Practitioner or Device. Plans can be created by Practitioners, Patients, RelatedPersons and Devices. Original orders can be created by a Practitioner only.\r\rAn instance-order is an instantiation of a request or order and may be used to populate Medication Administration Record.\r\rThis element is labeled as a modifier because the intent alters when and how the resource is actually applicable.","min":1,"max":"1","base":{"path":"MedicationRequest.intent","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element changes the interpretation of all descriptive attributes. For example \"the time the request is recommended to occur\" vs. \"the time the request is authorized to occur\" or \"who is recommended to perform the request\" vs. \"who is authorized to perform the request","isSummary":true,"binding":{"strength":"required","description":"The kind of medication order.","valueSet":"http://hl7.org/fhir/ValueSet/medicationrequest-intent"},"mapping":[{"identity":"workflow","map":"Request.intent"},{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere)"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.status"}]},{"id":"MedicationRequest.category","path":"MedicationRequest.category","short":"Type of medication usage","definition":"Indicates the type of medication request (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient)).","comment":"The category can be used to include where the medication is expected to be consumed or other types of requests.","min":0,"max":"*","base":{"path":"MedicationRequest.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationRequestCategory"}],"strength":"example","description":"A coded concept identifying the category of medication request. For example, where the medication is to be consumed or administered, or the type of medication treatment.","valueSet":"http://hl7.org/fhir/ValueSet/medicationrequest-category"},"mapping":[{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/Directions\r\ror \r\rMessage/Body/NewRx/MedicationPrescribed/StructuredSIG"},{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code=\"type of medication usage\"].value"}]},{"id":"MedicationRequest.priority","path":"MedicationRequest.priority","short":"routine | urgent | asap | stat","definition":"Indicates how quickly the Medication Request should be addressed with respect to other requests.","min":0,"max":"1","base":{"path":"MedicationRequest.priority","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationRequestPriority"}],"strength":"required","description":"Identifies the level of importance to be assigned to actioning the request.","valueSet":"http://hl7.org/fhir/ValueSet/request-priority|4.0.0"},"mapping":[{"identity":"workflow","map":"Request.priority"},{"identity":"w5","map":"FiveWs.grade"},{"identity":"rim","map":".priorityCode"}]},{"id":"MedicationRequest.doNotPerform","path":"MedicationRequest.doNotPerform","short":"True if request is prohibiting action","definition":"If true indicates that the provider is asking for the medication request not to occur.","comment":"If do not perform is not specified, the request is a positive request e.g. \"do perform\".","min":0,"max":"1","base":{"path":"MedicationRequest.doNotPerform","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because this element negates the request to occur (ie, this is a request for the medication not to be ordered or prescribed, etc)","isSummary":true,"mapping":[{"identity":"rim","map":"SubstanceAdministration.actionNegationInd"}]},{"id":"MedicationRequest.reported[x]","path":"MedicationRequest.reported[x]","short":"Reported rather than primary record","definition":"Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.","min":0,"max":"1","base":{"path":"MedicationRequest.reported[x]","min":0,"max":"1"},"type":[{"code":"boolean"},{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".participation[typeCode=INF].role"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.status"}]},{"id":"MedicationRequest.medication[x]","path":"MedicationRequest.medication[x]","short":"Medication to be taken","definition":"Identifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications.","comment":"If only a code is specified, then it needs to be a code for a specific product. If more information is required, then the use of the Medication resource is recommended. For example, if you require form or lot number or if the medication is compounded or extemporaneously prepared, then you must reference the Medication resource.","min":1,"max":"1","base":{"path":"MedicationRequest.medication[x]","min":1,"max":"1"},"type":[{"code":"CodeableConcept"},{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Prescribable medications","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-medication-codes"},"mapping":[{"identity":"workflow","map":"Request.code"},{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed\r\rMedication.code.coding.code = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCode\r\rMedication.code.coding.system = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCodeQualifier\r\rMedication.code.coding.display = Message/Body/NewRx/MedicationPrescribed/DrugDescription"},{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"v2","map":"RXE-2-Give Code / RXO-1-Requested Give Code / RXC-2-Component Code"},{"identity":"rim","map":"consumable.administrableMedication"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.medication[x]"}]},{"id":"MedicationRequest.subject","path":"MedicationRequest.subject","short":"Who or group medication request is for","definition":"A link to a resource representing the person or set of individuals to whom the medication will be given.","comment":"The subject on a medication request is mandatory. For the secondary use case where the actual subject is not provided, there still must be an anonymized subject specified.","min":1,"max":"1","base":{"path":"MedicationRequest.subject","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.subject"},{"identity":"script10.6","map":"Message/Body/NewRx/Patient\r\r(need detail to link to specific patient … Patient.Identification in SCRIPT)"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3-Patient ID List"},{"identity":"rim","map":".participation[typeCode=AUT].role"},{"identity":"w5","map":"FiveWs.subject"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.patient"}]},{"id":"MedicationRequest.encounter","path":"MedicationRequest.encounter","short":"Encounter created as part of encounter/admission/stay","definition":"The Encounter during which this [x] was created or to which the creation of this record is tightly associated.","comment":"This will typically be the encounter the event occurred within, but some activities may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter.\" If there is a need to link to episodes of care they will be handled with an extension.","min":0,"max":"1","base":{"path":"MedicationRequest.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.context"},{"identity":"script10.6","map":"no mapping"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1-19-Visit Number"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN, code=\"type of encounter or episode\"]"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.patient"}]},{"id":"MedicationRequest.supportingInformation","path":"MedicationRequest.supportingInformation","short":"Information to support ordering of the medication","definition":"Include additional information (for example, patient height and weight) that supports the ordering of the medication.","min":0,"max":"*","base":{"path":"MedicationRequest.supportingInformation","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.supportingInfo"},{"identity":"w5","map":"FiveWs.context"},{"identity":"rim","map":".outboundRelationship[typeCode=PERT].target[A_SupportingClinicalStatement CMET minimal with many different choices of classCodes(ORG, ENC, PROC, SPLY, SBADM, OBS) and each of the act class codes draws from one or more of the following moodCodes (EVN, DEF, INT PRMS, RQO, PRP, APT, ARQ, GOL)]"}]},{"id":"MedicationRequest.authoredOn","path":"MedicationRequest.authoredOn","short":"When request was initially authored","definition":"The date (and perhaps time) when the prescription was initially written or authored on.","min":1,"max":"1","base":{"path":"MedicationRequest.authoredOn","min":0,"max":"1"},"type":[{"code":"dateTime"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.authoredOn"},{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/WrittenDate"},{"identity":"w5","map":"FiveWs.recorded"},{"identity":"v2","map":"RXE-32-Original Order Date/Time / ORC-9-Date/Time of Transaction"},{"identity":"rim","map":"author.time"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.dateWritten"}]},{"id":"MedicationRequest.requester","path":"MedicationRequest.requester","short":"Who/What requested the Request","definition":"The individual, organization, or device that initiated the request and has responsibility for its activation.","min":1,"max":"1","base":{"path":"MedicationRequest.requester","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.requester"},{"identity":"w5","map":"FiveWs.author"},{"identity":"rim","map":".participation[typeCode=AUT].role"},{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.prescriber"}]},{"id":"MedicationRequest.performer","path":"MedicationRequest.performer","short":"Intended performer of administration","definition":"The specified desired performer of the medication treatment (e.g. the performer of the medication administration).","min":0,"max":"1","base":{"path":"MedicationRequest.performer","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/CareTeam"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.performer"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"rim","map":".participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]"}]},{"id":"MedicationRequest.performerType","path":"MedicationRequest.performerType","short":"Desired kind of performer of the medication administration","definition":"Indicates the type of performer of the administration of the medication.","comment":"If specified without indicating a performer, this indicates that the performer must be of the specified type. If specified with a performer then it indicates the requirements of the performer if the designated performer is not available.","min":0,"max":"1","base":{"path":"MedicationRequest.performerType","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationRequestPerformerType"}],"strength":"example","description":"Identifies the type of individual that is desired to administer the medication.","valueSet":"http://hl7.org/fhir/ValueSet/performer-role"},"mapping":[{"identity":"workflow","map":"Request.performerType"},{"identity":"rim","map":".participation[typeCode=PRF].role[scoper.determinerCode=KIND].code"}]},{"id":"MedicationRequest.recorder","path":"MedicationRequest.recorder","short":"Person who entered the request","definition":"The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order.","min":0,"max":"1","base":{"path":"MedicationRequest.recorder","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.who"},{"identity":"rim","map":".participation[typeCode=TRANS].role[classCode=ASSIGNED].code (HealthcareProviderType)"}]},{"id":"MedicationRequest.reasonCode","path":"MedicationRequest.reasonCode","short":"Reason or indication for ordering or not ordering the medication","definition":"The reason or the indication for ordering or not ordering the medication.","comment":"This could be a diagnosis code. If a full condition record exists or additional detail is needed, use reasonReference.","min":0,"max":"*","base":{"path":"MedicationRequest.reasonCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationRequestReason"}],"strength":"example","description":"A coded concept indicating why the medication was ordered.","valueSet":"http://hl7.org/fhir/ValueSet/condition-code"},"mapping":[{"identity":"workflow","map":"Request.reasonCode"},{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/Diagnosis/Primary/Value"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"v2","map":"ORC-16-Order Control Code Reason /RXE-27-Give Indication/RXO-20-Indication / RXD-21-Indication / RXG-22-Indication / RXA-19-Indication"},{"identity":"rim","map":"reason.observation.reasonCode"}]},{"id":"MedicationRequest.reasonReference","path":"MedicationRequest.reasonReference","short":"Condition or observation that supports why the prescription is being written","definition":"Condition or observation that supports why the medication was ordered.","comment":"This is a reference to a condition or observation that is the reason for the medication order. If only a code exists, use reasonCode.","min":0,"max":"*","base":{"path":"MedicationRequest.reasonReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition","http://hl7.org/fhir/StructureDefinition/Observation"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.reasonReference"},{"identity":"script10.6","map":"no mapping"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"rim","map":"reason.observation[code=ASSERTION].value"}]},{"id":"MedicationRequest.instantiatesCanonical","path":"MedicationRequest.instantiatesCanonical","short":"Instantiates FHIR protocol or definition","definition":"The URL pointing to a protocol, guideline, orderset, or other definition that is adhered to in whole or in part by this MedicationRequest.","min":0,"max":"*","base":{"path":"MedicationRequest.instantiatesCanonical","min":0,"max":"*"},"type":[{"code":"canonical"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.instantiates"},{"identity":"rim","map":".outboundRelationship[typeCode=DEFN].target"}]},{"id":"MedicationRequest.instantiatesUri","path":"MedicationRequest.instantiatesUri","short":"Instantiates external protocol or definition","definition":"The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this MedicationRequest.","min":0,"max":"*","base":{"path":"MedicationRequest.instantiatesUri","min":0,"max":"*"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=DEFN].target"}]},{"id":"MedicationRequest.basedOn","path":"MedicationRequest.basedOn","short":"What request fulfills","definition":"A plan or request that is fulfilled in whole or in part by this medication request.","min":0,"max":"*","base":{"path":"MedicationRequest.basedOn","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan","http://hl7.org/fhir/StructureDefinition/MedicationRequest","http://hl7.org/fhir/StructureDefinition/ServiceRequest","http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.basedOn"},{"identity":"rim","map":".outboundRelationship[typeCode=FLFS].target[classCode=SBADM or PROC or PCPR or OBS, moodCode=RQO orPLAN or PRP]"}]},{"id":"MedicationRequest.groupIdentifier","path":"MedicationRequest.groupIdentifier","short":"Composite request this is part of","definition":"A shared identifier common to all requests that were authorized more or less simultaneously by a single author, representing the identifier of the requisition or prescription.","requirements":"Requests are linked either by a \"basedOn\" relationship (i.e. one request is fulfilling another) or by having a common requisition. Requests that are part of the same requisition are generally treated independently from the perspective of changing their state or maintaining them after initial creation.","min":0,"max":"1","base":{"path":"MedicationRequest.groupIdentifier","min":0,"max":"1"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Request.groupIdentifier"},{"identity":"rim","map":".outboundRelationship(typeCode=COMP].target[classCode=SBADM, moodCode=INT].id"}]},{"id":"MedicationRequest.courseOfTherapyType","path":"MedicationRequest.courseOfTherapyType","short":"Overall pattern of medication administration","definition":"The description of the overall patte3rn of the administration of the medication to the patient.","comment":"This attribute should not be confused with the protocol of the medication.","min":0,"max":"1","base":{"path":"MedicationRequest.courseOfTherapyType","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationRequestCourseOfTherapy"}],"strength":"example","description":"Identifies the overall pattern of medication administratio.","valueSet":"http://hl7.org/fhir/ValueSet/medicationrequest-course-of-therapy"},"mapping":[{"identity":"rim","map":"Act.code where classCode = LIST and moodCode = EVN"}]},{"id":"MedicationRequest.insurance","path":"MedicationRequest.insurance","short":"Associated insurance coverage","definition":"Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service.","min":0,"max":"*","base":{"path":"MedicationRequest.insurance","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Coverage","http://hl7.org/fhir/StructureDefinition/ClaimResponse"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.insurance"},{"identity":"rim","map":".outboundRelationship[typeCode=COVBY].target"}]},{"id":"MedicationRequest.note","path":"MedicationRequest.note","short":"Information about the prescription","definition":"Extra information about the prescription that could not be conveyed by the other attributes.","min":0,"max":"*","base":{"path":"MedicationRequest.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.note"},{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/Note"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ]/source[classCode=OBS,moodCode=EVN,code=\"annotation\"].value"}]},{"id":"MedicationRequest.dosageInstruction","path":"MedicationRequest.dosageInstruction","short":"How the medication should be taken","definition":"Indicates how the medication is to be used by the patient.","comment":"There are examples where a medication request may include the option of an oral dose or an Intravenous or Intramuscular dose. For example, \"Ondansetron 8mg orally or IV twice a day as needed for nausea\" or \"Compazine® (prochlorperazine) 5-10mg PO or 25mg PR bid prn nausea or vomiting\". In these cases, two medication requests would be created that could be grouped together. The decision on which dose and route of administration to use is based on the patient's condition at the time the dose is needed.","min":0,"max":"*","base":{"path":"MedicationRequest.dosageInstruction","min":0,"max":"*"},"type":[{"code":"Dosage"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.occurrence[x]"},{"identity":"rim","map":"see dosageInstruction mapping"}]},{"id":"MedicationRequest.dosageInstruction.id","path":"MedicationRequest.dosageInstruction.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.dosageInstruction.extension","path":"MedicationRequest.dosageInstruction.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.dosageInstruction.modifierExtension","path":"MedicationRequest.dosageInstruction.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"MedicationRequest.dosageInstruction.sequence","path":"MedicationRequest.dosageInstruction.sequence","short":"The order of the dosage instructions","definition":"Indicates the order in which the dosage instructions should be applied or interpreted.","requirements":"If the sequence number of multiple Dosages is the same, then it is implied that the instructions are to be treated as concurrent. If the sequence number is different, then the Dosages are intended to be sequential.","min":0,"max":"1","base":{"path":"Dosage.sequence","min":0,"max":"1"},"type":[{"code":"integer"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"TQ1-1"},{"identity":"rim","map":".text"}]},{"id":"MedicationRequest.dosageInstruction.text","path":"MedicationRequest.dosageInstruction.text","short":"Free text dosage instructions e.g. SIG","definition":"Free text dosage instructions e.g. SIG.","requirements":"Free text dosage instructions can be used for cases where the instructions are too complex to code. The content of this attribute does not include the name or description of the medication. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. It is expected that the text instructions will always be populated. If the dosage.timing attribute is also populated, then the dosage.text should reflect the same information as the timing. Additional information about administration or preparation of the medication should be included as text.","min":0,"max":"1","base":{"path":"Dosage.text","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"RXO-6; RXE-21"},{"identity":"rim","map":".text"}]},{"id":"MedicationRequest.dosageInstruction.additionalInstruction","path":"MedicationRequest.dosageInstruction.additionalInstruction","short":"Supplemental instruction or warnings to the patient - e.g. \"with meals\", \"may cause drowsiness\"","definition":"Supplemental instructions to the patient on how to take the medication (e.g. \"with meals\" or\"take half to one hour before food\") or warnings for the patient about the medication (e.g. \"may cause drowsiness\" or \"avoid exposure of skin to direct sunlight or sunlamps\").","comment":"Information about administration or preparation of the medication (e.g. \"infuse as rapidly as possibly via intraperitoneal port\" or \"immediately following drug x\") should be populated in dosage.text.","requirements":"Additional instruction is intended to be coded, but where no code exists, the element could include text. For example, \"Swallow with plenty of water\" which might or might not be coded.","min":0,"max":"*","base":{"path":"Dosage.additionalInstruction","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AdditionalInstruction"}],"strength":"example","description":"A coded concept identifying additional instructions such as \"take with water\" or \"avoid operating heavy machinery\".","valueSet":"http://hl7.org/fhir/ValueSet/additional-instruction-codes"},"mapping":[{"identity":"v2","map":"RXO-7"},{"identity":"rim","map":".text"}]},{"id":"MedicationRequest.dosageInstruction.patientInstruction","path":"MedicationRequest.dosageInstruction.patientInstruction","short":"Patient or consumer oriented instructions","definition":"Instructions in terms that are understood by the patient or consumer.","min":0,"max":"1","base":{"path":"Dosage.patientInstruction","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"RXO-7"},{"identity":"rim","map":".text"}]},{"id":"MedicationRequest.dosageInstruction.timing","path":"MedicationRequest.dosageInstruction.timing","short":"When medication should be administered","definition":"When medication should be administered.","comment":"This attribute might not always be populated while the Dosage.text is expected to be populated. If both are populated, then the Dosage.text should reflect the content of the Dosage.timing.","requirements":"The timing schedule for giving the medication to the patient. This data type allows many different expressions. For example: \"Every 8 hours\"; \"Three times a day\"; \"1/2 an hour before breakfast for 10 days from 23-Dec 2011:\"; \"15 Oct 2013, 17 Oct 2013 and 1 Nov 2013\". Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time period.","min":0,"max":"1","base":{"path":"Dosage.timing","min":0,"max":"1"},"type":[{"code":"Timing"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"MedicationRequest.dosageInstruction.asNeeded[x]","path":"MedicationRequest.dosageInstruction.asNeeded[x]","short":"Take \"as needed\" (for x)","definition":"Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option), or it indicates the precondition for taking the Medication (CodeableConcept).","comment":"Can express \"as needed\" without a reason by setting the Boolean = True. In this case the CodeableConcept is not populated. Or you can express \"as needed\" with a reason by including the CodeableConcept. In this case the Boolean is assumed to be True. If you set the Boolean to False, then the dose is given according to the schedule and is not \"prn\" or \"as needed\".","min":0,"max":"1","base":{"path":"Dosage.asNeeded[x]","min":0,"max":"1"},"type":[{"code":"boolean"},{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationAsNeededReason"}],"strength":"example","description":"A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example \"pain\", \"30 minutes prior to sexual intercourse\", \"on flare-up\" etc.","valueSet":"http://hl7.org/fhir/ValueSet/medication-as-needed-reason"},"mapping":[{"identity":"v2","map":"TQ1-9"},{"identity":"rim","map":".outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code=\"as needed\"].value=boolean or codable concept"}]},{"id":"MedicationRequest.dosageInstruction.site","path":"MedicationRequest.dosageInstruction.site","short":"Body site to administer to","definition":"Body site to administer to.","comment":"If the use case requires attributes from the BodySite resource (e.g. to identify and track separately) then use the standard extension [bodySite](http://hl7.org/fhir/R4/extension-bodysite.html). May be a summary code, or a reference to a very precise definition of the location, or both.","requirements":"A coded specification of the anatomic site where the medication first enters the body.","min":0,"max":"1","base":{"path":"Dosage.site","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationAdministrationSite"}],"strength":"example","description":"A coded concept describing the site location the medicine enters into or onto the body.","valueSet":"http://hl7.org/fhir/ValueSet/approach-site-codes"},"mapping":[{"identity":"v2","map":"RXR-2"},{"identity":"rim","map":".approachSiteCode"}]},{"id":"MedicationRequest.dosageInstruction.route","path":"MedicationRequest.dosageInstruction.route","short":"How drug should enter body","definition":"How drug should enter body.","requirements":"A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient's body.","min":0,"max":"1","base":{"path":"Dosage.route","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"RouteOfAdministration"}],"strength":"example","description":"A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.","valueSet":"http://hl7.org/fhir/ValueSet/route-codes"},"mapping":[{"identity":"v2","map":"RXR-1"},{"identity":"rim","map":".routeCode"}]},{"id":"MedicationRequest.dosageInstruction.method","path":"MedicationRequest.dosageInstruction.method","short":"Technique for administering medication","definition":"Technique for administering medication.","comment":"Terminologies used often pre-coordinate this term with the route and or form of administration.","requirements":"A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. For examples, Slow Push; Deep IV.","min":0,"max":"1","base":{"path":"Dosage.method","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationAdministrationMethod"}],"strength":"example","description":"A coded concept describing the technique by which the medicine is administered.","valueSet":"http://hl7.org/fhir/ValueSet/administration-method-codes"},"mapping":[{"identity":"v2","map":"RXR-4"},{"identity":"rim","map":".doseQuantity"}]},{"id":"MedicationRequest.dosageInstruction.doseAndRate","path":"MedicationRequest.dosageInstruction.doseAndRate","short":"Amount of medication administered","definition":"The amount of medication administered.","min":0,"max":"*","base":{"path":"Dosage.doseAndRate","min":0,"max":"*"},"type":[{"code":"Element"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"TQ1-2"}]},{"id":"MedicationRequest.dosageInstruction.doseAndRate.id","path":"MedicationRequest.dosageInstruction.doseAndRate.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.dosageInstruction.doseAndRate.extension","path":"MedicationRequest.dosageInstruction.doseAndRate.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.dosageInstruction.doseAndRate.type","path":"MedicationRequest.dosageInstruction.doseAndRate.type","short":"The kind of dose or rate specified","definition":"The kind of dose or rate specified, for example, ordered or calculated.","requirements":"If the type is not populated, assume to be \"ordered\".","min":0,"max":"1","base":{"path":"Dosage.doseAndRate.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DoseAndRateType"}],"strength":"example","description":"The kind of dose or rate specified.","valueSet":"http://hl7.org/fhir/ValueSet/dose-rate-type"},"mapping":[{"identity":"v2","map":"RXO-21; RXE-23"}]},{"id":"MedicationRequest.dosageInstruction.doseAndRate.dose[x]","path":"MedicationRequest.dosageInstruction.doseAndRate.dose[x]","short":"Amount of medication per dose","definition":"Amount of medication per dose.","comment":"Note that this specifies the quantity of the specified medication, not the quantity for each active ingredient(s). Each ingredient amount can be communicated in the Medication resource. For example, if one wants to communicate that a tablet was 375 mg, where the dose was one tablet, you can use the Medication resource to document that the tablet was comprised of 375 mg of drug XYZ. Alternatively if the dose was 375 mg, then you may only need to use the Medication resource to indicate this was a tablet. If the example were an IV such as dopamine and you wanted to communicate that 400mg of dopamine was mixed in 500 ml of some IV solution, then this would all be communicated in the Medication resource. If the administration is not intended to be instantaneous (rate is present or timing has a duration), this can be specified to convey the total amount to be administered over the period of time as indicated by the schedule e.g. 500 ml in dose, with timing used to convey that this should be done over 4 hours.","requirements":"The amount of therapeutic or other substance given at one administration event.","min":0,"max":"1","base":{"path":"Dosage.doseAndRate.dose[x]","min":0,"max":"1"},"type":[{"code":"Range"},{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"RXO-2, RXE-3"},{"identity":"rim","map":".doseQuantity"}]},{"id":"MedicationRequest.dosageInstruction.doseAndRate.rate[x]","path":"MedicationRequest.dosageInstruction.doseAndRate.rate[x]","short":"Amount of medication per unit of time","definition":"Amount of medication per unit of time.","comment":"It is possible to supply both a rate and a doseQuantity to provide full details about how the medication is to be administered and supplied. If the rate is intended to change over time, depending on local rules/regulations, each change should be captured as a new version of the MedicationRequest with an updated rate, or captured with a new MedicationRequest with the new rate.\r\rIt is possible to specify a rate over time (for example, 100 ml/hour) using either the rateRatio and rateQuantity. The rateQuantity approach requires systems to have the capability to parse UCUM grammer where ml/hour is included rather than a specific ratio where the time is specified as the denominator. Where a rate such as 500ml over 2 hours is specified, the use of rateRatio may be more semantically correct than specifying using a rateQuantity of 250 mg/hour.","requirements":"Identifies the speed with which the medication was or will be introduced into the patient. Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours. Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time period.","min":0,"max":"1","base":{"path":"Dosage.doseAndRate.rate[x]","min":0,"max":"1"},"type":[{"code":"Ratio"},{"code":"Range"},{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"RXE22, RXE23, RXE-24"},{"identity":"rim","map":".rateQuantity"}]},{"id":"MedicationRequest.dosageInstruction.maxDosePerPeriod","path":"MedicationRequest.dosageInstruction.maxDosePerPeriod","short":"Upper limit on medication per unit of time","definition":"Upper limit on medication per unit of time.","comment":"This is intended for use as an adjunct to the dosage when there is an upper cap. For example \"2 tablets every 4 hours to a maximum of 8/day\".","requirements":"The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. For example, 1000mg in 24 hours.","min":0,"max":"1","base":{"path":"Dosage.maxDosePerPeriod","min":0,"max":"1"},"type":[{"code":"Ratio"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"RXO-23, RXE-19"},{"identity":"rim","map":".maxDoseQuantity"}]},{"id":"MedicationRequest.dosageInstruction.maxDosePerAdministration","path":"MedicationRequest.dosageInstruction.maxDosePerAdministration","short":"Upper limit on medication per administration","definition":"Upper limit on medication per administration.","comment":"This is intended for use as an adjunct to the dosage when there is an upper cap. For example, a body surface area related dose with a maximum amount, such as 1.5 mg/m2 (maximum 2 mg) IV over 5 – 10 minutes would have doseQuantity of 1.5 mg/m2 and maxDosePerAdministration of 2 mg.","requirements":"The maximum total quantity of a therapeutic substance that may be administered to a subject per administration.","min":0,"max":"1","base":{"path":"Dosage.maxDosePerAdministration","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"not supported"}]},{"id":"MedicationRequest.dosageInstruction.maxDosePerLifetime","path":"MedicationRequest.dosageInstruction.maxDosePerLifetime","short":"Upper limit on medication per lifetime of the patient","definition":"Upper limit on medication per lifetime of the patient.","requirements":"The maximum total quantity of a therapeutic substance that may be administered per lifetime of the subject.","min":0,"max":"1","base":{"path":"Dosage.maxDosePerLifetime","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"not supported"}]},{"id":"MedicationRequest.dispenseRequest","path":"MedicationRequest.dispenseRequest","short":"Medication supply authorization","definition":"Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest","min":0,"max":"1"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/ExpirationDate"},{"identity":"rim","map":"component.supplyEvent"}]},{"id":"MedicationRequest.dispenseRequest.id","path":"MedicationRequest.dispenseRequest.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.dispenseRequest.extension","path":"MedicationRequest.dispenseRequest.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.dispenseRequest.modifierExtension","path":"MedicationRequest.dispenseRequest.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"MedicationRequest.dispenseRequest.initialFill","path":"MedicationRequest.dispenseRequest.initialFill","short":"First fill details","definition":"Indicates the quantity or duration for the first dispense of the medication.","comment":"If populating this element, either the quantity or the duration must be included.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.initialFill","min":0,"max":"1"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"SubstanceAdministration -> ActRelationship[sequenceNumber = '1'] -> Supply"}]},{"id":"MedicationRequest.dispenseRequest.initialFill.id","path":"MedicationRequest.dispenseRequest.initialFill.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.dispenseRequest.initialFill.extension","path":"MedicationRequest.dispenseRequest.initialFill.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.dispenseRequest.initialFill.modifierExtension","path":"MedicationRequest.dispenseRequest.initialFill.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"MedicationRequest.dispenseRequest.initialFill.quantity","path":"MedicationRequest.dispenseRequest.initialFill.quantity","short":"First fill quantity","definition":"The amount or quantity to provide as part of the first dispense.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.initialFill.quantity","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Supply.quantity[moodCode=RQO]"}]},{"id":"MedicationRequest.dispenseRequest.initialFill.duration","path":"MedicationRequest.dispenseRequest.initialFill.duration","short":"First fill duration","definition":"The length of time that the first dispense is expected to last.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.initialFill.duration","min":0,"max":"1"},"type":[{"code":"Duration"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Supply.effectivetime[moodCode=RQO]"}]},{"id":"MedicationRequest.dispenseRequest.dispenseInterval","path":"MedicationRequest.dispenseRequest.dispenseInterval","short":"Minimum period of time between dispenses","definition":"The minimum period of time that must occur between dispenses of the medication.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.dispenseInterval","min":0,"max":"1"},"type":[{"code":"Duration"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Supply.effectivetime[moodCode=RQO]"}]},{"id":"MedicationRequest.dispenseRequest.validityPeriod","path":"MedicationRequest.dispenseRequest.validityPeriod","short":"Time period supply is authorized for","definition":"This indicates the validity period of a prescription (stale dating the Prescription).","comment":"It reflects the prescribers' perspective for the validity of the prescription. Dispenses must not be made against the prescription outside of this period. The lower-bound of the Dispensing Window signifies the earliest date that the prescription can be filled for the first time. If an upper-bound is not specified then the Prescription is open-ended or will default to a stale-date based on regulations.","requirements":"Indicates when the Prescription becomes valid, and when it ceases to be a dispensable Prescription.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.validityPeriod","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/Refills"},{"identity":"rim","map":"effectiveTime"}]},{"id":"MedicationRequest.dispenseRequest.numberOfRepeatsAllowed","path":"MedicationRequest.dispenseRequest.numberOfRepeatsAllowed","short":"Number of refills authorized","definition":"An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus \"3 repeats\", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets. A prescriber may explicitly say that zero refills are permitted after the initial dispense.","comment":"If displaying \"number of authorized fills\", add 1 to this number.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.numberOfRepeatsAllowed","min":0,"max":"1"},"type":[{"code":"unsignedInt"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/Quantity"},{"identity":"v2","map":"RXE-12-Number of Refills"},{"identity":"rim","map":"repeatNumber"}]},{"id":"MedicationRequest.dispenseRequest.quantity","path":"MedicationRequest.dispenseRequest.quantity","short":"Amount of medication to supply per dispense","definition":"The amount that is to be dispensed for one fill.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.quantity","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/DaysSupply"},{"identity":"v2","map":"RXD-4-Actual Dispense Amount / RXD-5.1-Actual Dispense Units.code / RXD-5.3-Actual Dispense Units.name of coding system"},{"identity":"rim","map":"quantity"}]},{"id":"MedicationRequest.dispenseRequest.expectedSupplyDuration","path":"MedicationRequest.dispenseRequest.expectedSupplyDuration","short":"Number of days supply per dispense","definition":"Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last.","comment":"In some situations, this attribute may be used instead of quantity to identify the amount supplied by how long it is expected to last, rather than the physical quantity issued, e.g. 90 days supply of medication (based on an ordered dosage). When possible, it is always better to specify quantity, as this tends to be more precise. expectedSupplyDuration will always be an estimate that can be influenced by external factors.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.expectedSupplyDuration","min":0,"max":"1"},"type":[{"code":"Duration"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"Message/Body/NewRx/MedicationPrescribed/Substitutions"},{"identity":"rim","map":"expectedUseTime"}]},{"id":"MedicationRequest.dispenseRequest.performer","path":"MedicationRequest.dispenseRequest.performer","short":"Intended dispenser","definition":"Indicates the intended dispensing Organization specified by the prescriber.","min":0,"max":"1","base":{"path":"MedicationRequest.dispenseRequest.performer","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"w5","map":"FiveWs.who"},{"identity":"rim","map":".outboundRelationship[typeCode=COMP].target[classCode=SPLY, moodCode=RQO] .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]"}]},{"id":"MedicationRequest.substitution","path":"MedicationRequest.substitution","short":"Any restrictions on medication substitution","definition":"Indicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done.","min":0,"max":"1","base":{"path":"MedicationRequest.substitution","min":0,"max":"1"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"script10.6","map":"specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions"},{"identity":"rim","map":"subjectOf.substitutionPersmission"}]},{"id":"MedicationRequest.substitution.id","path":"MedicationRequest.substitution.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.substitution.extension","path":"MedicationRequest.substitution.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"MedicationRequest.substitution.modifierExtension","path":"MedicationRequest.substitution.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"MedicationRequest.substitution.allowed[x]","path":"MedicationRequest.substitution.allowed[x]","short":"Whether substitution is allowed or not","definition":"True if the prescriber allows a different drug to be dispensed from what was prescribed.","comment":"This element is labeled as a modifier because whether substitution is allow or not, it cannot be ignored.","min":1,"max":"1","base":{"path":"MedicationRequest.substitution.allowed[x]","min":1,"max":"1"},"type":[{"code":"boolean"},{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationRequestSubstitution"}],"strength":"example","description":"Identifies the type of substitution allowed.","valueSet":"http://terminology.hl7.org/ValueSet/v3-ActSubstanceAdminSubstitutionCode"},"mapping":[{"identity":"script10.6","map":"specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions"},{"identity":"v2","map":"RXO-9-Allow Substitutions / RXE-9-Substitution Status"},{"identity":"rim","map":"code"}]},{"id":"MedicationRequest.substitution.reason","path":"MedicationRequest.substitution.reason","short":"Why should (not) substitution be made","definition":"Indicates the reason for the substitution, or why substitution must or must not be performed.","min":0,"max":"1","base":{"path":"MedicationRequest.substitution.reason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MedicationIntendedSubstitutionReason"}],"strength":"example","description":"A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.","valueSet":"http://terminology.hl7.org/ValueSet/v3-SubstanceAdminSubstitutionReason"},"mapping":[{"identity":"script10.6","map":"not mapped"},{"identity":"v2","map":"RXE-9 Substition status"},{"identity":"rim","map":"reasonCode"}]},{"id":"MedicationRequest.priorPrescription","path":"MedicationRequest.priorPrescription","short":"An order/prescription that is being replaced","definition":"A link to a resource representing an earlier order related order or prescription.","min":0,"max":"1","base":{"path":"MedicationRequest.priorPrescription","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/MedicationRequest"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.replaces"},{"identity":"script10.6","map":"not mapped"},{"identity":"rim","map":".outboundRelationship[typeCode=?RPLC or ?SUCC]/target[classCode=SBADM,moodCode=RQO]"}]},{"id":"MedicationRequest.detectedIssue","path":"MedicationRequest.detectedIssue","short":"Clinical Issue with action","definition":"Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, duplicate therapy, dosage alert etc.","comment":"This element can include a detected issue that has been identified either by a decision support system or by a clinician and may include information on the steps that were taken to address the issue.","alias":["Contraindication","Drug Utilization Review (DUR)","Alert"],"min":0,"max":"*","base":{"path":"MedicationRequest.detectedIssue","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/DetectedIssue"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ]/source[classCode=ALRT,moodCode=EVN].value"}]},{"id":"MedicationRequest.eventHistory","path":"MedicationRequest.eventHistory","short":"A list of events of interest in the lifecycle","definition":"Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource.","comment":"This might not include provenances for all versions of the request – only those deemed “relevant” or important. This SHALL NOT include the provenance associated with this current version of the resource. (If that provenance is deemed to be a “relevant” change, it will need to be added as part of a later update. Until then, it can be queried directly as the provenance that points to this version using _revinclude All Provenances should have some historical version of this Request as their subject.).","min":0,"max":"*","base":{"path":"MedicationRequest.eventHistory","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Provenance"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Request.relevantHistory"},{"identity":"rim","map":".inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]"}]}]},"differential":{"element":[{"id":"MedicationRequest","path":"MedicationRequest","definition":"The US Core Medication Request (Order) Profile is based upon the core FHIR MedicationRequest Resource and created to meet the 2015 Edition Common Clinical Data Set 'Medications' requirements.","mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder"}]},{"id":"MedicationRequest.status","path":"MedicationRequest.status","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","description":"A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.","valueSet":"http://hl7.org/fhir/ValueSet/medicationrequest-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.status"}]},{"id":"MedicationRequest.intent","path":"MedicationRequest.intent","min":1,"max":"1","mustSupport":true,"binding":{"strength":"required","description":"The kind of medication order.","valueSet":"http://hl7.org/fhir/ValueSet/medicationrequest-intent"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.status"}]},{"id":"MedicationRequest.reported[x]","path":"MedicationRequest.reported[x]","min":0,"max":"1","type":[{"code":"boolean"},{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.status"}]},{"id":"MedicationRequest.medication[x]","path":"MedicationRequest.medication[x]","min":1,"max":"1","type":[{"code":"CodeableConcept"},{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication"]}],"mustSupport":true,"binding":{"strength":"extensible","description":"Prescribable medications","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-medication-codes"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.medication[x]"}]},{"id":"MedicationRequest.subject","path":"MedicationRequest.subject","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.patient"}]},{"id":"MedicationRequest.encounter","path":"MedicationRequest.encounter","min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.patient"}]},{"id":"MedicationRequest.authoredOn","path":"MedicationRequest.authoredOn","min":1,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.dateWritten"}]},{"id":"MedicationRequest.requester","path":"MedicationRequest.requester","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"MedicationOrder.prescriber"}]},{"id":"MedicationRequest.dosageInstruction","path":"MedicationRequest.dosageInstruction","mustSupport":true},{"id":"MedicationRequest.dosageInstruction.text","path":"MedicationRequest.dosageInstruction.text","mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-observation-lab.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-observation-lab.json new file mode 100644 index 000000000..a8ffd4891 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-observation-lab.json @@ -0,0 +1,2573 @@ +{ + "resourceType": "StructureDefinition", + "id": "us-core-observation-lab", + "text": { + "status": "generated", + "div": "
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Observation I0..*us-core-2: If there is no component or related element then either a value[x] or a data absent reason must be present
    \".\"\".\"\".\" status S1..1codeBinding: ObservationStatus (required)
    \".\"\".\"\".\" category S1..*(Slice Definition)Slice: Unordered, Open by pattern:$this
    \".\"\".\"\".\"\".\" category:Laboratory S1..1CodeableConceptRequired Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
    \".\"\".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: laboratory
    \".\"\".\"\".\" code S1..1CodeableConceptLaboratory Test Name
    Binding: LOINCCodes (extensible)
    \".\"\".\"\".\" subject S1..1Reference(US Core Patient Profile)
    \".\"\".\"\".\" effective[x] SI0..1us-core-1: Datetime must be at least to day.
    \".\"\".\"\".\"\".\" effectiveDateTimedateTime
    \".\"\".\"\".\"\".\" effectivePeriodPeriod
    \".\"\".\"\".\" value[x] SI0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, PeriodResult Value
    us-core-4: SHOULD use Snomed CT for coded Results
    us-core-3: SHALL use UCUM for coded quantity units.
    \".\"\".\"\".\" dataAbsentReason SI0..1CodeableConceptBinding: DataAbsentReason (extensible)

    \"doco\" Documentation for this format
    " + }, + "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab", + "version": "3.0.1", + "name": "USCoreLaboratoryResultObservationProfile", + "title": "US Core Laboratory Result Observation Profile", + "status": "active", + "experimental": false, + "date": "2019-08-19T00:00:00+00:00", + "publisher": "HL7 US Realm Steering Committee", + "contact": [ + { + "telecom": [ + { + "system": "url", + "value": "http://www.healthit.gov" + } + ] + } + ], + "description": "Defines constraints and extensions on the Observation resource for the minimal set of data to query and retrieve laboratory test results", + "jurisdiction": [ + { + "coding": [ + { + "system": "urn:iso:std:iso:3166", + "code": "US", + "display": "United States of America" + } + ] + } + ], + "fhirVersion": "4.0.0", + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "uri": "http://unknown.org/Argonaut-DQ-DSTU2", + "name": "Argonaut-DQ-DSTU2" + }, + { + "identity": "workflow", + "uri": "http://hl7.org/fhir/workflow", + "name": "Workflow Pattern" + }, + { + "identity": "sct-concept", + "uri": "http://snomed.info/conceptdomain", + "name": "SNOMED CT Concept Domain Binding" + }, + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + }, + { + "identity": "sct-attr", + "uri": "http://snomed.org/attributebinding", + "name": "SNOMED CT Attribute Binding" + } + ], + "kind": "resource", + "abstract": false, + "type": "Observation", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation", + "derivation": "constraint", + "snapshot": { + "element": [ + { + "id": "Observation", + "path": "Observation", + "short": "Measurements and simple assertions", + "definition": "This profile is created to meet the 2015 Edition Common Clinical Data Set 'Laboratory test(s) and Laboratory value(s)/result(s)' requirements.", + "comment": "Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.", + "alias": [ + "Vital Signs", + "Measurement", + "Results", + "Tests" + ], + "min": 0, + "max": "*", + "base": { + "path": "Observation", + "min": 0, + "max": "*" + }, + "constraint": [ + { + "key": "dom-2", + "severity": "error", + "human": "If the resource is contained in another resource, it SHALL NOT contain nested Resources", + "expression": "contained.contained.empty()", + "xpath": "not(parent::f:contained and f:contained)", + "source": "DomainResource" + }, + { + "key": "dom-4", + "severity": "error", + "human": "If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated", + "expression": "contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()", + "xpath": "not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))", + "source": "DomainResource" + }, + { + "key": "dom-3", + "severity": "error", + "human": "If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource", + "expression": "contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()", + "xpath": "not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))", + "source": "DomainResource" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice", + "valueBoolean": true + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation", + "valueMarkdown": "When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time." + } + ], + "key": "dom-6", + "severity": "warning", + "human": "A resource should have narrative for robust management", + "expression": "text.div.exists()", + "xpath": "exists(f:text/h:div)", + "source": "DomainResource" + }, + { + "key": "dom-5", + "severity": "error", + "human": "If a resource is contained in another resource, it SHALL NOT have a security label", + "expression": "contained.meta.security.empty()", + "xpath": "not(exists(f:contained/*/f:meta/f:security))", + "source": "DomainResource" + }, + { + "key": "obs-7", + "severity": "error", + "human": "If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present", + "expression": "value.empty() or component.code.where( (coding.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty()", + "xpath": "not(f:*[starts-with(local-name(.), 'value')] and (for $coding in f:code/f:coding return f:component/f:code/f:coding[f:code/@value=$coding/f:code/@value] [f:system/@value=$coding/f:system/@value]))", + "source": "Observation" + }, + { + "key": "obs-6", + "severity": "error", + "human": "dataAbsentReason SHALL only be present if Observation.value[x] is not present", + "expression": "dataAbsentReason.empty() or value.empty()", + "xpath": "not(exists(f:dataAbsentReason)) or (not(exists(*[starts-with(local-name(.), 'value')])))", + "source": "Observation" + }, + { + "key": "us-core-2", + "severity": "error", + "human": "If there is no component or related element then either a value[x] or a data absent reason must be present", + "expression": "(component.empty() and related.empty()) implies (dataAbsentReason or value)", + "xpath": "exists(f:component) or exists(f:related) or exists(f:*[starts-with(local-name(.), 'value)]) or exists(f:dataAbsentReason)" + } + ], + "mustSupport": false, + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + }, + { + "identity": "workflow", + "map": "Event" + }, + { + "identity": "sct-concept", + "map": "< 363787002 |Observable entity|" + }, + { + "identity": "v2", + "map": "OBX" + }, + { + "identity": "rim", + "map": "Observation[classCode=OBS, moodCode=EVN]" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation" + } + ] + }, + { + "id": "Observation.id", + "path": "Observation.id", + "short": "Logical id of this artifact", + "definition": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + "comment": "The only time that a resource does not have an id is when it is being submitted to the server using a create operation.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "id" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Observation.meta", + "path": "Observation.meta", + "short": "Metadata about the resource", + "definition": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.meta", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Meta" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Observation.implicitRules", + "path": "Observation.implicitRules", + "short": "A set of rules under which this content was created", + "definition": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + "comment": "Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.implicitRules", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "uri" + } + ], + "isModifier": true, + "isModifierReason": "This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation", + "isSummary": true + }, + { + "id": "Observation.language", + "path": "Observation.language", + "short": "Language of the resource content", + "definition": "The base language in which the resource is written.", + "comment": "Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).", + "min": 0, + "max": "1", + "base": { + "path": "Resource.language", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet", + "valueCanonical": "http://hl7.org/fhir/ValueSet/all-languages" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "Language" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", + "valueBoolean": true + } + ], + "strength": "preferred", + "description": "A human language.", + "valueSet": "http://hl7.org/fhir/ValueSet/languages" + } + }, + { + "id": "Observation.text", + "path": "Observation.text", + "short": "Text summary of the resource, for human interpretation", + "definition": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + "comment": "Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.", + "alias": [ + "narrative", + "html", + "xhtml", + "display" + ], + "min": 0, + "max": "1", + "base": { + "path": "DomainResource.text", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Narrative" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "Act.text?" + } + ] + }, + { + "id": "Observation.contained", + "path": "Observation.contained", + "short": "Contained, inline Resources", + "definition": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.", + "comment": "This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.", + "alias": [ + "inline resources", + "anonymous resources", + "contained resources" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.contained", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Resource" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Observation.extension", + "path": "Observation.extension", + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Observation.modifierExtension", + "path": "Observation.modifierExtension", + "short": "Extensions that cannot be ignored", + "definition": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them", + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Observation.identifier", + "path": "Observation.identifier", + "short": "Business Identifier for observation", + "definition": "A unique identifier assigned to this observation.", + "requirements": "Allows observations to be distinguished and referenced.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.identifier", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Identifier" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.identifier" + }, + { + "identity": "w5", + "map": "FiveWs.identifier" + }, + { + "identity": "v2", + "map": "OBX.21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 2) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4." + }, + { + "identity": "rim", + "map": "id" + } + ] + }, + { + "id": "Observation.basedOn", + "path": "Observation.basedOn", + "short": "Fulfills plan, proposal or order", + "definition": "A plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed.", + "requirements": "Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.", + "alias": [ + "Fulfills" + ], + "min": 0, + "max": "*", + "base": { + "path": "Observation.basedOn", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/CarePlan", + "http://hl7.org/fhir/StructureDefinition/DeviceRequest", + "http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation", + "http://hl7.org/fhir/StructureDefinition/MedicationRequest", + "http://hl7.org/fhir/StructureDefinition/NutritionOrder", + "http://hl7.org/fhir/StructureDefinition/ServiceRequest" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.basedOn" + }, + { + "identity": "v2", + "map": "ORC" + }, + { + "identity": "rim", + "map": ".inboundRelationship[typeCode=COMP].source[moodCode=EVN]" + } + ] + }, + { + "id": "Observation.partOf", + "path": "Observation.partOf", + "short": "Part of referenced event", + "definition": "A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure.", + "comment": "To link an Observation to an Encounter use `encounter`. See the [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below for guidance on referencing another Observation.", + "alias": [ + "Container" + ], + "min": 0, + "max": "*", + "base": { + "path": "Observation.partOf", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/MedicationAdministration", + "http://hl7.org/fhir/StructureDefinition/MedicationDispense", + "http://hl7.org/fhir/StructureDefinition/MedicationStatement", + "http://hl7.org/fhir/StructureDefinition/Procedure", + "http://hl7.org/fhir/StructureDefinition/Immunization", + "http://hl7.org/fhir/StructureDefinition/ImagingStudy" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.partOf" + }, + { + "identity": "v2", + "map": "Varies by domain" + }, + { + "identity": "rim", + "map": ".outboundRelationship[typeCode=FLFS].target" + } + ] + }, + { + "id": "Observation.status", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint", + "valueString": "default: final" + } + ], + "path": "Observation.status", + "short": "registered | preliminary | final | amended +", + "definition": "The status of the result value.", + "comment": "This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.", + "requirements": "Need to track the status of individual results. Some results are finalized before the whole report is finalized.", + "min": 1, + "max": "1", + "base": { + "path": "Observation.status", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "mustSupport": true, + "isModifier": true, + "isModifierReason": "This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid", + "isSummary": true, + "binding": { + "strength": "required", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-status" + }, + "mapping": [ + { + "identity": "workflow", + "map": "Event.status" + }, + { + "identity": "w5", + "map": "FiveWs.status" + }, + { + "identity": "sct-concept", + "map": "< 445584004 |Report by finality status|" + }, + { + "identity": "v2", + "map": "OBX-11" + }, + { + "identity": "rim", + "map": "status Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of \"revise\"" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.status" + } + ] + }, + { + "id": "Observation.category", + "path": "Observation.category", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "$this" + } + ], + "rules": "open" + }, + "short": "Classification of type of observation", + "definition": "A code that classifies the general type of observation being made.", + "comment": "In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.", + "requirements": "Used for filtering what observations are retrieved and displayed.", + "min": 1, + "max": "*", + "base": { + "path": "Observation.category", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationCategory" + } + ], + "strength": "preferred", + "description": "Codes for high level observation categories.", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-category" + }, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.class" + }, + { + "identity": "rim", + "map": ".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.category" + } + ] + }, + { + "id": "Observation.category:Laboratory", + "path": "Observation.category", + "sliceName": "Laboratory", + "short": "Classification of type of observation", + "definition": "A code that classifies the general type of observation being made.", + "comment": "In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.", + "requirements": "Used for filtering what observations are retrieved and displayed.", + "min": 1, + "max": "1", + "base": { + "path": "Observation.category", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "patternCodeableConcept": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + }, + "mustSupport": true, + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationCategory" + } + ], + "strength": "preferred", + "description": "Codes for high level observation categories.", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-category" + }, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.class" + }, + { + "identity": "rim", + "map": ".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.category" + } + ] + }, + { + "id": "Observation.code", + "path": "Observation.code", + "short": "Laboratory Test Name", + "definition": "The test that was performed. A LOINC **SHALL** be used if the concept is present in LOINC.", + "comment": "The typical patterns for codes are: 1) a LOINC code either as a translation from a \"local\" code or as a primary code, or 2) a local code only if no suitable LOINC exists, or 3) both the local and the LOINC translation. Systems SHALL be capable of sending the local code if one exists. When using LOINC , Use either the SHORTNAME or LONG_COMMON_NAME field for the display.", + "requirements": "Knowing what kind of observation is being made is essential to understanding the observation.", + "alias": [ + "Name", + "Test Name", + "Observation Identifer" + ], + "min": 1, + "max": "1", + "base": { + "path": "Observation.code", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "binding": { + "strength": "extensible", + "description": "LOINC codes", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-codes" + }, + "mapping": [ + { + "identity": "workflow", + "map": "Event.code" + }, + { + "identity": "w5", + "map": "FiveWs.what[x]" + }, + { + "identity": "sct-concept", + "map": "< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|" + }, + { + "identity": "v2", + "map": "OBX-3" + }, + { + "identity": "rim", + "map": "code" + }, + { + "identity": "sct-attr", + "map": "116680003 |Is a|" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.code" + } + ] + }, + { + "id": "Observation.subject", + "path": "Observation.subject", + "short": "Who and/or what the observation is about", + "definition": "The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation.", + "comment": "One would expect this element to be a cardinality of 1..1. The only circumstance in which the subject can be missing is when the observation is made by a device that does not know the patient. In this case, the observation SHALL be matched to a patient through some context/channel matching technique, and at this point, the observation should be updated.", + "requirements": "Observations have no value if you don't know who or what they're about.", + "min": 1, + "max": "1", + "base": { + "path": "Observation.subject", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" + ] + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.subject" + }, + { + "identity": "w5", + "map": "FiveWs.subject[x]" + }, + { + "identity": "v2", + "map": "PID-3" + }, + { + "identity": "rim", + "map": "participation[typeCode=RTGT] " + }, + { + "identity": "w5", + "map": "FiveWs.subject" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.subject" + } + ] + }, + { + "id": "Observation.focus", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "trial-use" + } + ], + "path": "Observation.focus", + "short": "What the observation is about, when it is not about the subject of record", + "definition": "The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.", + "comment": "Typically, an observation is made about the subject - a patient, or group of patients, location, or device - and the distinction between the subject and what is directly measured for an observation is specified in the observation code itself ( e.g., \"Blood Glucose\") and does not need to be represented separately using this element. Use `specimen` if a reference to a specimen is required. If a code is required instead of a resource use either `bodysite` for bodysites or the standard extension [focusCode](http://hl7.org/fhir/R4/extension-observation-focuscode.html).", + "min": 0, + "max": "*", + "base": { + "path": "Observation.focus", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Resource" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.subject[x]" + }, + { + "identity": "v2", + "map": "OBX-3" + }, + { + "identity": "rim", + "map": "participation[typeCode=SBJ]" + }, + { + "identity": "w5", + "map": "FiveWs.subject" + } + ] + }, + { + "id": "Observation.encounter", + "path": "Observation.encounter", + "short": "Healthcare event during which this observation is made", + "definition": "The healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made.", + "comment": "This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).", + "requirements": "For some observations it may be important to know the link between an observation and a particular encounter.", + "alias": [ + "Context" + ], + "min": 0, + "max": "1", + "base": { + "path": "Observation.encounter", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Encounter" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.context" + }, + { + "identity": "w5", + "map": "FiveWs.context" + }, + { + "identity": "v2", + "map": "PV1" + }, + { + "identity": "rim", + "map": "inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]" + } + ] + }, + { + "id": "Observation.effective[x]", + "path": "Observation.effective[x]", + "short": "Clinically relevant time/time-period for observation", + "definition": "For lab tests this is the specimen collection date. For Ask at Order Entry Questions (AOE)'s this is the date the question was asked.", + "comment": "At least a date should be present unless this observation is a historical report. For recording imprecise or \"fuzzy\" times (For example, a blood glucose measurement taken \"after breakfast\") use the [Timing](http://hl7.org/fhir/R4/datatypes.html#timing) datatype which allow the measurement to be tied to regular life events.", + "requirements": "Knowing when an observation was deemed true is important to its relevance as well as determining trends.", + "alias": [ + "Occurrence" + ], + "min": 0, + "max": "1", + "base": { + "path": "Observation.effective[x]", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "dateTime" + }, + { + "code": "Period" + } + ], + "constraint": [ + { + "key": "us-core-1", + "severity": "error", + "human": "Datetime must be at least to day.", + "expression": "($this as dateTime).toString().length() >= 8", + "xpath": "f:matches(effectiveDateTime,/\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)/)" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.occurrence[x]" + }, + { + "identity": "w5", + "map": "FiveWs.done[x]" + }, + { + "identity": "v2", + "map": "OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)" + }, + { + "identity": "rim", + "map": "effectiveTime" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.effective[x]" + } + ] + }, + { + "id": "Observation.issued", + "path": "Observation.issued", + "short": "Date/Time this version was made available", + "definition": "The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.", + "comment": "For Observations that don’t require review and verification, it may be the same as the [`lastUpdated` ](http://hl7.org/fhir/R4/resource-definitions.html#Meta.lastUpdated) time of the resource itself. For Observations that do require review and verification for certain updates, it might not be the same as the `lastUpdated` time of the resource itself due to a non-clinically significant update that doesn’t require the new version to be reviewed and verified again.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.issued", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "instant" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.recorded" + }, + { + "identity": "v2", + "map": "OBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made)" + }, + { + "identity": "rim", + "map": "participation[typeCode=AUT].time" + } + ] + }, + { + "id": "Observation.performer", + "path": "Observation.performer", + "short": "Who is responsible for the observation", + "definition": "Who was responsible for asserting the observed value as \"true\".", + "requirements": "May give a degree of confidence in the observation and also indicates where follow-up questions should be directed.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.performer", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Practitioner", + "http://hl7.org/fhir/StructureDefinition/PractitionerRole", + "http://hl7.org/fhir/StructureDefinition/Organization", + "http://hl7.org/fhir/StructureDefinition/CareTeam", + "http://hl7.org/fhir/StructureDefinition/Patient", + "http://hl7.org/fhir/StructureDefinition/RelatedPerson" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "workflow", + "map": "Event.performer.actor" + }, + { + "identity": "w5", + "map": "FiveWs.actor" + }, + { + "identity": "v2", + "map": "OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO'" + }, + { + "identity": "rim", + "map": "participation[typeCode=PRF]" + } + ] + }, + { + "id": "Observation.value[x]", + "path": "Observation.value[x]", + "short": "Result Value", + "definition": "The Laboratory result value. If a coded value, the valueCodeableConcept.code **SHOULD** be selected from [SNOMED CT](http://hl7.org/fhir/ValueSet/uslab-obs-codedresults). If a numeric value, valueQuantity.code **SHALL** be selected from [UCUM](http://unitsofmeasure.org). A FHIR [UCUM Codes value set](http://hl7.org/fhir/STU3/valueset-ucum-units.html) that defines all UCUM codes is in the FHIR specification.", + "comment": "An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.", + "requirements": "An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.value[x]", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Quantity" + }, + { + "code": "CodeableConcept" + }, + { + "code": "string" + }, + { + "code": "boolean" + }, + { + "code": "integer" + }, + { + "code": "Range" + }, + { + "code": "Ratio" + }, + { + "code": "SampledData" + }, + { + "code": "time" + }, + { + "code": "dateTime" + }, + { + "code": "Period" + } + ], + "condition": [ + "obs-7" + ], + "constraint": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice", + "valueBoolean": true + } + ], + "key": "us-core-4", + "severity": "warning", + "human": "SHOULD use Snomed CT for coded Results", + "expression": "valueCodeableConcept.coding.system.empty() or valueCodeableConcept.coding.system = 'http://snomed.info/sct'", + "xpath": "not(exists(f:valueCodeableConcept/f:coding/f:system) ) or f:valueCodeableConcept/f:coding/f:system[@value='http://snomed.info/sct']" + }, + { + "key": "us-core-3", + "severity": "error", + "human": "SHALL use UCUM for coded quantity units.", + "expression": "valueQuantity.system.empty() or valueQuantity.system = 'http://unitsofmeasure.org'", + "xpath": "not(exists(f:valueQuantity/f:system) ) or f:valueQuantity/f:system[@value='http://unitsofmeasure.org']" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "sct-concept", + "map": "< 441742003 |Evaluation finding|" + }, + { + "identity": "v2", + "map": "OBX.2, OBX.5, OBX.6" + }, + { + "identity": "rim", + "map": "value" + }, + { + "identity": "sct-attr", + "map": "363714003 |Interprets|" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.value[x]" + } + ] + }, + { + "id": "Observation.dataAbsentReason", + "path": "Observation.dataAbsentReason", + "short": "Why the result is missing", + "definition": "Provides a reason why the expected value in the element Observation.value[x] is missing.", + "comment": "Null or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"specimen unsatisfactory\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Note that an observation may only be reported if there are values to report. For example differential cell counts values may be reported only when > 0. Because of these options, use-case agreements are required to interpret general observations for null or exceptional values.", + "requirements": "For many results it is necessary to handle exceptional values in measurements.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.dataAbsentReason", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "condition": [ + "obs-6" + ], + "mustSupport": true, + "isModifier": false, + "isSummary": false, + "binding": { + "strength": "extensible", + "valueSet": "http://hl7.org/fhir/ValueSet/data-absent-reason" + }, + "mapping": [ + { + "identity": "v2", + "map": "N/A" + }, + { + "identity": "rim", + "map": "value.nullFlavor" + }, + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.dataAbsentReason" + } + ] + }, + { + "id": "Observation.interpretation", + "path": "Observation.interpretation", + "short": "High, low, normal, etc.", + "definition": "A categorical assessment of an observation value. For example, high, low, normal.", + "comment": "Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.", + "requirements": "For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.", + "alias": [ + "Abnormal Flag" + ], + "min": 0, + "max": "*", + "base": { + "path": "Observation.interpretation", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationInterpretation" + } + ], + "strength": "extensible", + "description": "Codes identifying interpretations of observations.", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-interpretation" + }, + "mapping": [ + { + "identity": "sct-concept", + "map": "< 260245000 |Findings values|" + }, + { + "identity": "v2", + "map": "OBX-8" + }, + { + "identity": "rim", + "map": "interpretationCode" + }, + { + "identity": "sct-attr", + "map": "363713009 |Has interpretation|" + } + ] + }, + { + "id": "Observation.note", + "path": "Observation.note", + "short": "Comments about the observation", + "definition": "Comments about the observation or the results.", + "comment": "May include general statements about the observation, or statements about significant, unexpected or unreliable results values, or information about its source when relevant to its interpretation.", + "requirements": "Need to be able to provide free text additional information.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.note", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Annotation" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "NTE.3 (partner NTE to OBX, or sometimes another (child?) OBX)" + }, + { + "identity": "rim", + "map": "subjectOf.observationEvent[code=\"annotation\"].value" + } + ] + }, + { + "id": "Observation.bodySite", + "path": "Observation.bodySite", + "short": "Observed body part", + "definition": "Indicates the site on the subject's body where the observation was made (i.e. the target site).", + "comment": "Only used if not implicit in code found in Observation.code. In many systems, this may be represented as a related observation instead of an inline component. \n\nIf the use case requires BodySite to be handled as a separate resource (e.g. to identify and track separately) then use the standard extension[ bodySite](http://hl7.org/fhir/R4/extension-bodysite.html).", + "min": 0, + "max": "1", + "base": { + "path": "Observation.bodySite", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "BodySite" + } + ], + "strength": "example", + "description": "Codes describing anatomical locations. May include laterality.", + "valueSet": "http://hl7.org/fhir/ValueSet/body-site" + }, + "mapping": [ + { + "identity": "sct-concept", + "map": "< 123037004 |Body structure|" + }, + { + "identity": "v2", + "map": "OBX-20" + }, + { + "identity": "rim", + "map": "targetSiteCode" + }, + { + "identity": "sct-attr", + "map": "718497002 |Inherent location|" + } + ] + }, + { + "id": "Observation.method", + "path": "Observation.method", + "short": "How it was done", + "definition": "Indicates the mechanism used to perform the observation.", + "comment": "Only used if not implicit in code for Observation.code.", + "requirements": "In some cases, method can impact results and is thus used for determining whether results can be compared or determining significance of results.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.method", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationMethod" + } + ], + "strength": "example", + "description": "Methods for simple observations.", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-methods" + }, + "mapping": [ + { + "identity": "v2", + "map": "OBX-17" + }, + { + "identity": "rim", + "map": "methodCode" + } + ] + }, + { + "id": "Observation.specimen", + "path": "Observation.specimen", + "short": "Specimen used for this observation", + "definition": "The specimen that was used when this observation was made.", + "comment": "Should only be used if not implicit in code found in `Observation.code`. Observations are not made on specimens themselves; they are made on a subject, but in many cases by the means of a specimen. Note that although specimens are often involved, they are not always tracked and reported explicitly. Also note that observation resources may be used in contexts that track the specimen explicitly (e.g. Diagnostic Report).", + "min": 0, + "max": "1", + "base": { + "path": "Observation.specimen", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Specimen" + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "sct-concept", + "map": "< 123038009 |Specimen|" + }, + { + "identity": "v2", + "map": "SPM segment" + }, + { + "identity": "rim", + "map": "participation[typeCode=SPC].specimen" + }, + { + "identity": "sct-attr", + "map": "704319004 |Inherent in|" + } + ] + }, + { + "id": "Observation.device", + "path": "Observation.device", + "short": "(Measurement) Device", + "definition": "The device used to generate the observation data.", + "comment": "Note that this is not meant to represent a device involved in the transmission of the result, e.g., a gateway. Such devices may be documented using the Provenance resource where relevant.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.device", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Device", + "http://hl7.org/fhir/StructureDefinition/DeviceMetric" + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "sct-concept", + "map": "< 49062001 |Device|" + }, + { + "identity": "v2", + "map": "OBX-17 / PRT -10" + }, + { + "identity": "rim", + "map": "participation[typeCode=DEV]" + }, + { + "identity": "sct-attr", + "map": "424226004 |Using device|" + } + ] + }, + { + "id": "Observation.referenceRange", + "path": "Observation.referenceRange", + "short": "Provides guide for interpretation", + "definition": "Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an \"OR\". In other words, to represent two distinct target populations, two `referenceRange` elements would be used.", + "comment": "Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.", + "requirements": "Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.referenceRange", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "BackboneElement" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "Element" + }, + { + "key": "obs-3", + "severity": "error", + "human": "Must have at least a low or a high or text", + "expression": "low.exists() or high.exists() or text.exists()", + "xpath": "(exists(f:low) or exists(f:high)or exists(f:text))" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "OBX.7" + }, + { + "identity": "rim", + "map": "outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]" + } + ] + }, + { + "id": "Observation.referenceRange.id", + "path": "Observation.referenceRange.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Observation.referenceRange.extension", + "path": "Observation.referenceRange.extension", + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Observation.referenceRange.modifierExtension", + "path": "Observation.referenceRange.modifierExtension", + "short": "Extensions that cannot be ignored even if unrecognized", + "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content", + "modifiers" + ], + "min": 0, + "max": "*", + "base": { + "path": "BackboneElement.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Observation.referenceRange.low", + "path": "Observation.referenceRange.low", + "short": "Low Range, if relevant", + "definition": "The value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3).", + "min": 0, + "max": "1", + "base": { + "path": "Observation.referenceRange.low", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Quantity", + "profile": [ + "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" + ] + } + ], + "condition": [ + "obs-3" + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "OBX-7" + }, + { + "identity": "rim", + "map": "value:IVL_PQ.low" + } + ] + }, + { + "id": "Observation.referenceRange.high", + "path": "Observation.referenceRange.high", + "short": "High Range, if relevant", + "definition": "The value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3).", + "min": 0, + "max": "1", + "base": { + "path": "Observation.referenceRange.high", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Quantity", + "profile": [ + "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" + ] + } + ], + "condition": [ + "obs-3" + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "OBX-7" + }, + { + "identity": "rim", + "map": "value:IVL_PQ.high" + } + ] + }, + { + "id": "Observation.referenceRange.type", + "path": "Observation.referenceRange.type", + "short": "Reference range qualifier", + "definition": "Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range.", + "comment": "This SHOULD be populated if there is more than one range. If this element is not present then the normal range is assumed.", + "requirements": "Need to be able to say what kind of reference range this is - normal, recommended, therapeutic, etc., - for proper interpretation.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.referenceRange.type", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationRangeMeaning" + } + ], + "strength": "preferred", + "description": "Code for the meaning of a reference range.", + "valueSet": "http://hl7.org/fhir/ValueSet/referencerange-meaning" + }, + "mapping": [ + { + "identity": "sct-concept", + "map": "< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|" + }, + { + "identity": "v2", + "map": "OBX-10" + }, + { + "identity": "rim", + "map": "interpretationCode" + } + ] + }, + { + "id": "Observation.referenceRange.appliesTo", + "path": "Observation.referenceRange.appliesTo", + "short": "Reference range population", + "definition": "Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an \"AND\" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used.", + "comment": "This SHOULD be populated if there is more than one range. If this element is not present then the normal population is assumed.", + "requirements": "Need to be able to identify the target population for proper interpretation.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.referenceRange.appliesTo", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationRangeType" + } + ], + "strength": "example", + "description": "Codes identifying the population the reference range applies to.", + "valueSet": "http://hl7.org/fhir/ValueSet/referencerange-appliesto" + }, + "mapping": [ + { + "identity": "sct-concept", + "map": "< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|" + }, + { + "identity": "v2", + "map": "OBX-10" + }, + { + "identity": "rim", + "map": "interpretationCode" + } + ] + }, + { + "id": "Observation.referenceRange.age", + "path": "Observation.referenceRange.age", + "short": "Applicable age range, if relevant", + "definition": "The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.", + "requirements": "Some analytes vary greatly over age.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.referenceRange.age", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Range" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "outboundRelationship[typeCode=PRCN].targetObservationCriterion[code=\"age\"].value" + } + ] + }, + { + "id": "Observation.referenceRange.text", + "path": "Observation.referenceRange.text", + "short": "Text based reference range in an observation", + "definition": "Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of \"Negative\" or a list or table of \"normals\".", + "min": 0, + "max": "1", + "base": { + "path": "Observation.referenceRange.text", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "OBX-7" + }, + { + "identity": "rim", + "map": "value:ST" + } + ] + }, + { + "id": "Observation.hasMember", + "path": "Observation.hasMember", + "short": "Related resource that belongs to the Observation group", + "definition": "This observation is a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the group.", + "comment": "When using this element, an observation will typically have either a value or a set of related resources, although both may be present in some cases. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below. Note that a system may calculate results from [QuestionnaireResponse](http://hl7.org/fhir/R4/questionnaireresponse.html) into a final score and represent the score as an Observation.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.hasMember", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Observation", + "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse", + "http://hl7.org/fhir/StructureDefinition/MolecularSequence" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "Relationships established by OBX-4 usage" + }, + { + "identity": "rim", + "map": "outBoundRelationship" + } + ] + }, + { + "id": "Observation.derivedFrom", + "path": "Observation.derivedFrom", + "short": "Related measurements the observation is made from", + "definition": "The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image.", + "comment": "All the reference choices that are listed in this element can represent clinical observations and other measurements that may be the source for a derived value. The most common reference will be another Observation. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.derivedFrom", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/DocumentReference", + "http://hl7.org/fhir/StructureDefinition/ImagingStudy", + "http://hl7.org/fhir/StructureDefinition/Media", + "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse", + "http://hl7.org/fhir/StructureDefinition/Observation", + "http://hl7.org/fhir/StructureDefinition/MolecularSequence" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "Relationships established by OBX-4 usage" + }, + { + "identity": "rim", + "map": ".targetObservation" + } + ] + }, + { + "id": "Observation.component", + "path": "Observation.component", + "short": "Component results", + "definition": "Some observations have multiple component observations. These component observations are expressed as separate code value pairs that share the same attributes. Examples include systolic and diastolic component observations for blood pressure measurement and multiple component observations for genetics observations.", + "comment": "For a discussion on the ways Observations can be assembled in groups together see [Notes](http://hl7.org/fhir/R4/observation.html#notes) below.", + "requirements": "Component observations share the same attributes in the Observation resource as the primary observation and are always treated a part of a single observation (they are not separable). However, the reference range for the primary observation value is not inherited by the component values and is required when appropriate for each component observation.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.component", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "BackboneElement" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "containment by OBX-4?" + }, + { + "identity": "rim", + "map": "outBoundRelationship[typeCode=COMP]" + } + ] + }, + { + "id": "Observation.component.id", + "path": "Observation.component.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Observation.component.extension", + "path": "Observation.component.extension", + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Observation.component.modifierExtension", + "path": "Observation.component.modifierExtension", + "short": "Extensions that cannot be ignored even if unrecognized", + "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content", + "modifiers" + ], + "min": 0, + "max": "*", + "base": { + "path": "BackboneElement.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Observation.component.code", + "path": "Observation.component.code", + "short": "Type of component observation (code / type)", + "definition": "Describes what was observed. Sometimes this is called the observation \"code\".", + "comment": "*All* code-value and component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.", + "requirements": "Knowing what kind of observation is being made is essential to understanding the observation.", + "min": 1, + "max": "1", + "base": { + "path": "Observation.component.code", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "isModifier": false, + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationCode" + } + ], + "strength": "example", + "description": "Codes identifying names of simple observations.", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-codes" + }, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.what[x]" + }, + { + "identity": "sct-concept", + "map": "< 363787002 |Observable entity| OR \r< 386053000 |Evaluation procedure|" + }, + { + "identity": "v2", + "map": "OBX-3" + }, + { + "identity": "rim", + "map": "code" + } + ] + }, + { + "id": "Observation.component.value[x]", + "path": "Observation.component.value[x]", + "short": "Actual component result", + "definition": "The information determined as a result of making the observation, if the information has a simple value.", + "comment": "Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.", + "requirements": "An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.component.value[x]", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Quantity" + }, + { + "code": "CodeableConcept" + }, + { + "code": "string" + }, + { + "code": "boolean" + }, + { + "code": "integer" + }, + { + "code": "Range" + }, + { + "code": "Ratio" + }, + { + "code": "SampledData" + }, + { + "code": "time" + }, + { + "code": "dateTime" + }, + { + "code": "Period" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "sct-concept", + "map": "363714003 |Interprets| < 441742003 |Evaluation finding|" + }, + { + "identity": "v2", + "map": "OBX.2, OBX.5, OBX.6" + }, + { + "identity": "rim", + "map": "value" + }, + { + "identity": "sct-attr", + "map": "363714003 |Interprets|" + } + ] + }, + { + "id": "Observation.component.dataAbsentReason", + "path": "Observation.component.dataAbsentReason", + "short": "Why the component result is missing", + "definition": "Provides a reason why the expected value in the element Observation.component.value[x] is missing.", + "comment": "\"Null\" or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"test not done\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Because of these options, use-case agreements are required to interpret general observations for exceptional values.", + "requirements": "For many results it is necessary to handle exceptional values in measurements.", + "min": 0, + "max": "1", + "base": { + "path": "Observation.component.dataAbsentReason", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "condition": [ + "obs-6" + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationValueAbsentReason" + } + ], + "strength": "extensible", + "description": "Codes specifying why the result (`Observation.value[x]`) is missing.", + "valueSet": "http://hl7.org/fhir/ValueSet/data-absent-reason" + }, + "mapping": [ + { + "identity": "v2", + "map": "N/A" + }, + { + "identity": "rim", + "map": "value.nullFlavor" + } + ] + }, + { + "id": "Observation.component.interpretation", + "path": "Observation.component.interpretation", + "short": "High, low, normal, etc.", + "definition": "A categorical assessment of an observation value. For example, high, low, normal.", + "comment": "Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.", + "requirements": "For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.", + "alias": [ + "Abnormal Flag" + ], + "min": 0, + "max": "*", + "base": { + "path": "Observation.component.interpretation", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ObservationInterpretation" + } + ], + "strength": "extensible", + "description": "Codes identifying interpretations of observations.", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-interpretation" + }, + "mapping": [ + { + "identity": "sct-concept", + "map": "< 260245000 |Findings values|" + }, + { + "identity": "v2", + "map": "OBX-8" + }, + { + "identity": "rim", + "map": "interpretationCode" + }, + { + "identity": "sct-attr", + "map": "363713009 |Has interpretation|" + } + ] + }, + { + "id": "Observation.component.referenceRange", + "path": "Observation.component.referenceRange", + "short": "Provides guide for interpretation of component result", + "definition": "Guidance on how to interpret the value by comparison to a normal or recommended range.", + "comment": "Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.", + "requirements": "Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.", + "min": 0, + "max": "*", + "base": { + "path": "Observation.component.referenceRange", + "min": 0, + "max": "*" + }, + "contentReference": "#Observation.referenceRange", + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "v2", + "map": "OBX.7" + }, + { + "identity": "rim", + "map": "outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]" + } + ] + } + ] + }, + "differential": { + "element": [ + { + "id": "Observation", + "path": "Observation", + "definition": "This profile is created to meet the 2015 Edition Common Clinical Data Set 'Laboratory test(s) and Laboratory value(s)/result(s)' requirements.", + "constraint": [ + { + "key": "us-core-2", + "severity": "error", + "human": "If there is no component or related element then either a value[x] or a data absent reason must be present", + "expression": "(component.empty() and related.empty()) implies (dataAbsentReason or value)", + "xpath": "exists(f:component) or exists(f:related) or exists(f:*[starts-with(local-name(.), 'value)]) or exists(f:dataAbsentReason)" + } + ], + "mustSupport": false, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation" + } + ] + }, + { + "id": "Observation.status", + "path": "Observation.status", + "min": 1, + "max": "1", + "type": [ + { + "code": "code" + } + ], + "mustSupport": true, + "binding": { + "strength": "required", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-status" + }, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.status" + } + ] + }, + { + "id": "Observation.category", + "path": "Observation.category", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "$this" + } + ], + "rules": "open" + }, + "min": 1, + "max": "*", + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.category" + } + ] + }, + { + "id": "Observation.category:Laboratory", + "path": "Observation.category", + "sliceName": "Laboratory", + "min": 1, + "max": "1", + "type": [ + { + "code": "CodeableConcept" + } + ], + "patternCodeableConcept": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + }, + "mustSupport": true, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.category" + } + ] + }, + { + "id": "Observation.code", + "path": "Observation.code", + "short": "Laboratory Test Name", + "definition": "The test that was performed. A LOINC **SHALL** be used if the concept is present in LOINC.", + "comment": "The typical patterns for codes are: 1) a LOINC code either as a translation from a \"local\" code or as a primary code, or 2) a local code only if no suitable LOINC exists, or 3) both the local and the LOINC translation. Systems SHALL be capable of sending the local code if one exists. When using LOINC , Use either the SHORTNAME or LONG_COMMON_NAME field for the display.", + "alias": [ + "Test Name", + "Observation Identifer" + ], + "min": 1, + "max": "1", + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "binding": { + "strength": "extensible", + "description": "LOINC codes", + "valueSet": "http://hl7.org/fhir/ValueSet/observation-codes" + }, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.code" + } + ] + }, + { + "id": "Observation.subject", + "path": "Observation.subject", + "min": 1, + "max": "1", + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" + ] + } + ], + "mustSupport": true, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.subject" + } + ] + }, + { + "id": "Observation.effective[x]", + "path": "Observation.effective[x]", + "definition": "For lab tests this is the specimen collection date. For Ask at Order Entry Questions (AOE)'s this is the date the question was asked.", + "min": 0, + "max": "1", + "type": [ + { + "code": "dateTime" + }, + { + "code": "Period" + } + ], + "constraint": [ + { + "key": "us-core-1", + "severity": "error", + "human": "Datetime must be at least to day.", + "expression": "($this as dateTime).toString().length() >= 8", + "xpath": "f:matches(effectiveDateTime,/\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)/)" + } + ], + "mustSupport": true, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.effective[x]" + } + ] + }, + { + "id": "Observation.value[x]", + "path": "Observation.value[x]", + "short": "Result Value", + "definition": "The Laboratory result value. If a coded value, the valueCodeableConcept.code **SHOULD** be selected from [SNOMED CT](http://hl7.org/fhir/ValueSet/uslab-obs-codedresults). If a numeric value, valueQuantity.code **SHALL** be selected from [UCUM](http://unitsofmeasure.org). A FHIR [UCUM Codes value set](http://hl7.org/fhir/STU3/valueset-ucum-units.html) that defines all UCUM codes is in the FHIR specification.", + "min": 0, + "max": "1", + "constraint": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice", + "valueBoolean": true + } + ], + "key": "us-core-4", + "severity": "warning", + "human": "SHOULD use Snomed CT for coded Results", + "expression": "valueCodeableConcept.coding.system.empty() or valueCodeableConcept.coding.system = 'http://snomed.info/sct'", + "xpath": "not(exists(f:valueCodeableConcept/f:coding/f:system) ) or f:valueCodeableConcept/f:coding/f:system[@value='http://snomed.info/sct']" + }, + { + "key": "us-core-3", + "severity": "error", + "human": "SHALL use UCUM for coded quantity units.", + "expression": "valueQuantity.system.empty() or valueQuantity.system = 'http://unitsofmeasure.org'", + "xpath": "not(exists(f:valueQuantity/f:system) ) or f:valueQuantity/f:system[@value='http://unitsofmeasure.org']" + } + ], + "mustSupport": true, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.value[x]" + } + ] + }, + { + "id": "Observation.dataAbsentReason", + "path": "Observation.dataAbsentReason", + "min": 0, + "max": "1", + "type": [ + { + "code": "CodeableConcept" + } + ], + "mustSupport": true, + "binding": { + "strength": "extensible", + "valueSet": "http://hl7.org/fhir/ValueSet/data-absent-reason" + }, + "mapping": [ + { + "identity": "argonaut-dq-dstu2", + "map": "Observation.dataAbsentReason" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-organization.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-organization.json new file mode 100644 index 000000000..a700aa48e --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-organization.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-organization","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Organization 0..*
    \".\"\".\"\".\" identifier S0..*(Slice Definition)Slice: Unordered, Open by pattern:$this
    \".\"\".\"\".\"\".\" identifier:All Slices Content/Rules for all slices
    \".\"\".\"\".\"\".\"\".\" system S0..1uri
    \".\"\".\"\".\"\".\"\".\" value S0..1string
    \".\"\".\"\".\"\".\" identifier:NPI S0..1IdentifierNational Provider Identifier (NPI)
    Required Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\" system1..1uriThe namespace for the identifier value
    Fixed Value: http://hl7.org/fhir/sid/us-npi
    \".\"\".\"\".\"\".\" identifier:CLIA S0..1IdentifierClinical Laboratory Improvement Amendments (CLIA) Number for laboratories
    Required Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\" system1..1uriThe namespace for the identifier value
    Fixed Value: urn:oid:2.16.840.1.113883.4.7
    \".\"\".\"\".\" active S1..1boolean
    \".\"\".\"\".\" name S1..1string
    \".\"\".\"\".\" telecom S0..*ContactPoint
    \".\"\".\"\".\" address S0..*Address
    \".\"\".\"\".\"\".\" line S0..4string
    \".\"\".\"\".\"\".\" city S0..1string
    \".\"\".\"\".\"\".\" state S0..1stringBinding: USPS Two Letter Alphabetic Codes (extensible)
    \".\"\".\"\".\"\".\" postalCode S0..1stringUS Zip Codes
    \".\"\".\"\".\"\".\" country S0..1string
    \".\"\".\"\".\" endpoint S0..*Reference(Endpoint)

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization","name":"USCoreOrganizationProfile","title":"US Core Organization Profile","status":"active","experimental":false,"date":"2019-08-31T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines basic constraints and extensions on the Organization resource for use with other US Core resources","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"servd","uri":"http://www.omg.org/spec/ServD/1.0/","name":"ServD"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"}],"kind":"resource","abstract":false,"type":"Organization","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Organization","derivation":"constraint","snapshot":{"element":[{"id":"Organization","path":"Organization","short":"A grouping of people or organizations with a common purpose","definition":"A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc.","min":0,"max":"*","base":{"path":"Organization","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"org-1","severity":"error","human":"The organization SHALL at least have a name or an identifier, and possibly more than one","expression":"(identifier.count() + name.count()) > 0","xpath":"count(f:identifier | f:name) > 0","source":"Organization"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"v2","map":"(also see master files messages)"},{"identity":"rim","map":"Organization(classCode=ORG, determinerCode=INST)"},{"identity":"servd","map":"Organization"}]},{"id":"Organization.id","path":"Organization.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Organization.meta","path":"Organization.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Organization.implicitRules","path":"Organization.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Organization.language","path":"Organization.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Organization.text","path":"Organization.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Organization.contained","path":"Organization.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Organization.extension","path":"Organization.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Organization.modifierExtension","path":"Organization.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Organization.identifier","path":"Organization.identifier","slicing":{"discriminator":[{"type":"pattern","path":"$this"}],"rules":"open"},"short":"Identifies this organization across multiple systems","definition":"Identifier for the organization that is used to identify the organization across multiple disparate systems.","comment":"NPI preferred.","requirements":"Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.","min":0,"max":"*","base":{"path":"Organization.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"condition":["org-1"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"XON.10 / XON.3"},{"identity":"rim","map":".scopes[Role](classCode=IDENT)"},{"identity":"servd","map":"./Identifiers"},{"identity":"servd","map":"n/a"}]},{"id":"Organization.identifier.id","path":"Organization.identifier.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Organization.identifier.extension","path":"Organization.identifier.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Organization.identifier.use","path":"Organization.identifier.use","short":"usual | official | temp | secondary | old (If known)","definition":"The purpose of this identifier.","comment":"Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.","requirements":"Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.","min":0,"max":"1","base":{"path":"Identifier.use","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"IdentifierUse"}],"strength":"required","description":"Identifies the purpose for this identifier, if known .","valueSet":"http://hl7.org/fhir/ValueSet/identifier-use|4.0.0"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"Role.code or implied by context"}]},{"id":"Organization.identifier.type","path":"Organization.identifier.type","short":"Description of identifier","definition":"A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.","comment":"This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.","requirements":"Allows users to make use of identifiers when the identifier system is not known.","min":0,"max":"1","base":{"path":"Identifier.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"IdentifierType"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"extensible","description":"A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.","valueSet":"http://hl7.org/fhir/ValueSet/identifier-type"},"mapping":[{"identity":"v2","map":"CX.5"},{"identity":"rim","map":"Role.code or implied by context"}]},{"id":"Organization.identifier.system","path":"Organization.identifier.system","short":"The namespace for the identifier value","definition":"Establishes the namespace for the value - that is, a URL that describes a set values that are unique.","comment":"Identifier.system is always case sensitive.","requirements":"There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.","min":0,"max":"1","base":{"path":"Identifier.system","min":0,"max":"1"},"type":[{"code":"uri"}],"example":[{"label":"General","valueUri":"http://www.acme.com/identifiers/patient"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.4 / EI-2-4"},{"identity":"rim","map":"II.root or Role.id.root"},{"identity":"servd","map":"./IdentifierType"}]},{"id":"Organization.identifier.value","path":"Organization.identifier.value","short":"The value that is unique","definition":"The portion of the identifier typically relevant to the user and which is unique within the context of the system.","comment":"If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](http://hl7.org/fhir/R4/extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.","min":0,"max":"1","base":{"path":"Identifier.value","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"123456"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.1 / EI.1"},{"identity":"rim","map":"II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)"},{"identity":"servd","map":"./Value"}]},{"id":"Organization.identifier.period","path":"Organization.identifier.period","short":"Time period when id is/was valid for use","definition":"Time period during which identifier is/was valid for use.","min":0,"max":"1","base":{"path":"Identifier.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.7 + CX.8"},{"identity":"rim","map":"Role.effectiveTime or implied by context"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Organization.identifier.assigner","path":"Organization.identifier.assigner","short":"Organization that issued id (may be just text)","definition":"Organization that issued/manages the identifier.","comment":"The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.","min":0,"max":"1","base":{"path":"Identifier.assigner","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.4 / (CX.4,CX.9,CX.10)"},{"identity":"rim","map":"II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper"},{"identity":"servd","map":"./IdentifierIssuingAuthority"}]},{"id":"Organization.identifier:NPI","path":"Organization.identifier","sliceName":"NPI","short":"National Provider Identifier (NPI)","definition":"Identifier for the organization that is used to identify the organization across multiple disparate systems.","requirements":"Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.","min":0,"max":"1","base":{"path":"Organization.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"patternIdentifier":{"system":"http://hl7.org/fhir/sid/us-npi"},"condition":["org-1"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"XON.10 / XON.3"},{"identity":"rim","map":".scopes[Role](classCode=IDENT)"},{"identity":"servd","map":"./Identifiers"},{"identity":"servd","map":"n/a"}]},{"id":"Organization.identifier:CLIA","path":"Organization.identifier","sliceName":"CLIA","short":"Clinical Laboratory Improvement Amendments (CLIA) Number for laboratories","definition":"Identifier for the organization that is used to identify the organization across multiple disparate systems.","requirements":"Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.","min":0,"max":"1","base":{"path":"Organization.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"patternIdentifier":{"system":"urn:oid:2.16.840.1.113883.4.7"},"condition":["org-1"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"XON.10 / XON.3"},{"identity":"rim","map":".scopes[Role](classCode=IDENT)"},{"identity":"servd","map":"./Identifiers"},{"identity":"servd","map":"n/a"}]},{"id":"Organization.active","path":"Organization.active","short":"Whether the organization's record is still in active use","definition":"Whether the organization's record is still in active use.","comment":"This active flag is not intended to be used to mark an organization as temporarily closed or under construction. Instead the Location(s) within the Organization should have the suspended status. If further details of the reason for the suspension are required, then an extension on this element should be used.\n\nThis element is labeled as a modifier because it may be used to mark that the resource was created in error.","requirements":"Need a flag to indicate a record is no longer to be used and should generally be hidden for the user in the UI.","min":1,"max":"1","base":{"path":"Organization.active","min":0,"max":"1"},"type":[{"code":"boolean"}],"meaningWhenMissing":"This resource is generally assumed to be active if no value is provided for the active element","mustSupport":true,"isModifier":true,"isModifierReason":"This element is labelled as a modifier because it is a status element that can indicate that a record should not be treated as valid","isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"v2","map":"No equivalent in HL7 v2"},{"identity":"rim","map":".status"},{"identity":"servd","map":"./Status (however this concept in ServD more covers why the organization is active or not, could be delisted, deregistered, not operational yet) this could alternatively be derived from ./StartDate and ./EndDate and given a context date."}]},{"id":"Organization.type","path":"Organization.type","short":"Kind of organization","definition":"The kind(s) of organization that this is.","comment":"Organizations can be corporations, wards, sections, clinical teams, government departments, etc. Note that code is generally a classifier of the type of organization; in many applications, codes are used to identity a particular organization (say, ward) as opposed to another of the same type - these are identifiers, not codes\n\nWhen considering if multiple types are appropriate, you should evaluate if child organizations would be a more appropriate use of the concept, as different types likely are in different sub-areas of the organization. This is most likely to be used where type values have orthogonal values, such as a religious, academic and medical center.\n\nWe expect that some jurisdictions will profile this optionality to be a single cardinality.","requirements":"Need to be able to track the kind of organization that this is - different organization types have different uses.","min":0,"max":"*","base":{"path":"Organization.type","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"OrganizationType"}],"strength":"example","description":"Used to categorize the organization.","valueSet":"http://hl7.org/fhir/ValueSet/organization-type"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"v2","map":"No equivalent in v2"},{"identity":"rim","map":".code"},{"identity":"servd","map":"n/a"}]},{"id":"Organization.name","path":"Organization.name","short":"Name used for the organization","definition":"A name associated with the organization.","comment":"If the name of an organization changes, consider putting the old name in the alias column so that it can still be located through searches.","requirements":"Need to use the name as the label of the organization.","min":1,"max":"1","base":{"path":"Organization.name","min":0,"max":"1"},"type":[{"code":"string"}],"condition":["org-1"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XON.1"},{"identity":"rim","map":".name"},{"identity":"servd","map":".PreferredName/Name"},{"identity":"servd","map":"./PrimaryAddress and ./OtherAddresses"}]},{"id":"Organization.alias","path":"Organization.alias","short":"A list of alternate names that the organization is known as, or was known as in the past","definition":"A list of alternate names that the organization is known as, or was known as in the past.","comment":"There are no dates associated with the alias/historic names, as this is not intended to track when names were used, but to assist in searching so that older names can still result in identifying the organization.","requirements":"Over time locations and organizations go through many changes and can be known by different names.\n\nFor searching knowing previous names that the organization was known by can be very useful.","min":0,"max":"*","base":{"path":"Organization.alias","min":0,"max":"*"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".name"}]},{"id":"Organization.telecom","path":"Organization.telecom","short":"A contact detail for the organization","definition":"A contact detail for the organization.","comment":"The use code 'home' is not to be used. Note that these contacts are not the contact details of people who are employed by or represent the organization, but official contacts for the organization itself.","requirements":"Human contact for the organization.","min":0,"max":"*","base":{"path":"Organization.telecom","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"condition":["org-3"],"constraint":[{"key":"org-3","severity":"error","human":"The telecom of an organization can never be of use 'home'","expression":"where(use = 'home').empty()","xpath":"count(f:use[@value='home']) = 0","source":"Organization.telecom"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"ORC-22?"},{"identity":"rim","map":".telecom"},{"identity":"servd","map":"./ContactPoints"}]},{"id":"Organization.address","path":"Organization.address","short":"An address for the organization","definition":"An address for the organization.","comment":"Organization may have multiple addresses with different uses or applicable periods. The use code 'home' is not to be used.","requirements":"May need to keep track of the organization's addresses for contacting, billing or reporting requirements.","min":0,"max":"*","base":{"path":"Organization.address","min":0,"max":"*"},"type":[{"code":"Address"}],"condition":["org-2"],"constraint":[{"key":"org-2","severity":"error","human":"An address of an organization can never be of use 'home'","expression":"where(use = 'home').empty()","xpath":"count(f:use[@value='home']) = 0","source":"Organization.address"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"ORC-23?"},{"identity":"rim","map":".address"},{"identity":"servd","map":"./PrimaryAddress and ./OtherAddresses"},{"identity":"servd","map":"n/a"}]},{"id":"Organization.address.id","path":"Organization.address.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Organization.address.extension","path":"Organization.address.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Organization.address.use","path":"Organization.address.use","short":"home | work | temp | old | billing - purpose of this address","definition":"The purpose of this address.","comment":"Applications can assume that an address is current unless it explicitly says that it is temporary or old.","requirements":"Allows an appropriate address to be chosen from a list of many.","min":0,"max":"1","base":{"path":"Address.use","min":0,"max":"1"},"type":[{"code":"code"}],"example":[{"label":"General","valueCode":"home"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old address etc.for a current/permanent one","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AddressUse"}],"strength":"required","description":"The use of an address.","valueSet":"http://hl7.org/fhir/ValueSet/address-use|4.0.0"},"mapping":[{"identity":"v2","map":"XAD.7"},{"identity":"rim","map":"unique(./use)"},{"identity":"servd","map":"./AddressPurpose"}]},{"id":"Organization.address.type","path":"Organization.address.type","short":"postal | physical | both","definition":"Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.","comment":"The definition of Address states that \"address is intended to describe postal addresses, not physical locations\". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the [Location](http://hl7.org/fhir/R4/location.html#) resource).","min":0,"max":"1","base":{"path":"Address.type","min":0,"max":"1"},"type":[{"code":"code"}],"example":[{"label":"General","valueCode":"both"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AddressType"}],"strength":"required","description":"The type of an address (physical / postal).","valueSet":"http://hl7.org/fhir/ValueSet/address-type|4.0.0"},"mapping":[{"identity":"v2","map":"XAD.18"},{"identity":"rim","map":"unique(./use)"},{"identity":"vcard","map":"address type parameter"}]},{"id":"Organization.address.text","path":"Organization.address.text","short":"Text representation of the address","definition":"Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.","comment":"Can provide both a text representation and parts. Applications updating an address SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.","requirements":"A renderable, unencoded form.","min":0,"max":"1","base":{"path":"Address.text","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"137 Nowhere Street, Erewhon 9132"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6"},{"identity":"rim","map":"./formatted"},{"identity":"vcard","map":"address label parameter"}]},{"id":"Organization.address.line","path":"Organization.address.line","short":"Street name, number, direction & P.O. Box etc.","definition":"This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.","min":0,"max":"4","base":{"path":"Address.line","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"The order in which lines should appear in an address label","example":[{"label":"General","valueString":"137 Nowhere Street"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.1 + XAD.2 (note: XAD.1 and XAD.2 have different meanings for a company address than for a person address)"},{"identity":"rim","map":"AD.part[parttype = AL]"},{"identity":"vcard","map":"street"},{"identity":"servd","map":"./StreetAddress (newline delimitted)"}]},{"id":"Organization.address.city","path":"Organization.address.city","short":"Name of city, town etc.","definition":"The name of the city, town, suburb, village or other community or delivery center.","alias":["Municpality"],"min":0,"max":"1","base":{"path":"Address.city","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"Erewhon"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.3"},{"identity":"rim","map":"AD.part[parttype = CTY]"},{"identity":"vcard","map":"locality"},{"identity":"servd","map":"./Jurisdiction"}]},{"id":"Organization.address.district","path":"Organization.address.district","short":"District name (aka county)","definition":"The name of the administrative area (county).","comment":"District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.","alias":["County"],"min":0,"max":"1","base":{"path":"Address.district","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"Madison"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.9"},{"identity":"rim","map":"AD.part[parttype = CNT | CPA]"}]},{"id":"Organization.address.state","path":"Organization.address.state","short":"Sub-unit of country (abbreviations ok)","definition":"Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).","alias":["Province","Territory"],"min":0,"max":"1","base":{"path":"Address.state","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Two letter USPS alphabetic codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state"},"mapping":[{"identity":"v2","map":"XAD.4"},{"identity":"rim","map":"AD.part[parttype = STA]"},{"identity":"vcard","map":"region"},{"identity":"servd","map":"./Region"},{"identity":"servd","map":"./Sites"}]},{"id":"Organization.address.postalCode","path":"Organization.address.postalCode","short":"US Zip Codes","definition":"A postal code designating a region defined by the postal service.","alias":["Zip"],"min":0,"max":"1","base":{"path":"Address.postalCode","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"9132"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.5"},{"identity":"rim","map":"AD.part[parttype = ZIP]"},{"identity":"vcard","map":"code"},{"identity":"servd","map":"./PostalIdentificationCode"}]},{"id":"Organization.address.country","path":"Organization.address.country","short":"Country (e.g. can be ISO 3166 2 or 3 letter code)","definition":"Country - a nation as commonly understood or generally accepted.","comment":"ISO 3166 3 letter codes can be used in place of a human readable country name.","min":0,"max":"1","base":{"path":"Address.country","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.6"},{"identity":"rim","map":"AD.part[parttype = CNT]"},{"identity":"vcard","map":"country"},{"identity":"servd","map":"./Country"}]},{"id":"Organization.address.period","path":"Organization.address.period","short":"Time period when address was/is in use","definition":"Time period when address was/is in use.","requirements":"Allows addresses to be placed in historical context.","min":0,"max":"1","base":{"path":"Address.period","min":0,"max":"1"},"type":[{"code":"Period"}],"example":[{"label":"General","valuePeriod":{"start":"2010-03-23T00:00:00+00:00","end":"2010-07-01T00:00:00+00:00"}}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.12 / XAD.13 + XAD.14"},{"identity":"rim","map":"./usablePeriod[type=\"IVL\"]"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Organization.partOf","path":"Organization.partOf","short":"The organization of which this organization forms a part","definition":"The organization of which this organization forms a part.","requirements":"Need to be able to track the hierarchy of organizations within an organization.","min":0,"max":"1","base":{"path":"Organization.partOf","min":0,"max":"1"},"type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy","valueBoolean":true}],"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"No equivalent in HL7 v2"},{"identity":"rim","map":".playedBy[classCode=Part].scoper"},{"identity":"servd","map":"n/a"}]},{"id":"Organization.contact","path":"Organization.contact","short":"Contact for the organization for a certain purpose","definition":"Contact for the organization for a certain purpose.","comment":"Where multiple contacts for the same purpose are provided there is a standard extension that can be used to determine which one is the preferred contact to use.","requirements":"Need to keep track of assigned contact points within bigger organization.","min":0,"max":"*","base":{"path":"Organization.contact","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".contactParty"}]},{"id":"Organization.contact.id","path":"Organization.contact.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Organization.contact.extension","path":"Organization.contact.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Organization.contact.modifierExtension","path":"Organization.contact.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Organization.contact.purpose","path":"Organization.contact.purpose","short":"The type of contact","definition":"Indicates a purpose for which the contact can be reached.","requirements":"Need to distinguish between multiple contact persons.","min":0,"max":"1","base":{"path":"Organization.contact.purpose","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ContactPartyType"}],"strength":"extensible","description":"The purpose for which you would contact a contact party.","valueSet":"http://hl7.org/fhir/ValueSet/contactentity-type"},"mapping":[{"identity":"rim","map":"./type"}]},{"id":"Organization.contact.name","path":"Organization.contact.name","short":"A name associated with the contact","definition":"A name associated with the contact.","requirements":"Need to be able to track the person by name.","min":0,"max":"1","base":{"path":"Organization.contact.name","min":0,"max":"1"},"type":[{"code":"HumanName"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"PID-5, PID-9"},{"identity":"rim","map":"./name"}]},{"id":"Organization.contact.telecom","path":"Organization.contact.telecom","short":"Contact details (telephone, email, etc.) for a contact","definition":"A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.","requirements":"People have (primary) ways to contact them in some way such as phone, email.","min":0,"max":"*","base":{"path":"Organization.contact.telecom","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"PID-13, PID-14"},{"identity":"rim","map":"./telecom"}]},{"id":"Organization.contact.address","path":"Organization.contact.address","short":"Visiting or postal addresses for the contact","definition":"Visiting or postal addresses for the contact.","requirements":"May need to keep track of a contact party's address for contacting, billing or reporting requirements.","min":0,"max":"1","base":{"path":"Organization.contact.address","min":0,"max":"1"},"type":[{"code":"Address"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"PID-11"},{"identity":"rim","map":"./addr"}]},{"id":"Organization.endpoint","path":"Organization.endpoint","short":"Technical endpoints providing access to services operated for the organization","definition":"Technical endpoints providing access to services operated for the organization.","requirements":"Organizations have multiple systems that provide various services and need to be able to define the technical connection details for how to connect to them, and for what purpose.","min":0,"max":"*","base":{"path":"Organization.endpoint","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Endpoint"]}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]}]},"differential":{"element":[{"id":"Organization","path":"Organization","mustSupport":false,"mapping":[{"identity":"servd","map":"Organization"}]},{"id":"Organization.identifier","path":"Organization.identifier","slicing":{"discriminator":[{"type":"pattern","path":"$this"}],"rules":"open"},"comment":"NPI preferred.","min":0,"max":"*","type":[{"code":"Identifier"}],"mustSupport":true,"mapping":[{"identity":"servd","map":"n/a"}]},{"id":"Organization.identifier.system","path":"Organization.identifier.system","min":0,"max":"1","type":[{"code":"uri"}],"mustSupport":true},{"id":"Organization.identifier.value","path":"Organization.identifier.value","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Organization.identifier:NPI","path":"Organization.identifier","sliceName":"NPI","short":"National Provider Identifier (NPI)","min":0,"max":"1","type":[{"code":"Identifier"}],"patternIdentifier":{"system":"http://hl7.org/fhir/sid/us-npi"},"mustSupport":true,"mapping":[{"identity":"servd","map":"n/a"}]},{"id":"Organization.identifier:CLIA","path":"Organization.identifier","sliceName":"CLIA","short":"Clinical Laboratory Improvement Amendments (CLIA) Number for laboratories","min":0,"max":"1","type":[{"code":"Identifier"}],"patternIdentifier":{"system":"urn:oid:2.16.840.1.113883.4.7"},"mustSupport":true,"mapping":[{"identity":"servd","map":"n/a"}]},{"id":"Organization.active","path":"Organization.active","min":1,"max":"1","type":[{"code":"boolean"}],"mustSupport":true},{"id":"Organization.name","path":"Organization.name","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true,"mapping":[{"identity":"servd","map":"./PrimaryAddress and ./OtherAddresses"}]},{"id":"Organization.telecom","path":"Organization.telecom","min":0,"max":"*","type":[{"code":"ContactPoint"}],"mustSupport":true},{"id":"Organization.address","path":"Organization.address","min":0,"max":"*","type":[{"code":"Address"}],"mustSupport":true,"mapping":[{"identity":"servd","map":"n/a"}]},{"id":"Organization.address.line","path":"Organization.address.line","min":0,"max":"4","type":[{"code":"string"}],"mustSupport":true},{"id":"Organization.address.city","path":"Organization.address.city","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Organization.address.state","path":"Organization.address.state","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Two letter USPS alphabetic codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state"},"mapping":[{"identity":"servd","map":"./Sites"}]},{"id":"Organization.address.postalCode","path":"Organization.address.postalCode","short":"US Zip Codes","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Organization.address.country","path":"Organization.address.country","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Organization.endpoint","path":"Organization.endpoint","min":0,"max":"*","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Endpoint"]}],"mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-patient.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-patient.json new file mode 100644 index 000000000..38d5ff696 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-patient.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-patient","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Patient 0..*
    \".\"\".\"\".\" us-core-race S0..1(Complex)US Core Race Extension
    URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
    \".\"\".\"\".\" us-core-ethnicity S0..1(Complex)US Core ethnicity Extension
    URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
    \".\"\".\"\".\" us-core-birthsex S0..1codeExtension
    URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
    Binding: Birth Sex (required)
    \".\"\".\"\".\" identifier S1..*Identifier
    \".\"\".\"\".\"\".\" system S1..1uri
    \".\"\".\"\".\"\".\" value S1..1stringThe value that is unique within the system.
    \".\"\".\"\".\" name SI1..*HumanNameus-core-8: Patient.name.given or Patient.name.family or both SHALL be present
    \".\"\".\"\".\"\".\" family SI0..1string
    \".\"\".\"\".\"\".\" given SI0..*string
    \".\"\".\"\".\" telecom S0..*ContactPoint
    \".\"\".\"\".\"\".\" system S1..1codeBinding: ContactPointSystem (required)
    \".\"\".\"\".\"\".\" value S1..1string
    \".\"\".\"\".\"\".\" use S0..1codeBinding: ContactPointUse (required)
    \".\"\".\"\".\" gender S1..1codeBinding: AdministrativeGender (required)
    \".\"\".\"\".\" birthDate S0..1date
    \".\"\".\"\".\" address S0..*Address
    \".\"\".\"\".\"\".\" line S0..*string
    \".\"\".\"\".\"\".\" city S0..1string
    \".\"\".\"\".\"\".\" state S0..1stringBinding: USPS Two Letter Alphabetic Codes (extensible)
    \".\"\".\"\".\"\".\" postalCode S0..1stringUS Zip Codes
    \".\"\".\"\".\"\".\" period S0..1Period
    \".\"\".\"\".\" communication S0..*BackboneElement
    \".\"\".\"\".\"\".\" language S1..1CodeableConceptBinding: Language codes with language and optionally a region modifier (extensible)

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","version":"3.0.1","name":"USCorePatientProfile","title":"US Core Patient Profile","status":"active","experimental":false,"date":"2019-08-26T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the patient resource for the minimal set of data to query and retrieve patient demographic information.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"cda","uri":"http://hl7.org/v3/cda","name":"CDA (R2)"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"loinc","uri":"http://loinc.org","name":"LOINC code for the element"}],"kind":"resource","abstract":false,"type":"Patient","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Patient","derivation":"constraint","snapshot":{"element":[{"id":"Patient","path":"Patient","short":"Information about an individual or animal receiving health care services","definition":"The US Core Patient Profile is based upon the core FHIR Patient Resource and designed to meet the applicable patient demographic data elements from the 2015 Edition Common Clinical Data Set.","alias":["SubjectOfCare Client Resident"],"min":0,"max":"*","base":{"path":"Patient","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"rim","map":"Patient[classCode=PAT]"},{"identity":"cda","map":"ClinicalDocument.recordTarget.patientRole"},{"identity":"argonaut-dq-dstu2","map":"Patient"}]},{"id":"Patient.id","path":"Patient.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Patient.meta","path":"Patient.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Patient.implicitRules","path":"Patient.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Patient.language","path":"Patient.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Patient.text","path":"Patient.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Patient.contained","path":"Patient.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Patient.extension","path":"Patient.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"ordered":false,"rules":"open"},"short":"Extension","definition":"An Extension","min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false},{"id":"Patient.extension:race","path":"Patient.extension","sliceName":"race","short":"US Core Race Extension","definition":"Concepts classifying the person into a named category of humans sharing common history, traits, geographical origin or nationality. The race codes used to represent these concepts are based upon the [CDC Race and Ethnicity Code Set Version 1.0](http://www.cdc.gov/phin/resources/vocabulary/index.html) which includes over 900 concepts for representing race and ethnicity of which 921 reference race. The race concepts are grouped by and pre-mapped to the 5 OMB race categories: - American Indian or Alaska Native - Asian - Black or African American - Native Hawaiian or Other Pacific Islander - White.","min":0,"max":"1","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension","profile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"]}],"condition":["ele-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"children().count() > id.count()","xpath":"@value|f:*|h:div","source":"Element"},{"key":"ext-1","severity":"error","human":"Must have either extensions or value[x], not both","expression":"extension.exists() != value.exists()","xpath":"exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])","source":"Extension"}],"mustSupport":true,"isModifier":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.extension"}]},{"id":"Patient.extension:ethnicity","path":"Patient.extension","sliceName":"ethnicity","short":"US Core ethnicity Extension","definition":"Concepts classifying the person into a named category of humans sharing common history, traits, geographical origin or nationality. The ethnicity codes used to represent these concepts are based upon the [CDC ethnicity and Ethnicity Code Set Version 1.0](http://www.cdc.gov/phin/resources/vocabulary/index.html) which includes over 900 concepts for representing race and ethnicity of which 43 reference ethnicity. The ethnicity concepts are grouped by and pre-mapped to the 2 OMB ethnicity categories: - Hispanic or Latino - Not Hispanic or Latino.","min":0,"max":"1","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension","profile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"]}],"condition":["ele-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"children().count() > id.count()","xpath":"@value|f:*|h:div","source":"Element"},{"key":"ext-1","severity":"error","human":"Must have either extensions or value[x], not both","expression":"extension.exists() != value.exists()","xpath":"exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])","source":"Extension"}],"mustSupport":true,"isModifier":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.extension"}]},{"id":"Patient.extension:birthsex","path":"Patient.extension","sliceName":"birthsex","short":"Extension","definition":"A code classifying the person's sex assigned at birth as specified by the [Office of the National Coordinator for Health IT (ONC)](https://www.healthit.gov/newsroom/about-onc).","comment":"The codes required are intended to present birth sex (i.e., the sex recorded on the patient’s birth certificate) and not gender identity or reassigned sex.","min":0,"max":"1","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension","profile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"]}],"condition":["ele-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"children().count() > id.count()","xpath":"@value|f:*|h:div","source":"Element"},{"key":"ext-1","severity":"error","human":"Must have either extensions or value[x], not both","expression":"extension.exists() != value.exists()","xpath":"exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])","source":"Extension"}],"mustSupport":true,"isModifier":false,"mapping":[{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender"},{"identity":"iso11179","map":".patient.administrativeGenderCode"},{"identity":"argonaut-dq-dstu2","map":"Patient.extension"}]},{"id":"Patient.modifierExtension","path":"Patient.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Patient.identifier","path":"Patient.identifier","short":"An identifier for this patient","definition":"An identifier for this patient.","requirements":"Patients are almost always assigned specific numerical identifiers.","min":1,"max":"*","base":{"path":"Patient.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":"id"},{"identity":"cda","map":".id"},{"identity":"argonaut-dq-dstu2","map":"Patient.identifier"}]},{"id":"Patient.identifier.id","path":"Patient.identifier.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.identifier.extension","path":"Patient.identifier.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.identifier.use","path":"Patient.identifier.use","short":"usual | official | temp | secondary | old (If known)","definition":"The purpose of this identifier.","comment":"Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.","requirements":"Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.","min":0,"max":"1","base":{"path":"Identifier.use","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"IdentifierUse"}],"strength":"required","description":"Identifies the purpose for this identifier, if known .","valueSet":"http://hl7.org/fhir/ValueSet/identifier-use|4.0.0"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"Role.code or implied by context"}]},{"id":"Patient.identifier.type","path":"Patient.identifier.type","short":"Description of identifier","definition":"A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.","comment":"This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.","requirements":"Allows users to make use of identifiers when the identifier system is not known.","min":0,"max":"1","base":{"path":"Identifier.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"IdentifierType"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"extensible","description":"A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.","valueSet":"http://hl7.org/fhir/ValueSet/identifier-type"},"mapping":[{"identity":"v2","map":"CX.5"},{"identity":"rim","map":"Role.code or implied by context"}]},{"id":"Patient.identifier.system","path":"Patient.identifier.system","short":"The namespace for the identifier value","definition":"Establishes the namespace for the value - that is, a URL that describes a set values that are unique.","comment":"Identifier.system is always case sensitive.","requirements":"There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.","min":1,"max":"1","base":{"path":"Identifier.system","min":0,"max":"1"},"type":[{"code":"uri"}],"example":[{"label":"General","valueUri":"http://www.acme.com/identifiers/patient"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.4 / EI-2-4"},{"identity":"rim","map":"II.root or Role.id.root"},{"identity":"servd","map":"./IdentifierType"},{"identity":"argonaut-dq-dstu2","map":"Patient.identifier.system"}]},{"id":"Patient.identifier.value","path":"Patient.identifier.value","short":"The value that is unique within the system.","definition":"The portion of the identifier typically relevant to the user and which is unique within the context of the system.","comment":"If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](http://hl7.org/fhir/R4/extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.","min":1,"max":"1","base":{"path":"Identifier.value","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"123456"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.1 / EI.1"},{"identity":"rim","map":"II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)"},{"identity":"servd","map":"./Value"},{"identity":"argonaut-dq-dstu2","map":"Patient.identifier.value"}]},{"id":"Patient.identifier.period","path":"Patient.identifier.period","short":"Time period when id is/was valid for use","definition":"Time period during which identifier is/was valid for use.","min":0,"max":"1","base":{"path":"Identifier.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.7 + CX.8"},{"identity":"rim","map":"Role.effectiveTime or implied by context"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Patient.identifier.assigner","path":"Patient.identifier.assigner","short":"Organization that issued id (may be just text)","definition":"Organization that issued/manages the identifier.","comment":"The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.","min":0,"max":"1","base":{"path":"Identifier.assigner","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.4 / (CX.4,CX.9,CX.10)"},{"identity":"rim","map":"II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper"},{"identity":"servd","map":"./IdentifierIssuingAuthority"}]},{"id":"Patient.active","path":"Patient.active","short":"Whether this patient's record is in active use","definition":"Whether this patient record is in active use. \nMany systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules.\n\nIt is often used to filter patient lists to exclude inactive patients\n\nDeceased patients may also be marked as inactive for the same reasons, but may be active for some time after death.","comment":"If a record is inactive, and linked to an active record, then future patient/record updates should occur on the other patient.","requirements":"Need to be able to mark a patient record as not to be used because it was created in error.","min":0,"max":"1","base":{"path":"Patient.active","min":0,"max":"1"},"type":[{"code":"boolean"}],"meaningWhenMissing":"This resource is generally assumed to be active if no value is provided for the active element","isModifier":true,"isModifierReason":"This element is labelled as a modifier because it is a status element that can indicate that a record should not be treated as valid","isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":"statusCode"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.name","path":"Patient.name","short":"A name associated with the patient","definition":"A name associated with the individual.","comment":"A patient may have multiple names with different uses or applicable periods. For animals, the name is a \"HumanName\" in the sense that is assigned and used by humans and has the same patterns.","requirements":"Need to be able to track the patient by multiple names. Examples are your official name and a partner name.","min":1,"max":"*","base":{"path":"Patient.name","min":0,"max":"*"},"type":[{"code":"HumanName"}],"constraint":[{"key":"us-core-8","severity":"error","human":"Patient.name.given or Patient.name.family or both SHALL be present","expression":"family.exists() or given.exists()","xpath":"f:given or f:family"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"PID-5, PID-9"},{"identity":"rim","map":"name"},{"identity":"cda","map":".patient.name"},{"identity":"argonaut-dq-dstu2","map":"Patient.name"}]},{"id":"Patient.name.id","path":"Patient.name.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.name.extension","path":"Patient.name.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.name.use","path":"Patient.name.use","short":"usual | official | temp | nickname | anonymous | old | maiden","definition":"Identifies the purpose for this name.","comment":"Applications can assume that a name is current unless it explicitly says that it is temporary or old.","requirements":"Allows the appropriate name for a particular context of use to be selected from among a set of names.","min":0,"max":"1","base":{"path":"HumanName.use","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old name etc.for a current/permanent one","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"NameUse"}],"strength":"required","description":"The use of a human name.","valueSet":"http://hl7.org/fhir/ValueSet/name-use|4.0.0"},"mapping":[{"identity":"v2","map":"XPN.7, but often indicated by which field contains the name"},{"identity":"rim","map":"unique(./use)"},{"identity":"servd","map":"./NamePurpose"}]},{"id":"Patient.name.text","path":"Patient.name.text","short":"Text representation of the full name","definition":"Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.","comment":"Can provide both a text representation and parts. Applications updating a name SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.","requirements":"A renderable, unencoded form.","min":0,"max":"1","base":{"path":"HumanName.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"implied by XPN.11"},{"identity":"rim","map":"./formatted"}]},{"id":"Patient.name.family","path":"Patient.name.family","short":"Family name (often called 'Surname')","definition":"The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.","comment":"Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).","alias":["surname"],"min":0,"max":"1","base":{"path":"HumanName.family","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN.1/FN.1"},{"identity":"rim","map":"./part[partType = FAM]"},{"identity":"servd","map":"./FamilyName"},{"identity":"argonaut-dq-dstu2","map":"Patient.name.family"}]},{"id":"Patient.name.given","path":"Patient.name.given","short":"Given names (not always 'first'). Includes middle names","definition":"Given name.","comment":"If only initials are recorded, they may be used in place of the full name parts. Initials may be separated into multiple given names but often aren't due to paractical limitations. This element is not called \"first name\" since given names do not always come first.","alias":["first name","middle name"],"min":0,"max":"*","base":{"path":"HumanName.given","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"Given Names appear in the correct order for presenting the name","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN.2 + XPN.3"},{"identity":"rim","map":"./part[partType = GIV]"},{"identity":"servd","map":"./GivenNames"},{"identity":"argonaut-dq-dstu2","map":"Patient.name.given"}]},{"id":"Patient.name.prefix","path":"Patient.name.prefix","short":"Parts that come before the name","definition":"Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.","min":0,"max":"*","base":{"path":"HumanName.prefix","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"Prefixes appear in the correct order for presenting the name","isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN.5"},{"identity":"rim","map":"./part[partType = PFX]"},{"identity":"servd","map":"./TitleCode"}]},{"id":"Patient.name.suffix","path":"Patient.name.suffix","short":"Parts that come after the name","definition":"Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.","min":0,"max":"*","base":{"path":"HumanName.suffix","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"Suffixes appear in the correct order for presenting the name","isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN/4"},{"identity":"rim","map":"./part[partType = SFX]"}]},{"id":"Patient.name.period","path":"Patient.name.period","short":"Time period when name was/is in use","definition":"Indicates the period of time when this name was valid for the named person.","requirements":"Allows names to be placed in historical context.","min":0,"max":"1","base":{"path":"HumanName.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN.13 + XPN.14"},{"identity":"rim","map":"./usablePeriod[type=\"IVL\"]"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Patient.telecom","path":"Patient.telecom","short":"A contact detail for the individual","definition":"A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.","comment":"A Patient may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently and also to help with identification. The address might not go directly to the individual, but may reach another party that is able to proxy for the patient (i.e. home phone, or pet owner's phone).","requirements":"People have (primary) ways to contact them in some way such as phone, email.","min":0,"max":"*","base":{"path":"Patient.telecom","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"PID-13, PID-14, PID-40"},{"identity":"rim","map":"telecom"},{"identity":"cda","map":".telecom"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.telecom.id","path":"Patient.telecom.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.telecom.extension","path":"Patient.telecom.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.telecom.system","path":"Patient.telecom.system","short":"phone | fax | email | pager | url | sms | other","definition":"Telecommunications form for contact point - what communications system is required to make use of the contact.","min":1,"max":"1","base":{"path":"ContactPoint.system","min":0,"max":"1"},"type":[{"code":"code"}],"condition":["cpt-2"],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"required","description":"Telecommunications form for contact point.","valueSet":"http://hl7.org/fhir/ValueSet/contact-point-system"},"mapping":[{"identity":"v2","map":"XTN.3"},{"identity":"rim","map":"./scheme"},{"identity":"servd","map":"./ContactPointType"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.telecom.value","path":"Patient.telecom.value","short":"The actual contact point details","definition":"The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).","comment":"Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value.","requirements":"Need to support legacy numbers that are not in a tightly controlled format.","min":1,"max":"1","base":{"path":"ContactPoint.value","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XTN.1 (or XTN.12)"},{"identity":"rim","map":"./url"},{"identity":"servd","map":"./Value"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.telecom.use","path":"Patient.telecom.use","short":"home | work | temp | old | mobile - purpose of this contact point","definition":"Identifies the purpose for the contact point.","comment":"Applications can assume that a contact is current unless it explicitly says that it is temporary or old.","requirements":"Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose.","min":0,"max":"1","base":{"path":"ContactPoint.use","min":0,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old contact etc.for a current/permanent one","isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/contact-point-use"},"mapping":[{"identity":"v2","map":"XTN.2 - but often indicated by field"},{"identity":"rim","map":"unique(./use)"},{"identity":"servd","map":"./ContactPointPurpose"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.telecom.rank","path":"Patient.telecom.rank","short":"Specify preferred order of use (1 = highest)","definition":"Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.","comment":"Note that rank does not necessarily follow the order in which the contacts are represented in the instance.","min":0,"max":"1","base":{"path":"ContactPoint.rank","min":0,"max":"1"},"type":[{"code":"positiveInt"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"n/a"},{"identity":"rim","map":"n/a"}]},{"id":"Patient.telecom.period","path":"Patient.telecom.period","short":"Time period when the contact point was/is in use","definition":"Time period when the contact point was/is in use.","min":0,"max":"1","base":{"path":"ContactPoint.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"./usablePeriod[type=\"IVL\"]"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Patient.gender","path":"Patient.gender","short":"male | female | other | unknown","definition":"Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.","comment":"The gender might not match the biological sex as determined by genetics or the individual's preferred identification. Note that for both humans and particularly animals, there are other legitimate possibilities than male and female, though the vast majority of systems and contexts only support male and female. Systems providing decision support or enforcing business rules should ideally do this on the basis of Observations dealing with the specific sex or gender aspect of interest (anatomical, chromosomal, social, etc.) However, because these observations are infrequently recorded, defaulting to the administrative gender is common practice. Where such defaulting occurs, rule enforcement should allow for the variation between administrative and biological, chromosomal and other gender aspects. For example, an alert about a hysterectomy on a male should be handled as a warning or overridable error, not a \"hard\" error. See the Patient Gender and Sex section for additional information about communicating patient gender and sex.","requirements":"Needed for identification of the individual, in combination with (at least) name and birth date.","min":1,"max":"1","base":{"path":"Patient.gender","min":0,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/administrative-gender"},"mapping":[{"identity":"v2","map":"PID-8"},{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender"},{"identity":"cda","map":".patient.administrativeGenderCode"},{"identity":"argonaut-dq-dstu2","map":"Patient.gender"}]},{"id":"Patient.birthDate","path":"Patient.birthDate","short":"The date of birth for the individual","definition":"The date of birth for the individual.","comment":"At least an estimated year should be provided as a guess if the real DOB is unknown There is a standard extension \"patient-birthTime\" available that should be used where Time is required (such as in maternity/infant care systems).","requirements":"Age of the individual drives many clinical processes.","min":0,"max":"1","base":{"path":"Patient.birthDate","min":0,"max":"1"},"type":[{"code":"date"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"PID-7"},{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/birthTime"},{"identity":"cda","map":".patient.birthTime"},{"identity":"loinc","map":"21112-8"},{"identity":"argonaut-dq-dstu2","map":"Patient.birthDate"}]},{"id":"Patient.deceased[x]","path":"Patient.deceased[x]","short":"Indicates if the individual is deceased or not","definition":"Indicates if the individual is deceased or not.","comment":"If there's no value in the instance, it means there is no statement on whether or not the individual is deceased. Most systems will interpret the absence of a value as a sign of the person being alive.","requirements":"The fact that a patient is deceased influences the clinical process. Also, in human communication and relation management it is necessary to know whether the person is alive.","min":0,"max":"1","base":{"path":"Patient.deceased[x]","min":0,"max":"1"},"type":[{"code":"boolean"},{"code":"dateTime"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because once a patient is marked as deceased, the actions that are appropriate to perform on the patient may be significantly different.","isSummary":true,"mapping":[{"identity":"v2","map":"PID-30 (bool) and PID-29 (datetime)"},{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedInd, player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedTime"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.address","path":"Patient.address","short":"An address for the individual","definition":"An address for the individual.","comment":"Patient may have multiple addresses with different uses or applicable periods.","requirements":"May need to keep track of patient addresses for contacting, billing or reporting requirements and also to help with identification.","min":0,"max":"*","base":{"path":"Patient.address","min":0,"max":"*"},"type":[{"code":"Address"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"PID-11"},{"identity":"rim","map":"addr"},{"identity":"cda","map":".addr"},{"identity":"argonaut-dq-dstu2","map":"Patient.birthDate"}]},{"id":"Patient.address.id","path":"Patient.address.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.address.extension","path":"Patient.address.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.address.use","path":"Patient.address.use","short":"home | work | temp | old | billing - purpose of this address","definition":"The purpose of this address.","comment":"Applications can assume that an address is current unless it explicitly says that it is temporary or old.","requirements":"Allows an appropriate address to be chosen from a list of many.","min":0,"max":"1","base":{"path":"Address.use","min":0,"max":"1"},"type":[{"code":"code"}],"example":[{"label":"General","valueCode":"home"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old address etc.for a current/permanent one","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AddressUse"}],"strength":"required","description":"The use of an address.","valueSet":"http://hl7.org/fhir/ValueSet/address-use|4.0.0"},"mapping":[{"identity":"v2","map":"XAD.7"},{"identity":"rim","map":"unique(./use)"},{"identity":"servd","map":"./AddressPurpose"}]},{"id":"Patient.address.type","path":"Patient.address.type","short":"postal | physical | both","definition":"Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.","comment":"The definition of Address states that \"address is intended to describe postal addresses, not physical locations\". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the [Location](http://hl7.org/fhir/R4/location.html#) resource).","min":0,"max":"1","base":{"path":"Address.type","min":0,"max":"1"},"type":[{"code":"code"}],"example":[{"label":"General","valueCode":"both"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AddressType"}],"strength":"required","description":"The type of an address (physical / postal).","valueSet":"http://hl7.org/fhir/ValueSet/address-type|4.0.0"},"mapping":[{"identity":"v2","map":"XAD.18"},{"identity":"rim","map":"unique(./use)"},{"identity":"vcard","map":"address type parameter"}]},{"id":"Patient.address.text","path":"Patient.address.text","short":"Text representation of the address","definition":"Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.","comment":"Can provide both a text representation and parts. Applications updating an address SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.","requirements":"A renderable, unencoded form.","min":0,"max":"1","base":{"path":"Address.text","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"137 Nowhere Street, Erewhon 9132"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6"},{"identity":"rim","map":"./formatted"},{"identity":"vcard","map":"address label parameter"}]},{"id":"Patient.address.line","path":"Patient.address.line","short":"Street name, number, direction & P.O. Box etc.","definition":"This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.","min":0,"max":"*","base":{"path":"Address.line","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"The order in which lines should appear in an address label","example":[{"label":"General","valueString":"137 Nowhere Street"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.1 + XAD.2 (note: XAD.1 and XAD.2 have different meanings for a company address than for a person address)"},{"identity":"rim","map":"AD.part[parttype = AL]"},{"identity":"vcard","map":"street"},{"identity":"servd","map":"./StreetAddress (newline delimitted)"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.address.city","path":"Patient.address.city","short":"Name of city, town etc.","definition":"The name of the city, town, suburb, village or other community or delivery center.","alias":["Municpality"],"min":0,"max":"1","base":{"path":"Address.city","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"Erewhon"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.3"},{"identity":"rim","map":"AD.part[parttype = CTY]"},{"identity":"vcard","map":"locality"},{"identity":"servd","map":"./Jurisdiction"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.address.district","path":"Patient.address.district","short":"District name (aka county)","definition":"The name of the administrative area (county).","comment":"District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.","alias":["County"],"min":0,"max":"1","base":{"path":"Address.district","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"Madison"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.9"},{"identity":"rim","map":"AD.part[parttype = CNT | CPA]"}]},{"id":"Patient.address.state","path":"Patient.address.state","short":"Sub-unit of country (abbreviations ok)","definition":"Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).","alias":["Province","Territory"],"min":0,"max":"1","base":{"path":"Address.state","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Two Letter USPS alphabetic codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state"},"mapping":[{"identity":"v2","map":"XAD.4"},{"identity":"rim","map":"AD.part[parttype = STA]"},{"identity":"vcard","map":"region"},{"identity":"servd","map":"./Region"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.address.postalCode","path":"Patient.address.postalCode","short":"US Zip Codes","definition":"A postal code designating a region defined by the postal service.","alias":["Zip","Zip Code"],"min":0,"max":"1","base":{"path":"Address.postalCode","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"9132"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.5"},{"identity":"rim","map":"AD.part[parttype = ZIP]"},{"identity":"vcard","map":"code"},{"identity":"servd","map":"./PostalIdentificationCode"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.address.country","path":"Patient.address.country","short":"Country (e.g. can be ISO 3166 2 or 3 letter code)","definition":"Country - a nation as commonly understood or generally accepted.","comment":"ISO 3166 3 letter codes can be used in place of a human readable country name.","min":0,"max":"1","base":{"path":"Address.country","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.6"},{"identity":"rim","map":"AD.part[parttype = CNT]"},{"identity":"vcard","map":"country"},{"identity":"servd","map":"./Country"}]},{"id":"Patient.address.period","path":"Patient.address.period","short":"Time period when address was/is in use","definition":"Time period when address was/is in use.","requirements":"Allows addresses to be placed in historical context.","min":0,"max":"1","base":{"path":"Address.period","min":0,"max":"1"},"type":[{"code":"Period"}],"example":[{"label":"General","valuePeriod":{"start":"2010-03-23T00:00:00+00:00","end":"2010-07-01T00:00:00+00:00"}}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XAD.12 / XAD.13 + XAD.14"},{"identity":"rim","map":"./usablePeriod[type=\"IVL\"]"},{"identity":"servd","map":"./StartDate and ./EndDate"},{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.maritalStatus","path":"Patient.maritalStatus","short":"Marital (civil) status of a patient","definition":"This field contains a patient's most recent marital (civil) status.","requirements":"Most, if not all systems capture it.","min":0,"max":"1","base":{"path":"Patient.maritalStatus","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"MaritalStatus"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"extensible","description":"The domestic partnership status of a person.","valueSet":"http://hl7.org/fhir/ValueSet/marital-status"},"mapping":[{"identity":"v2","map":"PID-16"},{"identity":"rim","map":"player[classCode=PSN]/maritalStatusCode"},{"identity":"cda","map":".patient.maritalStatusCode"}]},{"id":"Patient.multipleBirth[x]","path":"Patient.multipleBirth[x]","short":"Whether patient is part of a multiple birth","definition":"Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer).","comment":"Where the valueInteger is provided, the number is the birth number in the sequence. E.g. The middle birth in triplets would be valueInteger=2 and the third born would have valueInteger=3 If a boolean value was provided for this triplets example, then all 3 patient records would have valueBoolean=true (the ordering is not indicated).","requirements":"For disambiguation of multiple-birth children, especially relevant where the care provider doesn't meet the patient, such as labs.","min":0,"max":"1","base":{"path":"Patient.multipleBirth[x]","min":0,"max":"1"},"type":[{"code":"boolean"},{"code":"integer"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"PID-24 (bool), PID-25 (integer)"},{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthInd, player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthOrderNumber"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.photo","path":"Patient.photo","short":"Image of the patient","definition":"Image of the patient.","comment":"Guidelines:\n* Use id photos, not clinical photos.\n* Limit dimensions to thumbnail.\n* Keep byte count low to ease resource updates.","requirements":"Many EHR systems have the capability to capture an image of the patient. Fits with newer social media usage too.","min":0,"max":"*","base":{"path":"Patient.photo","min":0,"max":"*"},"type":[{"code":"Attachment"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-5 - needs a profile"},{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/desc"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.contact","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name","valueString":"Contact"}],"path":"Patient.contact","short":"A contact party (e.g. guardian, partner, friend) for the patient","definition":"A contact party (e.g. guardian, partner, friend) for the patient.","comment":"Contact covers all kinds of contact parties: family members, business contacts, guardians, caregivers. Not applicable to register pedigree and family ties beyond use of having contact.","requirements":"Need to track people you can contact about the patient.","min":0,"max":"*","base":{"path":"Patient.contact","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"pat-1","severity":"error","human":"SHALL at least contain a contact's details or a reference to an organization","expression":"name.exists() or telecom.exists() or address.exists() or organization.exists()","xpath":"exists(f:name) or exists(f:telecom) or exists(f:address) or exists(f:organization)"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/scopedRole[classCode=CON]"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.contact.id","path":"Patient.contact.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.contact.extension","path":"Patient.contact.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.contact.modifierExtension","path":"Patient.contact.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Patient.contact.relationship","path":"Patient.contact.relationship","short":"The kind of relationship","definition":"The nature of the relationship between the patient and the contact person.","requirements":"Used to determine which contact person is the most relevant to approach, depending on circumstances.","min":0,"max":"*","base":{"path":"Patient.contact.relationship","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ContactRelationship"}],"strength":"extensible","description":"The nature of the relationship between a patient and a contact person for that patient.","valueSet":"http://hl7.org/fhir/ValueSet/patient-contactrelationship"},"mapping":[{"identity":"v2","map":"NK1-7, NK1-3"},{"identity":"rim","map":"code"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.contact.name","path":"Patient.contact.name","short":"A name associated with the contact person","definition":"A name associated with the contact person.","requirements":"Contact persons need to be identified by name, but it is uncommon to need details about multiple other names for that contact person.","min":0,"max":"1","base":{"path":"Patient.contact.name","min":0,"max":"1"},"type":[{"code":"HumanName"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NK1-2"},{"identity":"rim","map":"name"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.contact.telecom","path":"Patient.contact.telecom","short":"A contact detail for the person","definition":"A contact detail for the person, e.g. a telephone number or an email address.","comment":"Contact may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently, and also to help with identification.","requirements":"People have (primary) ways to contact them in some way such as phone, email.","min":0,"max":"*","base":{"path":"Patient.contact.telecom","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NK1-5, NK1-6, NK1-40"},{"identity":"rim","map":"telecom"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.contact.address","path":"Patient.contact.address","short":"Address for the contact person","definition":"Address for the contact person.","requirements":"Need to keep track where the contact person can be contacted per postal mail or visited.","min":0,"max":"1","base":{"path":"Patient.contact.address","min":0,"max":"1"},"type":[{"code":"Address"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NK1-4"},{"identity":"rim","map":"addr"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.contact.gender","path":"Patient.contact.gender","short":"male | female | other | unknown","definition":"Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.","requirements":"Needed to address the person correctly.","min":0,"max":"1","base":{"path":"Patient.contact.gender","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AdministrativeGender"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"required","description":"The gender of a person used for administrative purposes.","valueSet":"http://hl7.org/fhir/ValueSet/administrative-gender|4.0.0"},"mapping":[{"identity":"v2","map":"NK1-15"},{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.contact.organization","path":"Patient.contact.organization","short":"Organization that is associated with the contact","definition":"Organization on behalf of which the contact is acting or for which the contact is working.","requirements":"For guardians or business related contacts, the organization is relevant.","min":0,"max":"1","base":{"path":"Patient.contact.organization","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"condition":["pat-1"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NK1-13, NK1-30, NK1-31, NK1-32, NK1-41"},{"identity":"rim","map":"scoper"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.contact.period","path":"Patient.contact.period","short":"The period during which this contact person or organization is valid to be contacted relating to this patient","definition":"The period during which this contact person or organization is valid to be contacted relating to this patient.","min":0,"max":"1","base":{"path":"Patient.contact.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"effectiveTime"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.communication","path":"Patient.communication","short":"A language which may be used to communicate with the patient about his or her health","definition":"A language which may be used to communicate with the patient about his or her health.","comment":"If no language is specified, this *implies* that the default local language is spoken. If you need to convey proficiency for multiple modes, then you need multiple Patient.Communication associations. For animals, language is not a relevant field, and should be absent from the instance. If the Patient does not speak the default local language, then the Interpreter Required Standard can be used to explicitly declare that an interpreter is required.","requirements":"If a patient does not speak the local language, interpreters may be required, so languages spoken and proficiency are important things to keep track of both for patient and other persons of interest.","min":0,"max":"*","base":{"path":"Patient.communication","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"LanguageCommunication"},{"identity":"cda","map":"patient.languageCommunication"},{"identity":"argonaut-dq-dstu2","map":"Patient.communication"}]},{"id":"Patient.communication.id","path":"Patient.communication.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.communication.extension","path":"Patient.communication.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.communication.modifierExtension","path":"Patient.communication.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Patient.communication.language","path":"Patient.communication.language","short":"The language which can be used to communicate with the patient about his or her health","definition":"The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-EN\" for England English.","comment":"The structure aa-BB with this exact casing is one the most widely used notations for locale. However not all systems actually code this but instead have it as free text. Hence CodeableConcept instead of code as the data type.","requirements":"Most systems in multilingual countries will want to convey language. Not all systems actually need the regional dialect.","min":1,"max":"1","base":{"path":"Patient.communication.language","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/simple-language"},"mapping":[{"identity":"v2","map":"PID-15, LAN-2"},{"identity":"rim","map":"player[classCode=PSN|ANM and determinerCode=INSTANCE]/languageCommunication/code"},{"identity":"cda","map":".languageCode"},{"identity":"argonaut-dq-dstu2","map":"Patient.communication.language"}]},{"id":"Patient.communication.preferred","path":"Patient.communication.preferred","short":"Language preference indicator","definition":"Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).","comment":"This language is specifically identified for communicating healthcare information.","requirements":"People that master multiple languages up to certain level may prefer one or more, i.e. feel more confident in communicating in a particular language making other languages sort of a fall back method.","min":0,"max":"1","base":{"path":"Patient.communication.preferred","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"PID-15"},{"identity":"rim","map":"preferenceInd"},{"identity":"cda","map":".preferenceInd"}]},{"id":"Patient.generalPractitioner","path":"Patient.generalPractitioner","short":"Patient's nominated primary care provider","definition":"Patient's nominated care provider.","comment":"This may be the primary care provider (in a GP context), or it may be a patient nominated care manager in a community/disability setting, or even organization that will provide people to perform the care provider roles. It is not to be used to record Care Teams, these should be in a CareTeam resource that may be linked to the CarePlan or EpisodeOfCare resources.\nMultiple GPs may be recorded against the patient for various reasons, such as a student that has his home GP listed along with the GP at university during the school semesters, or a \"fly-in/fly-out\" worker that has the onsite GP also included with his home GP to remain aware of medical issues.\n\nJurisdictions may decide that they can profile this down to 1 if desired, or 1 per type.","alias":["careProvider"],"min":0,"max":"*","base":{"path":"Patient.generalPractitioner","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"PD1-4"},{"identity":"rim","map":"subjectOf.CareEvent.performer.AssignedEntity"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.managingOrganization","path":"Patient.managingOrganization","short":"Organization that is the custodian of the patient record","definition":"Organization that is the custodian of the patient record.","comment":"There is only one managing organization for a specific patient record. Other organizations will have their own Patient record, and may use the Link property to join the records together (or a Person resource which can include confidence ratings for the association).","requirements":"Need to know who recognizes this patient record, manages and updates it.","min":0,"max":"1","base":{"path":"Patient.managingOrganization","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"scoper"},{"identity":"cda","map":".providerOrganization"}]},{"id":"Patient.link","path":"Patient.link","short":"Link to another patient resource that concerns the same actual person","definition":"Link to another patient resource that concerns the same actual patient.","comment":"There is no assumption that linked patient records have mutual links.","requirements":"There are multiple use cases: \n\n* Duplicate patient records due to the clerical errors associated with the difficulties of identifying humans consistently, and \n* Distribution of patient information across multiple servers.","min":0,"max":"*","base":{"path":"Patient.link","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it might not be the main Patient resource, and the referenced patient should be used instead of this Patient record. This is when the link.type value is 'replaced-by'","isSummary":true,"mapping":[{"identity":"rim","map":"outboundLink"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.link.id","path":"Patient.link.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.link.extension","path":"Patient.link.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Patient.link.modifierExtension","path":"Patient.link.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Patient.link.other","path":"Patient.link.other","short":"The other patient or related person resource that the link refers to","definition":"The other patient resource that the link refers to.","comment":"Referencing a RelatedPerson here removes the need to use a Person record to associate a Patient and RelatedPerson as the same individual.","min":1,"max":"1","base":{"path":"Patient.link.other","min":1,"max":"1"},"type":[{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy","valueBoolean":false}],"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"PID-3, MRG-1"},{"identity":"rim","map":"id"},{"identity":"cda","map":"n/a"}]},{"id":"Patient.link.type","path":"Patient.link.type","short":"replaced-by | replaces | refer | seealso","definition":"The type of link between this patient resource and another patient resource.","min":1,"max":"1","base":{"path":"Patient.link.type","min":1,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"LinkType"}],"strength":"required","description":"The type of link between this patient resource and another patient resource.","valueSet":"http://hl7.org/fhir/ValueSet/link-type|4.0.0"},"mapping":[{"identity":"rim","map":"typeCode"},{"identity":"cda","map":"n/a"}]}]},"differential":{"element":[{"id":"Patient","path":"Patient","definition":"The US Core Patient Profile is based upon the core FHIR Patient Resource and designed to meet the applicable patient demographic data elements from the 2015 Edition Common Clinical Data Set.","mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient"}]},{"id":"Patient.extension:race","path":"Patient.extension","sliceName":"race","min":0,"max":"1","type":[{"code":"Extension","profile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.extension"}]},{"id":"Patient.extension:ethnicity","path":"Patient.extension","sliceName":"ethnicity","min":0,"max":"1","type":[{"code":"Extension","profile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.extension"}]},{"id":"Patient.extension:birthsex","path":"Patient.extension","sliceName":"birthsex","min":0,"max":"1","type":[{"code":"Extension","profile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"]}],"mustSupport":true,"binding":{"strength":"required","description":"Code for sex assigned at birth","valueSet":"http://hl7.org/fhir/us/core/ValueSet/birthsex"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.extension"}]},{"id":"Patient.identifier","path":"Patient.identifier","min":1,"max":"*","type":[{"code":"Identifier"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.identifier"}]},{"id":"Patient.identifier.system","path":"Patient.identifier.system","min":1,"max":"1","type":[{"code":"uri"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.identifier.system"}]},{"id":"Patient.identifier.value","path":"Patient.identifier.value","short":"The value that is unique within the system.","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.identifier.value"}]},{"id":"Patient.name","path":"Patient.name","min":1,"max":"*","type":[{"code":"HumanName"}],"constraint":[{"key":"us-core-8","severity":"error","human":"Patient.name.given or Patient.name.family or both SHALL be present","expression":"family.exists() or given.exists()","xpath":"f:given or f:family"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.name"}]},{"id":"Patient.name.family","path":"Patient.name.family","min":0,"max":"1","type":[{"code":"string"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.name.family"}]},{"id":"Patient.name.given","path":"Patient.name.given","min":0,"max":"*","type":[{"code":"string"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.name.given"}]},{"id":"Patient.telecom","path":"Patient.telecom","min":0,"max":"*","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.telecom.system","path":"Patient.telecom.system","min":1,"max":"1","mustSupport":true,"binding":{"strength":"required","description":"Telecommunications form for contact point.","valueSet":"http://hl7.org/fhir/ValueSet/contact-point-system"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.telecom.value","path":"Patient.telecom.value","min":1,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.telecom.use","path":"Patient.telecom.use","min":0,"max":"1","mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/contact-point-use"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.gender","path":"Patient.gender","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/administrative-gender"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.gender"}]},{"id":"Patient.birthDate","path":"Patient.birthDate","min":0,"max":"1","type":[{"code":"date"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.birthDate"}]},{"id":"Patient.address","path":"Patient.address","min":0,"max":"*","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.birthDate"}]},{"id":"Patient.address.line","path":"Patient.address.line","min":0,"max":"*","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.address.city","path":"Patient.address.city","min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.address.state","path":"Patient.address.state","min":0,"max":"1","mustSupport":true,"binding":{"strength":"extensible","description":"Two Letter USPS alphabetic codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.address.postalCode","path":"Patient.address.postalCode","short":"US Zip Codes","alias":["Zip Code"],"min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.address.period","path":"Patient.address.period","min":0,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"NA"}]},{"id":"Patient.communication","path":"Patient.communication","min":0,"max":"*","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.communication"}]},{"id":"Patient.communication.language","path":"Patient.communication.language","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/simple-language"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Patient.communication.language"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-practitioner.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-practitioner.json new file mode 100644 index 000000000..d7f3707f6 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-practitioner.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-practitioner","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Practitioner 0..*
    \".\"\".\"\".\" identifier S1..*(Slice Definition)Slice: Unordered, Open by pattern:$this
    \".\"\".\"\".\"\".\" identifier:All Slices Content/Rules for all slices
    \".\"\".\"\".\"\".\"\".\" system S1..1uri
    \".\"\".\"\".\"\".\"\".\" value S1..1string
    \".\"\".\"\".\"\".\" identifier:NPI S0..1IdentifierRequired Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\" system1..1uriThe namespace for the identifier value
    Fixed Value: http://hl7.org/fhir/sid/us-npi
    \".\"\".\"\".\" name S1..*HumanName
    \".\"\".\"\".\"\".\" family S1..1string

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","name":"USCorePractitionerProfile","title":"US Core Practitioner Profile","status":"active","experimental":false,"date":"2019-09-02T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"The practitioner(s) referenced in US Core profiles.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"servd","uri":"http://www.omg.org/spec/ServD/1.0/","name":"ServD"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"}],"kind":"resource","abstract":false,"type":"Practitioner","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Practitioner","derivation":"constraint","snapshot":{"element":[{"id":"Practitioner","path":"Practitioner","short":"A person with a formal responsibility in the provisioning of healthcare or related services","definition":"This is basic constraint on provider for use in US Core resources.","alias":["Provider"],"min":0,"max":"*","base":{"path":"Practitioner","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"v2","map":"PRD (as one example)"},{"identity":"rim","map":"Role"},{"identity":"servd","map":"Provider"}]},{"id":"Practitioner.id","path":"Practitioner.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Practitioner.meta","path":"Practitioner.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Practitioner.implicitRules","path":"Practitioner.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Practitioner.language","path":"Practitioner.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Practitioner.text","path":"Practitioner.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Practitioner.contained","path":"Practitioner.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Practitioner.extension","path":"Practitioner.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Practitioner.modifierExtension","path":"Practitioner.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Practitioner.identifier","path":"Practitioner.identifier","slicing":{"discriminator":[{"type":"pattern","path":"$this"}],"rules":"open"},"short":"An identifier for the person as this agent","definition":"An identifier that applies to this person in this role.","comment":"NPI must be supported as the identifier system in the US, Tax id is allowed, Local id is allowed in addition to an another identifier supplied by a jurisdictional authority such as a practitioner's *Drug Enforcement Administration (DEA)* number.","requirements":"Often, specific identities are assigned for the agent.","min":1,"max":"*","base":{"path":"Practitioner.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"PRD-7 (or XCN.1)"},{"identity":"rim","map":"./id"},{"identity":"servd","map":"./Identifiers"}]},{"id":"Practitioner.identifier.id","path":"Practitioner.identifier.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Practitioner.identifier.extension","path":"Practitioner.identifier.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Practitioner.identifier.use","path":"Practitioner.identifier.use","short":"usual | official | temp | secondary | old (If known)","definition":"The purpose of this identifier.","comment":"Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.","requirements":"Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.","min":0,"max":"1","base":{"path":"Identifier.use","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"IdentifierUse"}],"strength":"required","description":"Identifies the purpose for this identifier, if known .","valueSet":"http://hl7.org/fhir/ValueSet/identifier-use|4.0.0"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"Role.code or implied by context"}]},{"id":"Practitioner.identifier.type","path":"Practitioner.identifier.type","short":"Description of identifier","definition":"A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.","comment":"This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.","requirements":"Allows users to make use of identifiers when the identifier system is not known.","min":0,"max":"1","base":{"path":"Identifier.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"IdentifierType"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"extensible","description":"A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.","valueSet":"http://hl7.org/fhir/ValueSet/identifier-type"},"mapping":[{"identity":"v2","map":"CX.5"},{"identity":"rim","map":"Role.code or implied by context"}]},{"id":"Practitioner.identifier.system","path":"Practitioner.identifier.system","short":"The namespace for the identifier value","definition":"Establishes the namespace for the value - that is, a URL that describes a set values that are unique.","comment":"Identifier.system is always case sensitive.","requirements":"There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.","min":1,"max":"1","base":{"path":"Identifier.system","min":0,"max":"1"},"type":[{"code":"uri"}],"example":[{"label":"General","valueUri":"http://www.acme.com/identifiers/patient"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.4 / EI-2-4"},{"identity":"rim","map":"II.root or Role.id.root"},{"identity":"servd","map":"./IdentifierType"}]},{"id":"Practitioner.identifier.value","path":"Practitioner.identifier.value","short":"The value that is unique","definition":"The portion of the identifier typically relevant to the user and which is unique within the context of the system.","comment":"If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](http://hl7.org/fhir/R4/extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.","min":1,"max":"1","base":{"path":"Identifier.value","min":0,"max":"1"},"type":[{"code":"string"}],"example":[{"label":"General","valueString":"123456"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.1 / EI.1"},{"identity":"rim","map":"II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)"},{"identity":"servd","map":"./Value"}]},{"id":"Practitioner.identifier.period","path":"Practitioner.identifier.period","short":"Time period when id is/was valid for use","definition":"Time period during which identifier is/was valid for use.","min":0,"max":"1","base":{"path":"Identifier.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.7 + CX.8"},{"identity":"rim","map":"Role.effectiveTime or implied by context"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Practitioner.identifier.assigner","path":"Practitioner.identifier.assigner","short":"Organization that issued id (may be just text)","definition":"Organization that issued/manages the identifier.","comment":"The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.","min":0,"max":"1","base":{"path":"Identifier.assigner","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"CX.4 / (CX.4,CX.9,CX.10)"},{"identity":"rim","map":"II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper"},{"identity":"servd","map":"./IdentifierIssuingAuthority"}]},{"id":"Practitioner.identifier:NPI","path":"Practitioner.identifier","sliceName":"NPI","short":"An identifier for the person as this agent","definition":"An identifier that applies to this person in this role.","requirements":"Often, specific identities are assigned for the agent.","min":0,"max":"1","base":{"path":"Practitioner.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"patternIdentifier":{"system":"http://hl7.org/fhir/sid/us-npi"},"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"PRD-7 (or XCN.1)"},{"identity":"rim","map":"./id"},{"identity":"servd","map":"./Identifiers"}]},{"id":"Practitioner.active","path":"Practitioner.active","short":"Whether this practitioner's record is in active use","definition":"Whether this practitioner's record is in active use.","comment":"If the practitioner is not in use by one organization, then it should mark the period on the PractitonerRole with an end date (even if they are active) as they may be active in another role.","requirements":"Need to be able to mark a practitioner record as not to be used because it was created in error.","min":0,"max":"1","base":{"path":"Practitioner.active","min":0,"max":"1"},"type":[{"code":"boolean"}],"meaningWhenMissing":"This resource is generally assumed to be active if no value is provided for the active element","isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":"./statusCode"}]},{"id":"Practitioner.name","path":"Practitioner.name","short":"The name(s) associated with the practitioner","definition":"The name(s) associated with the practitioner.","comment":"The selection of the use property should ensure that there is a single usual name specified, and others use the nickname (alias), old, or other values as appropriate. \r\rIn general, select the value to be used in the ResourceReference.display based on this:\r\r1. There is more than 1 name\r2. Use = usual\r3. Period is current to the date of the usage\r4. Use = official\r5. Other order as decided by internal business rules.","requirements":"The name(s) that a Practitioner is known by. Where there are multiple, the name that the practitioner is usually known as should be used in the display.","min":1,"max":"*","base":{"path":"Practitioner.name","min":0,"max":"*"},"type":[{"code":"HumanName"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XCN Components"},{"identity":"rim","map":"./name"},{"identity":"servd","map":"./PreferredName (GivenNames, FamilyName, TitleCode)"}]},{"id":"Practitioner.name.id","path":"Practitioner.name.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Practitioner.name.extension","path":"Practitioner.name.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Practitioner.name.use","path":"Practitioner.name.use","short":"usual | official | temp | nickname | anonymous | old | maiden","definition":"Identifies the purpose for this name.","comment":"Applications can assume that a name is current unless it explicitly says that it is temporary or old.","requirements":"Allows the appropriate name for a particular context of use to be selected from among a set of names.","min":0,"max":"1","base":{"path":"HumanName.use","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old name etc.for a current/permanent one","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"NameUse"}],"strength":"required","description":"The use of a human name.","valueSet":"http://hl7.org/fhir/ValueSet/name-use|4.0.0"},"mapping":[{"identity":"v2","map":"XPN.7, but often indicated by which field contains the name"},{"identity":"rim","map":"unique(./use)"},{"identity":"servd","map":"./NamePurpose"}]},{"id":"Practitioner.name.text","path":"Practitioner.name.text","short":"Text representation of the full name","definition":"Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.","comment":"Can provide both a text representation and parts. Applications updating a name SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.","requirements":"A renderable, unencoded form.","min":0,"max":"1","base":{"path":"HumanName.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"implied by XPN.11"},{"identity":"rim","map":"./formatted"}]},{"id":"Practitioner.name.family","path":"Practitioner.name.family","short":"Family name (often called 'Surname')","definition":"The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.","comment":"Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).","alias":["surname"],"min":1,"max":"1","base":{"path":"HumanName.family","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN.1/FN.1"},{"identity":"rim","map":"./part[partType = FAM]"},{"identity":"servd","map":"./FamilyName"}]},{"id":"Practitioner.name.given","path":"Practitioner.name.given","short":"Given names (not always 'first'). Includes middle names","definition":"Given name.","comment":"If only initials are recorded, they may be used in place of the full name parts. Initials may be separated into multiple given names but often aren't due to paractical limitations. This element is not called \"first name\" since given names do not always come first.","alias":["first name","middle name"],"min":0,"max":"*","base":{"path":"HumanName.given","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"Given Names appear in the correct order for presenting the name","isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN.2 + XPN.3"},{"identity":"rim","map":"./part[partType = GIV]"},{"identity":"servd","map":"./GivenNames"}]},{"id":"Practitioner.name.prefix","path":"Practitioner.name.prefix","short":"Parts that come before the name","definition":"Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.","min":0,"max":"*","base":{"path":"HumanName.prefix","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"Prefixes appear in the correct order for presenting the name","isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN.5"},{"identity":"rim","map":"./part[partType = PFX]"},{"identity":"servd","map":"./TitleCode"}]},{"id":"Practitioner.name.suffix","path":"Practitioner.name.suffix","short":"Parts that come after the name","definition":"Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.","min":0,"max":"*","base":{"path":"HumanName.suffix","min":0,"max":"*"},"type":[{"code":"string"}],"orderMeaning":"Suffixes appear in the correct order for presenting the name","isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN/4"},{"identity":"rim","map":"./part[partType = SFX]"}]},{"id":"Practitioner.name.period","path":"Practitioner.name.period","short":"Time period when name was/is in use","definition":"Indicates the period of time when this name was valid for the named person.","requirements":"Allows names to be placed in historical context.","min":0,"max":"1","base":{"path":"HumanName.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XPN.13 + XPN.14"},{"identity":"rim","map":"./usablePeriod[type=\"IVL\"]"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"Practitioner.telecom","path":"Practitioner.telecom","short":"A contact detail for the practitioner (that apply to all roles)","definition":"A contact detail for the practitioner, e.g. a telephone number or an email address.","comment":"Person may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently and to help with identification. These typically will have home numbers, or mobile numbers that are not role specific.","requirements":"Need to know how to reach a practitioner independent to any roles the practitioner may have.","min":0,"max":"*","base":{"path":"Practitioner.telecom","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"PRT-15, STF-10, ROL-12"},{"identity":"rim","map":"./telecom"},{"identity":"servd","map":"./ContactPoints"}]},{"id":"Practitioner.address","path":"Practitioner.address","short":"Address(es) of the practitioner that are not role specific (typically home address)","definition":"Address(es) of the practitioner that are not role specific (typically home address). \rWork addresses are not typically entered in this property as they are usually role dependent.","comment":"The PractitionerRole does not have an address value on it, as it is expected that the location property be used for this purpose (which has an address).","requirements":"The home/mailing address of the practitioner is often required for employee administration purposes, and also for some rostering services where the start point (practitioners home) can be used in calculations.","min":0,"max":"*","base":{"path":"Practitioner.address","min":0,"max":"*"},"type":[{"code":"Address"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"ORC-24, STF-11, ROL-11, PRT-14"},{"identity":"rim","map":"./addr"},{"identity":"servd","map":"./Addresses"}]},{"id":"Practitioner.gender","path":"Practitioner.gender","short":"male | female | other | unknown","definition":"Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.","requirements":"Needed to address the person correctly.","min":0,"max":"1","base":{"path":"Practitioner.gender","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"AdministrativeGender"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"required","description":"The gender of a person used for administrative purposes.","valueSet":"http://hl7.org/fhir/ValueSet/administrative-gender|4.0.0"},"mapping":[{"identity":"v2","map":"STF-5"},{"identity":"rim","map":"./administrativeGender"},{"identity":"servd","map":"./GenderCode"}]},{"id":"Practitioner.birthDate","path":"Practitioner.birthDate","short":"The date on which the practitioner was born","definition":"The date of birth for the practitioner.","requirements":"Needed for identification.","min":0,"max":"1","base":{"path":"Practitioner.birthDate","min":0,"max":"1"},"type":[{"code":"date"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"STF-6"},{"identity":"rim","map":"./birthTime"},{"identity":"servd","map":"(not represented in ServD)"}]},{"id":"Practitioner.photo","path":"Practitioner.photo","short":"Image of the person","definition":"Image of the person.","requirements":"Many EHR systems have the capability to capture an image of patients and personnel. Fits with newer social media usage too.","min":0,"max":"*","base":{"path":"Practitioner.photo","min":0,"max":"*"},"type":[{"code":"Attachment"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"./subjectOf/ObservationEvent[code=\"photo\"]/value"},{"identity":"servd","map":"./ImageURI (only supports the URI reference)"}]},{"id":"Practitioner.qualification","path":"Practitioner.qualification","short":"Certification, licenses, or training pertaining to the provision of care","definition":"The official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certian locality.","min":0,"max":"*","base":{"path":"Practitioner.qualification","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"CER?"},{"identity":"rim","map":".playingEntity.playingRole[classCode=QUAL].code"},{"identity":"servd","map":"./Qualifications"}]},{"id":"Practitioner.qualification.id","path":"Practitioner.qualification.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Practitioner.qualification.extension","path":"Practitioner.qualification.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Practitioner.qualification.modifierExtension","path":"Practitioner.qualification.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Practitioner.qualification.identifier","path":"Practitioner.qualification.identifier","short":"An identifier for this qualification for the practitioner","definition":"An identifier that applies to this person's qualification in this role.","requirements":"Often, specific identities are assigned for the qualification.","min":0,"max":"*","base":{"path":"Practitioner.qualification.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".playingEntity.playingRole[classCode=QUAL].id"}]},{"id":"Practitioner.qualification.code","path":"Practitioner.qualification.code","short":"Coded representation of the qualification","definition":"Coded representation of the qualification.","min":1,"max":"1","base":{"path":"Practitioner.qualification.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Qualification"}],"strength":"example","description":"Specific qualification the practitioner has to provide a service.","valueSet":"http://terminology.hl7.org/ValueSet/v2-2.7-0360"},"mapping":[{"identity":"rim","map":".playingEntity.playingRole[classCode=QUAL].code"},{"identity":"servd","map":"./Qualifications.Value"}]},{"id":"Practitioner.qualification.period","path":"Practitioner.qualification.period","short":"Period during which the qualification is valid","definition":"Period during which the qualification is valid.","requirements":"Qualifications are often for a limited period of time, and can be revoked.","min":0,"max":"1","base":{"path":"Practitioner.qualification.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".playingEntity.playingRole[classCode=QUAL].effectiveTime"},{"identity":"servd","map":"./Qualifications.StartDate and ./Qualifications.EndDate"}]},{"id":"Practitioner.qualification.issuer","path":"Practitioner.qualification.issuer","short":"Organization that regulates and issues the qualification","definition":"Organization that regulates and issues the qualification.","min":0,"max":"1","base":{"path":"Practitioner.qualification.issuer","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".playingEntity.playingRole[classCode=QUAL].scoper"}]},{"id":"Practitioner.communication","path":"Practitioner.communication","short":"A language the practitioner can use in patient communication","definition":"A language the practitioner can use in patient communication.","comment":"The structure aa-BB with this exact casing is one the most widely used notations for locale. However not all systems code this but instead have it as free text. Hence CodeableConcept instead of code as the data type.","requirements":"Knowing which language a practitioner speaks can help in facilitating communication with patients.","min":0,"max":"*","base":{"path":"Practitioner.communication","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"},"mapping":[{"identity":"v2","map":"PID-15, NK1-20, LAN-2"},{"identity":"rim","map":"./languageCommunication"},{"identity":"servd","map":"./Languages.LanguageSpokenCode"}]}]},"differential":{"element":[{"id":"Practitioner","path":"Practitioner","definition":"This is basic constraint on provider for use in US Core resources.","alias":["Provider"],"mustSupport":false},{"id":"Practitioner.identifier","path":"Practitioner.identifier","slicing":{"discriminator":[{"type":"pattern","path":"$this"}],"rules":"open"},"comment":"NPI must be supported as the identifier system in the US, Tax id is allowed, Local id is allowed in addition to an another identifier supplied by a jurisdictional authority such as a practitioner's *Drug Enforcement Administration (DEA)* number.","min":1,"max":"*","type":[{"code":"Identifier"}],"mustSupport":true},{"id":"Practitioner.identifier.system","path":"Practitioner.identifier.system","min":1,"max":"1","type":[{"code":"uri"}],"mustSupport":true},{"id":"Practitioner.identifier.value","path":"Practitioner.identifier.value","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"Practitioner.identifier:NPI","path":"Practitioner.identifier","sliceName":"NPI","min":0,"max":"1","type":[{"code":"Identifier"}],"patternIdentifier":{"system":"http://hl7.org/fhir/sid/us-npi"},"mustSupport":true},{"id":"Practitioner.name","path":"Practitioner.name","min":1,"max":"*","type":[{"code":"HumanName"}],"mustSupport":true},{"id":"Practitioner.name.family","path":"Practitioner.name.family","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-practitionerrole.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-practitionerrole.json new file mode 100644 index 000000000..15b068741 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-practitionerrole.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-practitionerrole","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","name":"USCorePractitionerRoleProfile","title":"US Core PractitionerRole Profile","status":"active","experimental":false,"date":"2019-08-11T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"The practitioner roles referenced in the US Core profiles.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"servd","uri":"http://www.omg.org/spec/ServD/1.0/","name":"ServD"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"}],"kind":"resource","abstract":false,"type":"PractitionerRole","baseDefinition":"http://hl7.org/fhir/StructureDefinition/PractitionerRole","derivation":"constraint","snapshot":{"element":[{"id":"PractitionerRole","path":"PractitionerRole","short":"Roles/organizations the practitioner is associated with","definition":"This is basic constraint on PractitionerRole for use in US Core resources.","min":0,"max":"*","base":{"path":"PractitionerRole","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"pd-1","severity":"error","human":"SHALL have contact information or a reference to an Endpoint","expression":"telecom or endpoint","xpath":"exists(f:telecom) or exists(f:endpoint)"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"v2","map":"PRD (as one example)"},{"identity":"rim","map":"Role"},{"identity":"servd","map":"ServiceSiteProvider"}]},{"id":"PractitionerRole.id","path":"PractitionerRole.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"PractitionerRole.meta","path":"PractitionerRole.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"PractitionerRole.implicitRules","path":"PractitionerRole.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"PractitionerRole.language","path":"PractitionerRole.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"PractitionerRole.text","path":"PractitionerRole.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"PractitionerRole.contained","path":"PractitionerRole.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"PractitionerRole.extension","path":"PractitionerRole.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"PractitionerRole.modifierExtension","path":"PractitionerRole.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"PractitionerRole.identifier","path":"PractitionerRole.identifier","short":"Business Identifiers that are specific to a role/location","definition":"Business Identifiers that are specific to a role/location.","requirements":"Often, specific identities are assigned for the agent.","min":0,"max":"*","base":{"path":"PractitionerRole.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"PRD-7 (or XCN.1)"},{"identity":"rim","map":".id"},{"identity":"servd","map":"./Identifiers"}]},{"id":"PractitionerRole.active","path":"PractitionerRole.active","short":"Whether this practitioner role record is in active use","definition":"Whether this practitioner role record is in active use.","comment":"If this value is false, you may refer to the period to see when the role was in active use. If there is no period specified, no inference can be made about when it was active.","requirements":"Need to be able to mark a practitioner role record as not to be used because it was created in error, or otherwise no longer in active use.","min":0,"max":"1","base":{"path":"PractitionerRole.active","min":0,"max":"1"},"type":[{"code":"boolean"}],"meaningWhenMissing":"This resource is generally assumed to be active if no value is provided for the active element","isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.status"},{"identity":"v2","map":"STF-7"},{"identity":"rim","map":".statusCode"}]},{"id":"PractitionerRole.period","path":"PractitionerRole.period","short":"The period during which the practitioner is authorized to perform in these role(s)","definition":"The period during which the person is authorized to act as a practitioner in these role(s) for the organization.","requirements":"Even after the agencies is revoked, the fact that it existed must still be recorded.","min":0,"max":"1","base":{"path":"PractitionerRole.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"PRD-8/9 / PRA-5.4"},{"identity":"rim","map":".performance[@typeCode <= 'PPRF'].ActDefinitionOrEvent.effectiveTime"},{"identity":"servd","map":"(ServD maps Practitioners and Organizations via another entity, so this concept is not available)"}]},{"id":"PractitionerRole.practitioner","path":"PractitionerRole.practitioner","short":"Practitioner that is able to provide the defined services for the organization","definition":"Practitioner that is able to provide the defined services for the organization.","min":1,"max":"1","base":{"path":"PractitionerRole.practitioner","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".player"}]},{"id":"PractitionerRole.organization","path":"PractitionerRole.organization","short":"Organization where the roles are available","definition":"The organization where the Practitioner performs the roles associated.","min":1,"max":"1","base":{"path":"PractitionerRole.organization","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".scoper"}]},{"id":"PractitionerRole.code","path":"PractitionerRole.code","short":"Roles which this practitioner may perform","definition":"Roles which this practitioner is authorized to perform for the organization.","comment":"A person may have more than one role.","requirements":"Need to know what authority the practitioner has - what can they do?","min":0,"max":"*","base":{"path":"PractitionerRole.code","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Provider role codes consisting of NUCC Health Care Provider Taxonomy Code Set for providers.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-provider-role"},"mapping":[{"identity":"v2","map":"PRD-1 / STF-18 / PRA-3 / PRT-4 / ROL-3 / ORC-12 / OBR-16 / PV1-7 / PV1-8 / PV1-9 / PV1-17"},{"identity":"rim","map":".code"},{"identity":"servd","map":"(ServD maps Practitioners and Organizations via another entity, so this concept is not available)"}]},{"id":"PractitionerRole.specialty","path":"PractitionerRole.specialty","short":"Specific specialty of the practitioner","definition":"Specific specialty of the practitioner.","min":0,"max":"*","base":{"path":"PractitionerRole.specialty","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Provider specialty codes consist of NUCC Health Care Provider Taxonomy Code Set for providers.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-provider-specialty"},"mapping":[{"identity":"v2","map":"PRA-5"},{"identity":"rim","map":".player.HealthCareProvider[@classCode = 'PROV'].code"},{"identity":"servd","map":"./Specialty"}]},{"id":"PractitionerRole.location","path":"PractitionerRole.location","short":"The location(s) at which this practitioner provides care","definition":"The location(s) at which this practitioner provides care.","min":0,"max":"*","base":{"path":"PractitionerRole.location","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-location"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.where[x]"},{"identity":"rim","map":".performance.ActDefinitionOrEvent.ServiceDeliveryLocation[@classCode = 'SDLOC']"},{"identity":"servd","map":"(ServD maps Practitioners and Organizations via another entity, so this concept is not available)
    However these are accessed via the Site.ServiceSite.ServiceSiteProvider record. (The Site has the location)"}]},{"id":"PractitionerRole.healthcareService","path":"PractitionerRole.healthcareService","short":"The list of healthcare services that this worker provides for this role's Organization/Location(s)","definition":"The list of healthcare services that this worker provides for this role's Organization/Location(s).","min":0,"max":"*","base":{"path":"PractitionerRole.healthcareService","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/HealthcareService"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"EDU-2 / AFF-3"},{"identity":"rim","map":".player.QualifiedEntity[@classCode = 'QUAL'].code"}]},{"id":"PractitionerRole.telecom","path":"PractitionerRole.telecom","short":"Contact details that are specific to the role/location/service","definition":"Contact details that are specific to the role/location/service.","requirements":"Often practitioners have a dedicated line for each location (or service) that they work at, and need to be able to define separate contact details for each of these.","min":0,"max":"*","base":{"path":"PractitionerRole.telecom","min":0,"max":"*"},"type":[{"code":"ContactPoint"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":".telecom"}]},{"id":"PractitionerRole.telecom.id","path":"PractitionerRole.telecom.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"PractitionerRole.telecom.extension","path":"PractitionerRole.telecom.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"PractitionerRole.telecom.system","path":"PractitionerRole.telecom.system","short":"phone | fax | email | pager | url | sms | other","definition":"Telecommunications form for contact point - what communications system is required to make use of the contact.","min":1,"max":"1","base":{"path":"ContactPoint.system","min":0,"max":"1"},"type":[{"code":"code"}],"condition":["cpt-2"],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ContactPointSystem"}],"strength":"required","description":"Telecommunications form for contact point.","valueSet":"http://hl7.org/fhir/ValueSet/contact-point-system|4.0.0"},"mapping":[{"identity":"v2","map":"XTN.3"},{"identity":"rim","map":"./scheme"},{"identity":"servd","map":"./ContactPointType"}]},{"id":"PractitionerRole.telecom.value","path":"PractitionerRole.telecom.value","short":"The actual contact point details","definition":"The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).","comment":"Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value.","requirements":"Need to support legacy numbers that are not in a tightly controlled format.","min":1,"max":"1","base":{"path":"ContactPoint.value","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"XTN.1 (or XTN.12)"},{"identity":"rim","map":"./url"},{"identity":"servd","map":"./Value"}]},{"id":"PractitionerRole.telecom.use","path":"PractitionerRole.telecom.use","short":"home | work | temp | old | mobile - purpose of this contact point","definition":"Identifies the purpose for the contact point.","comment":"Applications can assume that a contact is current unless it explicitly says that it is temporary or old.","requirements":"Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose.","min":0,"max":"1","base":{"path":"ContactPoint.use","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old contact etc.for a current/permanent one","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ContactPointUse"}],"strength":"required","description":"Use of contact point.","valueSet":"http://hl7.org/fhir/ValueSet/contact-point-use|4.0.0"},"mapping":[{"identity":"v2","map":"XTN.2 - but often indicated by field"},{"identity":"rim","map":"unique(./use)"},{"identity":"servd","map":"./ContactPointPurpose"}]},{"id":"PractitionerRole.telecom.rank","path":"PractitionerRole.telecom.rank","short":"Specify preferred order of use (1 = highest)","definition":"Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.","comment":"Note that rank does not necessarily follow the order in which the contacts are represented in the instance.","min":0,"max":"1","base":{"path":"ContactPoint.rank","min":0,"max":"1"},"type":[{"code":"positiveInt"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"n/a"},{"identity":"rim","map":"n/a"}]},{"id":"PractitionerRole.telecom.period","path":"PractitionerRole.telecom.period","short":"Time period when the contact point was/is in use","definition":"Time period when the contact point was/is in use.","min":0,"max":"1","base":{"path":"ContactPoint.period","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"./usablePeriod[type=\"IVL\"]"},{"identity":"servd","map":"./StartDate and ./EndDate"}]},{"id":"PractitionerRole.availableTime","path":"PractitionerRole.availableTime","short":"Times the Service Site is available","definition":"A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.","comment":"More detailed availability information may be provided in associated Schedule/Slot resources.","min":0,"max":"*","base":{"path":"PractitionerRole.availableTime","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"PractitionerRole.availableTime.id","path":"PractitionerRole.availableTime.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"PractitionerRole.availableTime.extension","path":"PractitionerRole.availableTime.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"PractitionerRole.availableTime.modifierExtension","path":"PractitionerRole.availableTime.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"PractitionerRole.availableTime.daysOfWeek","path":"PractitionerRole.availableTime.daysOfWeek","short":"mon | tue | wed | thu | fri | sat | sun","definition":"Indicates which days of the week are available between the start and end Times.","min":0,"max":"*","base":{"path":"PractitionerRole.availableTime.daysOfWeek","min":0,"max":"*"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DaysOfWeek"}],"strength":"required","description":"The days of the week.","valueSet":"http://hl7.org/fhir/ValueSet/days-of-week|4.0.0"},"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"PractitionerRole.availableTime.allDay","path":"PractitionerRole.availableTime.allDay","short":"Always available? e.g. 24 hour service","definition":"Is this always available? (hence times are irrelevant) e.g. 24 hour service.","min":0,"max":"1","base":{"path":"PractitionerRole.availableTime.allDay","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"PractitionerRole.availableTime.availableStartTime","path":"PractitionerRole.availableTime.availableStartTime","short":"Opening time of day (ignored if allDay = true)","definition":"The opening time of day. Note: If the AllDay flag is set, then this time is ignored.","comment":"The timezone is expected to be for where this HealthcareService is provided at.","min":0,"max":"1","base":{"path":"PractitionerRole.availableTime.availableStartTime","min":0,"max":"1"},"type":[{"code":"time"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"PractitionerRole.availableTime.availableEndTime","path":"PractitionerRole.availableTime.availableEndTime","short":"Closing time of day (ignored if allDay = true)","definition":"The closing time of day. Note: If the AllDay flag is set, then this time is ignored.","comment":"The timezone is expected to be for where this HealthcareService is provided at.","min":0,"max":"1","base":{"path":"PractitionerRole.availableTime.availableEndTime","min":0,"max":"1"},"type":[{"code":"time"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"PractitionerRole.notAvailable","path":"PractitionerRole.notAvailable","short":"Not available during this time due to provided reason","definition":"The practitioner is not available or performing this role during this period of time due to the provided reason.","min":0,"max":"*","base":{"path":"PractitionerRole.notAvailable","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"PractitionerRole.notAvailable.id","path":"PractitionerRole.notAvailable.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"PractitionerRole.notAvailable.extension","path":"PractitionerRole.notAvailable.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"PractitionerRole.notAvailable.modifierExtension","path":"PractitionerRole.notAvailable.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"PractitionerRole.notAvailable.description","path":"PractitionerRole.notAvailable.description","short":"Reason presented to the user explaining why time not available","definition":"The reason that can be presented to the user as to why this time is not available.","min":1,"max":"1","base":{"path":"PractitionerRole.notAvailable.description","min":1,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"PractitionerRole.notAvailable.during","path":"PractitionerRole.notAvailable.during","short":"Service not available from this date","definition":"Service is not available (seasonally or for a public holiday) from this date.","min":0,"max":"1","base":{"path":"PractitionerRole.notAvailable.during","min":0,"max":"1"},"type":[{"code":"Period"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"PractitionerRole.availabilityExceptions","path":"PractitionerRole.availabilityExceptions","short":"Description of availability exceptions","definition":"A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.","min":0,"max":"1","base":{"path":"PractitionerRole.availabilityExceptions","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".effectiveTime"}]},{"id":"PractitionerRole.endpoint","path":"PractitionerRole.endpoint","short":"Technical endpoints providing access to services operated for the practitioner with this role","definition":"Technical endpoints providing access to services operated for the practitioner with this role.","requirements":"Organizations have multiple systems that provide various services and ,ay also be different for practitioners too.\r\rSo the endpoint satisfies the need to be able to define the technical connection details for how to connect to them, and for what purpose.","min":0,"max":"*","base":{"path":"PractitionerRole.endpoint","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Endpoint"]}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]}]},"differential":{"element":[{"id":"PractitionerRole","path":"PractitionerRole","definition":"This is basic constraint on PractitionerRole for use in US Core resources.","constraint":[{"key":"pd-1","severity":"error","human":"SHALL have contact information or a reference to an Endpoint","expression":"telecom or endpoint","xpath":"exists(f:telecom) or exists(f:endpoint)"}],"mustSupport":false},{"id":"PractitionerRole.practitioner","path":"PractitionerRole.practitioner","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"]}],"mustSupport":true},{"id":"PractitionerRole.organization","path":"PractitionerRole.organization","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true},{"id":"PractitionerRole.code","path":"PractitionerRole.code","min":0,"max":"*","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Provider role codes consisting of NUCC Health Care Provider Taxonomy Code Set for providers.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-provider-role"}},{"id":"PractitionerRole.specialty","path":"PractitionerRole.specialty","min":0,"max":"*","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Provider specialty codes consist of NUCC Health Care Provider Taxonomy Code Set for providers.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-provider-specialty"}},{"id":"PractitionerRole.location","path":"PractitionerRole.location","min":0,"max":"*","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-location"]}],"mustSupport":true},{"id":"PractitionerRole.telecom","path":"PractitionerRole.telecom","min":0,"max":"*","type":[{"code":"ContactPoint"}],"mustSupport":true},{"id":"PractitionerRole.telecom.system","path":"PractitionerRole.telecom.system","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true},{"id":"PractitionerRole.telecom.value","path":"PractitionerRole.telecom.value","min":1,"max":"1","type":[{"code":"string"}],"mustSupport":true},{"id":"PractitionerRole.endpoint","path":"PractitionerRole.endpoint","min":0,"max":"*","mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-procedure.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-procedure.json new file mode 100644 index 000000000..962519ab2 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-procedure.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-procedure","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure","version":"3.0.1","name":"USCoreProcedureProfile","title":"US Core Procedure Profile","status":"active","experimental":false,"date":"2019-08-26T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Procedure resource for the minimal set of data to query and retrieve patient's procedure information.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"}],"kind":"resource","abstract":false,"type":"Procedure","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Procedure","derivation":"constraint","snapshot":{"element":[{"id":"Procedure","path":"Procedure","short":"An action that is being or was performed on a patient","definition":"The US Core Condition Profile is based upon the core FHIR Procedure Resource and created to meet the 2015 Edition Common Clinical Data Set 'Procedures' requirements.","min":0,"max":"*","base":{"path":"Procedure","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"rim","map":"Procedure[moodCode=EVN]"},{"identity":"argonaut-dq-dstu2","map":"Procedure"}]},{"id":"Procedure.id","path":"Procedure.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Procedure.meta","path":"Procedure.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Procedure.implicitRules","path":"Procedure.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Procedure.language","path":"Procedure.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Procedure.text","path":"Procedure.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Procedure.contained","path":"Procedure.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Procedure.extension","path":"Procedure.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Procedure.modifierExtension","path":"Procedure.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Procedure.identifier","path":"Procedure.identifier","short":"External Identifiers for this procedure","definition":"Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server.","comment":"This is a business identifier, not a resource identifier (see [discussion](http://hl7.org/fhir/R4/resource.html#identifiers)). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and Person resource instances might share the same social insurance number.","requirements":"Allows identification of the procedure as it is known by various participating systems and in a way that remains consistent across servers.","min":0,"max":"*","base":{"path":"Procedure.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"Some combination of ORC-2 / ORC-3 / OBR-2 / OBR-3 / IPC-1 / IPC-2 / IPC-3 / IPC-4"},{"identity":"rim","map":".id"}]},{"id":"Procedure.instantiatesCanonical","path":"Procedure.instantiatesCanonical","short":"Instantiates FHIR protocol or definition","definition":"The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.","min":0,"max":"*","base":{"path":"Procedure.instantiatesCanonical","min":0,"max":"*"},"type":[{"code":"canonical","targetProfile":["http://hl7.org/fhir/StructureDefinition/PlanDefinition","http://hl7.org/fhir/StructureDefinition/ActivityDefinition","http://hl7.org/fhir/StructureDefinition/Measure","http://hl7.org/fhir/StructureDefinition/OperationDefinition","http://hl7.org/fhir/StructureDefinition/Questionnaire"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.instantiatesCanonical"},{"identity":"rim","map":".outboundRelationship[typeCode=DEFN].target"}]},{"id":"Procedure.instantiatesUri","path":"Procedure.instantiatesUri","short":"Instantiates external protocol or definition","definition":"The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.","comment":"This might be an HTML page, PDF, etc. or could just be a non-resolvable URI identifier.","min":0,"max":"*","base":{"path":"Procedure.instantiatesUri","min":0,"max":"*"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.instantiatesUri"},{"identity":"rim","map":".outboundRelationship[typeCode=DEFN].target"}]},{"id":"Procedure.basedOn","path":"Procedure.basedOn","short":"A request for this procedure","definition":"A reference to a resource that contains details of the request for this procedure.","alias":["fulfills"],"min":0,"max":"*","base":{"path":"Procedure.basedOn","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan","http://hl7.org/fhir/StructureDefinition/ServiceRequest"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.basedOn"},{"identity":"rim","map":".outboundRelationship[typeCode=FLFS].target[classCode=(various e.g. PROC, OBS, PCPR, ACT, moodCode=RQO].code"}]},{"id":"Procedure.partOf","path":"Procedure.partOf","short":"Part of referenced event","definition":"A larger event of which this particular procedure is a component or step.","comment":"The MedicationAdministration resource has a partOf reference to Procedure, but this is not a circular reference. For example, the anesthesia MedicationAdministration is part of the surgical Procedure (MedicationAdministration.partOf = Procedure). For example, the procedure to insert the IV port for an IV medication administration is part of the medication administration (Procedure.partOf = MedicationAdministration).","alias":["container"],"min":0,"max":"*","base":{"path":"Procedure.partOf","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Procedure","http://hl7.org/fhir/StructureDefinition/Observation","http://hl7.org/fhir/StructureDefinition/MedicationAdministration"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.partOf"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[classCode=SBADM or PROC or OBS, moodCode=EVN]"}]},{"id":"Procedure.status","path":"Procedure.status","short":"preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown","definition":"A code specifying the state of the procedure. Generally, this will be the in-progress or completed state.","comment":"The \"unknown\" code is not to be used to convey other statuses. The \"unknown\" code should be used when one of the statuses applies, but the authoring system doesn't know the current state of the procedure.\n\nThis element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.","min":1,"max":"1","base":{"path":"Procedure.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/event-status"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"rim","map":"statusCode"},{"identity":"argonaut-dq-dstu2","map":"Procedure.status"}]},{"id":"Procedure.statusReason","path":"Procedure.statusReason","short":"Reason for current status","definition":"Captures the reason for the current state of the procedure.","comment":"This is generally only used for \"exception\" statuses such as \"not-done\", \"suspended\" or \"aborted\". The reason for performing the event at all is captured in reasonCode, not here.","alias":["Suspended Reason","Cancelled Reason"],"min":0,"max":"1","base":{"path":"Procedure.statusReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProcedureNegationReason"}],"strength":"example","description":"A code that identifies the reason a procedure was not performed.","valueSet":"http://hl7.org/fhir/ValueSet/procedure-not-performed-reason"},"mapping":[{"identity":"workflow","map":"Event.statusReason"},{"identity":"rim","map":".reason.Observation.value"}]},{"id":"Procedure.category","path":"Procedure.category","short":"Classification of the procedure","definition":"A code that classifies the procedure for searching, sorting and display purposes (e.g. \"Surgical Procedure\").","min":0,"max":"1","base":{"path":"Procedure.category","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProcedureCategory"}],"strength":"example","description":"A code that classifies a procedure for searching, sorting and display purposes.","valueSet":"http://hl7.org/fhir/ValueSet/procedure-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"}]},{"id":"Procedure.code","path":"Procedure.code","short":"Procedure codes from CPT or SNOMED CT","definition":"The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. \"Laparoscopic Appendectomy\").","requirements":"0..1 to account for primarily narrative only resources.","alias":["type"],"min":1,"max":"1","base":{"path":"Procedure.code","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"Codes describing the type of Procedure","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"v2","map":"OBR-44/OBR-45"},{"identity":"rim","map":".code"},{"identity":"argonaut-dq-dstu2","map":"Procedure.code"}]},{"id":"Procedure.subject","path":"Procedure.subject","short":"Who the procedure was performed on","definition":"The person, animal or group on which the procedure was performed.","alias":["patient"],"min":1,"max":"1","base":{"path":"Procedure.subject","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":".participation[typeCode=SBJ].role"},{"identity":"w5","map":"FiveWs.subject"},{"identity":"argonaut-dq-dstu2","map":"Procedure.subject"}]},{"id":"Procedure.encounter","path":"Procedure.encounter","short":"Encounter created as part of","definition":"The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated.","comment":"This will typically be the encounter the event occurred within, but some activities may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter.","min":0,"max":"1","base":{"path":"Procedure.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1-19"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]"}]},{"id":"Procedure.performed[x]","path":"Procedure.performed[x]","short":"When the procedure was performed","definition":"Estimated or actual date, date-time, period, or age when the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.","comment":"Age is generally used when the patient reports an age at which the procedure was performed. Range is generally used when the patient reports an age range when the procedure was performed, such as sometime between 20-25 years old. dateTime supports a range of precision due to some procedures being reported as past procedures that might not have millisecond precision while other procedures performed and documented during the encounter might have more precise UTC timestamps with timezone.","min":1,"max":"1","base":{"path":"Procedure.performed[x]","min":0,"max":"1"},"type":[{"code":"dateTime"},{"code":"Period"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"OBR-7"},{"identity":"rim","map":".effectiveTime"},{"identity":"argonaut-dq-dstu2","map":"Procedure.performed[x]"}]},{"id":"Procedure.recorder","path":"Procedure.recorder","short":"Who recorded the procedure","definition":"Individual who recorded the record and takes responsibility for its content.","min":0,"max":"1","base":{"path":"Procedure.recorder","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.author"},{"identity":"rim","map":".participation[typeCode=AUT].role"}]},{"id":"Procedure.asserter","path":"Procedure.asserter","short":"Person who asserts this procedure","definition":"Individual who is making the procedure statement.","min":0,"max":"1","base":{"path":"Procedure.asserter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.source"},{"identity":"rim","map":".participation[typeCode=INF].role"}]},{"id":"Procedure.performer","path":"Procedure.performer","short":"The people who performed the procedure","definition":"Limited to \"real\" people rather than equipment.","min":0,"max":"*","base":{"path":"Procedure.performer","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer"},{"identity":"rim","map":".participation[typeCode=PRF]"}]},{"id":"Procedure.performer.id","path":"Procedure.performer.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Procedure.performer.extension","path":"Procedure.performer.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Procedure.performer.modifierExtension","path":"Procedure.performer.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Procedure.performer.function","path":"Procedure.performer.function","short":"Type of performance","definition":"Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist.","requirements":"Allows disambiguation of the types of involvement of different performers.","min":0,"max":"1","base":{"path":"Procedure.performer.function","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProcedurePerformerRole"}],"strength":"example","description":"A code that identifies the role of a performer of the procedure.","valueSet":"http://hl7.org/fhir/ValueSet/performer-role"},"mapping":[{"identity":"workflow","map":"Event.performer.function"},{"identity":"v2","map":"Some combination of STF-18 / PRA-3 / PRT-4 / ROL-3 / ORC-12 / OBR-16 / PV1-7 / PV1-8 / PV1-9 / PV1-17 / OBX-25"},{"identity":"rim","map":".functionCode"}]},{"id":"Procedure.performer.actor","path":"Procedure.performer.actor","short":"The reference to the practitioner","definition":"The practitioner who was involved in the procedure.","requirements":"A reference to Device supports use cases, such as pacemakers.","min":1,"max":"1","base":{"path":"Procedure.performer.actor","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Device"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"ORC-19/PRT-5"},{"identity":"rim","map":".role"}]},{"id":"Procedure.performer.onBehalfOf","path":"Procedure.performer.onBehalfOf","short":"Organization the device or practitioner was acting for","definition":"The organization the device or practitioner was acting on behalf of.","requirements":"Practitioners and Devices can be associated with multiple organizations. This element indicates which organization they were acting on behalf of when performing the action.","min":0,"max":"1","base":{"path":"Procedure.performer.onBehalfOf","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".scoper"}]},{"id":"Procedure.location","path":"Procedure.location","short":"Where the procedure happened","definition":"The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.","requirements":"Ties a procedure to where the records are likely kept.","min":0,"max":"1","base":{"path":"Procedure.location","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Location"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.where[x]"},{"identity":"rim","map":".participation[typeCode=LOC].role[classCode=SDLOC]"}]},{"id":"Procedure.reasonCode","path":"Procedure.reasonCode","short":"Coded reason procedure performed","definition":"The coded reason why the procedure was performed. This may be a coded entity of some type, or may simply be present as text.","comment":"Use Procedure.reasonCode when a code sufficiently describes the reason. Use Procedure.reasonReference when referencing a resource, which allows more information to be conveyed, such as onset date. Procedure.reasonCode and Procedure.reasonReference are not meant to be duplicative. For a single reason, either Procedure.reasonCode or Procedure.reasonReference can be used. Procedure.reasonCode may be a summary code, or Procedure.reasonReference may be used to reference a very precise definition of the reason using Condition | Observation | Procedure | DiagnosticReport | DocumentReference. Both Procedure.reasonCode and Procedure.reasonReference can be used if they are describing different reasons for the procedure.","min":0,"max":"*","base":{"path":"Procedure.reasonCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProcedureReason"}],"strength":"example","description":"A code that identifies the reason a procedure is required.","valueSet":"http://hl7.org/fhir/ValueSet/procedure-reason"},"mapping":[{"identity":"workflow","map":"Event.reasonCode"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"rim","map":".reasonCode"}]},{"id":"Procedure.reasonReference","path":"Procedure.reasonReference","short":"The justification that the procedure was performed","definition":"The justification of why the procedure was performed.","comment":"It is possible for a procedure to be a reason (such as C-Section) for another procedure (such as an epidural). Other examples include endoscopy for dilatation and biopsy (a combination of diagnostic and therapeutic use). \nUse Procedure.reasonCode when a code sufficiently describes the reason. Use Procedure.reasonReference when referencing a resource, which allows more information to be conveyed, such as onset date. Procedure.reasonCode and Procedure.reasonReference are not meant to be duplicative. For a single reason, either Procedure.reasonCode or Procedure.reasonReference can be used. Procedure.reasonCode may be a summary code, or Procedure.reasonReference may be used to reference a very precise definition of the reason using Condition | Observation | Procedure | DiagnosticReport | DocumentReference. Both Procedure.reasonCode and Procedure.reasonReference can be used if they are describing different reasons for the procedure.","min":0,"max":"*","base":{"path":"Procedure.reasonReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition","http://hl7.org/fhir/StructureDefinition/Observation","http://hl7.org/fhir/StructureDefinition/Procedure","http://hl7.org/fhir/StructureDefinition/DiagnosticReport","http://hl7.org/fhir/StructureDefinition/DocumentReference"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.reasonReference"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"rim","map":".reasonCode"}]},{"id":"Procedure.bodySite","path":"Procedure.bodySite","short":"Target body sites","definition":"Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.","comment":"If the use case requires attributes from the BodySite resource (e.g. to identify and track separately) then use the standard extension [procedure-targetbodystructure](http://hl7.org/fhir/R4/extension-procedure-targetbodystructure.html).","min":0,"max":"*","base":{"path":"Procedure.bodySite","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"BodySite"}],"strength":"example","description":"Codes describing anatomical locations. May include laterality.","valueSet":"http://hl7.org/fhir/ValueSet/body-site"},"mapping":[{"identity":"v2","map":"OBX-20"},{"identity":"rim","map":".targetSiteCode"}]},{"id":"Procedure.outcome","path":"Procedure.outcome","short":"The result of procedure","definition":"The outcome of the procedure - did it resolve the reasons for the procedure being performed?","comment":"If outcome contains narrative text only, it can be captured using the CodeableConcept.text.","min":0,"max":"1","base":{"path":"Procedure.outcome","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProcedureOutcome"}],"strength":"example","description":"An outcome of a procedure - whether it was resolved or otherwise.","valueSet":"http://hl7.org/fhir/ValueSet/procedure-outcome"},"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=OUT].target.text"}]},{"id":"Procedure.report","path":"Procedure.report","short":"Any report resulting from the procedure","definition":"This could be a histology result, pathology report, surgical report, etc.","comment":"There could potentially be multiple reports - e.g. if this was a procedure which took multiple biopsies resulting in a number of anatomical pathology reports.","min":0,"max":"*","base":{"path":"Procedure.report","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/DiagnosticReport","http://hl7.org/fhir/StructureDefinition/DocumentReference","http://hl7.org/fhir/StructureDefinition/Composition"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN]"}]},{"id":"Procedure.complication","path":"Procedure.complication","short":"Complication following the procedure","definition":"Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.","comment":"If complications are only expressed by the narrative text, they can be captured using the CodeableConcept.text.","min":0,"max":"*","base":{"path":"Procedure.complication","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProcedureComplication"}],"strength":"example","description":"Codes describing complications that resulted from a procedure.","valueSet":"http://hl7.org/fhir/ValueSet/condition-code"},"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=OUTC].target[classCode=OBS, code=\"complication\", moodCode=EVN].value"}]},{"id":"Procedure.complicationDetail","path":"Procedure.complicationDetail","short":"A condition that is a result of the procedure","definition":"Any complications that occurred during the procedure, or in the immediate post-performance period.","requirements":"This is used to document a condition that is a result of the procedure, not the condition that was the reason for the procedure.","min":0,"max":"*","base":{"path":"Procedure.complicationDetail","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Condition"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=OUTC].target[classCode=OBS, code=\"complication\", moodCode=EVN].value"}]},{"id":"Procedure.followUp","path":"Procedure.followUp","short":"Instructions for follow up","definition":"If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used.","min":0,"max":"*","base":{"path":"Procedure.followUp","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProcedureFollowUp"}],"strength":"example","description":"Specific follow up required for a procedure e.g. removal of sutures.","valueSet":"http://hl7.org/fhir/ValueSet/procedure-followup"},"mapping":[{"identity":"rim","map":".outboundRelationship[typeCode=COMP].target[classCode=ACT, moodCode=INT].code"}]},{"id":"Procedure.note","path":"Procedure.note","short":"Additional information about the procedure","definition":"Any other notes and comments about the procedure.","min":0,"max":"*","base":{"path":"Procedure.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.note"},{"identity":"v2","map":"NTE"},{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"annotation\"].value"}]},{"id":"Procedure.focalDevice","path":"Procedure.focalDevice","short":"Manipulated, implanted, or removed device","definition":"A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.","min":0,"max":"*","base":{"path":"Procedure.focalDevice","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".participation[typeCode=DEV].role[classCode=MANU]"}]},{"id":"Procedure.focalDevice.id","path":"Procedure.focalDevice.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Procedure.focalDevice.extension","path":"Procedure.focalDevice.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Procedure.focalDevice.modifierExtension","path":"Procedure.focalDevice.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Procedure.focalDevice.action","path":"Procedure.focalDevice.action","short":"Kind of change to device","definition":"The kind of change that happened to the device during the procedure.","min":0,"max":"1","base":{"path":"Procedure.focalDevice.action","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"DeviceActionKind"}],"strength":"preferred","description":"A kind of change that happened to the device during the procedure.","valueSet":"http://hl7.org/fhir/ValueSet/device-action"},"mapping":[{"identity":"rim","map":".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"procedure device action\"].value=:procedure device action codes"}]},{"id":"Procedure.focalDevice.manipulated","path":"Procedure.focalDevice.manipulated","short":"Device that was changed","definition":"The device that was manipulated (changed) during the procedure.","min":1,"max":"1","base":{"path":"Procedure.focalDevice.manipulated","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Device"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".participation[typeCode=DEV].role[classCode=SDLOC]"}]},{"id":"Procedure.usedReference","path":"Procedure.usedReference","short":"Items used during procedure","definition":"Identifies medications, devices and any other substance used as part of the procedure.","comment":"For devices actually implanted or removed, use Procedure.device.","requirements":"Used for tracking contamination, etc.","min":0,"max":"*","base":{"path":"Procedure.usedReference","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/Medication","http://hl7.org/fhir/StructureDefinition/Substance"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":".participation[typeCode=DEV].role[classCode=MANU] or\n.participation[typeCode=CSM].role[classCode=ADMM] (for Medication or Substance)"}]},{"id":"Procedure.usedCode","path":"Procedure.usedCode","short":"Coded items used during the procedure","definition":"Identifies coded items that were used as part of the procedure.","comment":"For devices actually implanted or removed, use Procedure.device.","min":0,"max":"*","base":{"path":"Procedure.usedCode","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProcedureUsed"}],"strength":"example","description":"Codes describing items used during a procedure.","valueSet":"http://hl7.org/fhir/ValueSet/device-kind"},"mapping":[{"identity":"rim","map":"participation[typeCode=Dev].role[classCode=MANU]"}]}]},"differential":{"element":[{"id":"Procedure","path":"Procedure","definition":"The US Core Condition Profile is based upon the core FHIR Procedure Resource and created to meet the 2015 Edition Common Clinical Data Set 'Procedures' requirements.","mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Procedure"}]},{"id":"Procedure.status","path":"Procedure.status","min":1,"max":"1","type":[{"code":"code"}],"mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/event-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Procedure.status"}]},{"id":"Procedure.code","path":"Procedure.code","short":"Procedure codes from CPT or SNOMED CT","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","description":"Codes describing the type of Procedure","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Procedure.code"}]},{"id":"Procedure.subject","path":"Procedure.subject","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Procedure.subject"}]},{"id":"Procedure.performed[x]","path":"Procedure.performed[x]","min":1,"max":"1","type":[{"code":"dateTime"},{"code":"Period"}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Procedure.performed[x]"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-provenance.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-provenance.json new file mode 100644 index 000000000..b58091e45 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-provenance.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-provenance","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Provenance 0..*US Core Provenance
    \".\"\".\"\".\" target S1..*Reference(Resource)The Resource this Provenance record supports
    \".\"\".\"\".\" recorded S1..1instantTimestamp when the activity was recorded / updated
    \".\"\".\"\".\" agent S1..*(Slice Definition)Slice: Unordered, Open by pattern:type
    \".\"\".\"\".\"\".\" agent:All Slices Content/Rules for all slices
    \".\"\".\"\".\"\".\"\".\" type S0..1CodeableConceptBinding: US Core Provenance Participant Type Codes (extensible)
    \".\"\".\"\".\"\".\"\".\" who S1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)
    \".\"\".\"\".\"\".\"\".\" onBehalfOf SI0..1Reference(US Core Organization Profile)provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
    \".\"\".\"\".\"\".\" agent:ProvenanceAuthor S0..*BackboneElement
    \".\"\".\"\".\"\".\"\".\" type S1..1CodeableConceptRequired Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
    \".\"\".\"\".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: author
    \".\"\".\"\".\"\".\" agent:ProvenanceTransmitter S0..1BackboneElement
    \".\"\".\"\".\"\".\"\".\" type S1..1CodeableConceptRequired Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
    \".\"\".\"\".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: transmitter

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance","version":"3.0.1","name":"USCoreProvenance","title":"US Core Provenance Profile","status":"active","date":"2019-08-05T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Draft set of requirements to satisfy Basic Provenance Requirements.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w3c.prov","uri":"http://www.w3.org/ns/prov","name":"W3C PROV"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"fhirauditevent","uri":"http://hl7.org/fhir/auditevent","name":"FHIR AuditEvent Mapping"}],"kind":"resource","abstract":false,"type":"Provenance","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Provenance","derivation":"constraint","snapshot":{"element":[{"id":"Provenance","path":"Provenance","short":"US Core Provenance","definition":"The US Core Provenance Profile is based upon the Argonaut Data Query requirements.","comment":"Some parties may be duplicated between the target resource and its provenance. For instance, the prescriber is usually (but not always) the author of the prescription resource. This resource is defined with close consideration for W3C Provenance.","alias":["History","Event","Activity","Basic Provenance"],"min":0,"max":"*","base":{"path":"Provenance","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"rim","map":"ControlAct[isNormalAct() and subsumes(CACT, classCode) and moodCode=EVN]"},{"identity":"w3c.prov","map":"Activity"}]},{"id":"Provenance.id","path":"Provenance.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Provenance.meta","path":"Provenance.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Provenance.implicitRules","path":"Provenance.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Provenance.language","path":"Provenance.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Provenance.text","path":"Provenance.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Provenance.contained","path":"Provenance.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Provenance.extension","path":"Provenance.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Provenance.modifierExtension","path":"Provenance.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Provenance.target","path":"Provenance.target","short":"The Resource this Provenance record supports","definition":"The Reference(s) that were generated or updated by the activity described in this resource. A provenance can point to more than one target if multiple resources were created/updated by the same activity.","comment":"Target references are usually version specific, but might not be, if a version has not been assigned or if the provenance information is part of the set of resources being maintained (i.e. a document). When using the RESTful API, the identity of the resource might not be known (especially not the version specific one); the client may either submit the resource first, and then the provenance, or it may submit both using a single transaction. See the notes on transaction for further discussion.","min":1,"max":"*","base":{"path":"Provenance.target","min":1,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"rim","map":"./outboundRelationship[isNormalActRelationship() and typeCode=SUBJ]/target OR ./participation[isNormalParticipation() and typeCode=SBJ]/role OR ./participation[isNormalParticipation() and typeCode=SBJ]/role[isNormalRole()]/player"},{"identity":"fhirauditevent","map":"AuditEvent.entity.reference"},{"identity":"w3c.prov","map":"Entity Created/Updated"}]},{"id":"Provenance.occurred[x]","path":"Provenance.occurred[x]","short":"When the activity occurred","definition":"The period during which the activity occurred.","comment":"The period can be a little arbitrary; where possible, the time should correspond to human assessment of the activity time.","min":0,"max":"1","base":{"path":"Provenance.occurred[x]","min":0,"max":"1"},"type":[{"code":"Period"},{"code":"dateTime"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.occurred[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"rim","map":"./effectiveTime[type=IVL_TS]"},{"identity":"w3c.prov","map":"Activity.startTime & Activity.endTime"}]},{"id":"Provenance.recorded","path":"Provenance.recorded","short":"Timestamp when the activity was recorded / updated","definition":"The instant of time at which the activity was recorded.","comment":"This can be a little different from the time stamp on the resource if there is a delay between recording the event and updating the provenance and target resource.","min":1,"max":"1","base":{"path":"Provenance.recorded","min":1,"max":"1"},"type":[{"code":"instant"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.recorded"},{"identity":"rim","map":"unique(./participation[isNormalParticipation() and typeCode=AUT]/time[type=TS])"},{"identity":"fhirauditevent","map":"AuditEvent.recorded"},{"identity":"w3c.prov","map":"Activity.when"}]},{"id":"Provenance.policy","path":"Provenance.policy","short":"Policy or plan the activity was defined by","definition":"Policy or plan the activity was defined by. Typically, a single activity may have multiple applicable policy documents, such as patient consent, guarantor funding, etc.","comment":"For example: Where an OAuth token authorizes, the unique identifier from the OAuth token is placed into the policy element Where a policy engine (e.g. XACML) holds policy logic, the unique policy identifier is placed into the policy element.","min":0,"max":"*","base":{"path":"Provenance.policy","min":0,"max":"*"},"type":[{"code":"uri"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"./inboundRelationship[isNormalActRelationship() and typeCode=\"SUBJ\"]/source[isNormalAct and subsumes(POLICY, classCode) and moodCode=EVN]/text[typeCode='ED'/tel"},{"identity":"fhirauditevent","map":"AuditEvent.agent.policy"}]},{"id":"Provenance.location","path":"Provenance.location","short":"Where the activity occurred, if relevant","definition":"Where the activity occurred, if relevant.","min":0,"max":"1","base":{"path":"Provenance.location","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Location"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.location"},{"identity":"w5","map":"FiveWs.where[x]"},{"identity":"rim","map":"unique(./participation[isNormalParticipation() and typeCode=LOC]/role[isNormalRole() and subsumes(SDLOC, classCode)]/player[isNormalEntity and classCode=\"LOC\" and determinerCode=\"INST\"]"},{"identity":"fhirauditevent","map":"AuditEvent.agent.location"},{"identity":"w3c.prov","map":"Activity.location"}]},{"id":"Provenance.reason","path":"Provenance.reason","short":"Reason the activity is occurring","definition":"The reason that the activity was taking place.","min":0,"max":"*","base":{"path":"Provenance.reason","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProvenanceReason"}],"strength":"extensible","description":"The reason the activity took place.","valueSet":"http://terminology.hl7.org/ValueSet/v3-PurposeOfUse"},"mapping":[{"identity":"workflow","map":"Event.reasonCode"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"rim","map":"unique(./reasonCode)"},{"identity":"fhirauditevent","map":"AuditEvent.purposeOfEvent"},{"identity":"w3c.prov","map":"Activity.Activity"}]},{"id":"Provenance.activity","path":"Provenance.activity","short":"Activity that occurred","definition":"An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.","min":0,"max":"1","base":{"path":"Provenance.activity","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProvenanceActivity"}],"strength":"extensible","description":"The activity that took place.","valueSet":"http://hl7.org/fhir/ValueSet/provenance-activity-type"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.why[x]"},{"identity":"rim","map":"Act.code"},{"identity":"w3c.prov","map":"Activity.Activity"}]},{"id":"Provenance.agent","path":"Provenance.agent","slicing":{"discriminator":[{"type":"pattern","path":"type"}],"rules":"open"},"short":"Actor involved","definition":"An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.","comment":"Several agents may be associated (i.e. has some responsibility for an activity) with an activity and vice-versa.","requirements":"An agent can be a person, an organization, software, device, or other entities that may be ascribed responsibility.","min":1,"max":"*","base":{"path":"Provenance.agent","min":1,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.performer"},{"identity":"w5","map":"FiveWs.who"},{"identity":"rim","map":"./participation[isNormalParticipation()] OR ./outboundRelationship[isNormalActRelationship() and typeCode='DRIV']"},{"identity":"fhirauditevent","map":"AuditEvent.agent"},{"identity":"w3c.prov","map":"Agent"}]},{"id":"Provenance.agent.id","path":"Provenance.agent.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Provenance.agent.extension","path":"Provenance.agent.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Provenance.agent.modifierExtension","path":"Provenance.agent.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Provenance.agent.type","path":"Provenance.agent.type","short":"How the agent participated","definition":"The participation the agent had with respect to the activity.","comment":"For example: author, performer, enterer, attester, etc.","min":0,"max":"1","base":{"path":"Provenance.agent.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-provenance-participant-type"},"mapping":[{"identity":"workflow","map":"Event.performer.function"},{"identity":"rim","map":".role"},{"identity":"fhirauditevent","map":"AuditEvent.agent.type"},{"identity":"w3c.prov","map":"Agent.Attribution"}]},{"id":"Provenance.agent.role","path":"Provenance.agent.role","short":"What the agents role was","definition":"The function of the agent with respect to the activity. The security role enabling the agent with respect to the activity.","comment":"For example: doctor, nurse, clerk, etc.","min":0,"max":"*","base":{"path":"Provenance.agent.role","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProvenanceAgentRole"}],"strength":"example","description":"The role that a provenance agent played with respect to the activity.","valueSet":"http://hl7.org/fhir/ValueSet/security-role-type"},"mapping":[{"identity":"rim","map":".typecode"},{"identity":"fhirauditevent","map":"AuditEvent.agent.role"}]},{"id":"Provenance.agent.who","path":"Provenance.agent.who","short":"Who participated","definition":"The individual, device or organization that participated in the event.","comment":"whoIdentity should be used when the agent is not a Resource type.","min":1,"max":"1","base":{"path":"Provenance.agent.who","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"rim","map":".id"}]},{"id":"Provenance.agent.onBehalfOf","path":"Provenance.agent.onBehalfOf","short":"Who the agent is representing","definition":"The individual, device, or organization for whom the change was made.","comment":"onBehalfOfIdentity should be used when the agent is not a Resource type.","min":0,"max":"1","base":{"path":"Provenance.agent.onBehalfOf","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"constraint":[{"key":"provenance-1","severity":"error","human":"onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device","expression":"($this.agent.who.resolve().is Practitioner or Device) implies exists()"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Person, Practitioner, Organization, Device :* .role [classCode = RoleClassMutualRelationship; role.code and * .scopes[Role](classCode=IDENT) and *.plays [Role.Code]"}]},{"id":"Provenance.agent:ProvenanceAuthor","path":"Provenance.agent","sliceName":"ProvenanceAuthor","short":"Actor involved","definition":"An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.","comment":"Several agents may be associated (i.e. has some responsibility for an activity) with an activity and vice-versa.","requirements":"An agent can be a person, an organization, software, device, or other entities that may be ascribed responsibility.","min":0,"max":"*","base":{"path":"Provenance.agent","min":1,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.performer"},{"identity":"w5","map":"FiveWs.who"},{"identity":"rim","map":"./participation[isNormalParticipation()] OR ./outboundRelationship[isNormalActRelationship() and typeCode='DRIV']"},{"identity":"fhirauditevent","map":"AuditEvent.agent"},{"identity":"w3c.prov","map":"Agent"}]},{"id":"Provenance.agent:ProvenanceAuthor.id","path":"Provenance.agent.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Provenance.agent:ProvenanceAuthor.extension","path":"Provenance.agent.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Provenance.agent:ProvenanceAuthor.modifierExtension","path":"Provenance.agent.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Provenance.agent:ProvenanceAuthor.type","path":"Provenance.agent.type","short":"How the agent participated","definition":"The participation the agent had with respect to the activity.","comment":"For example: author, performer, enterer, attester, etc.","min":1,"max":"1","base":{"path":"Provenance.agent.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/provenance-participant-type","code":"author"}]},"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProvenanceAgentType"}],"strength":"extensible","description":"The type of participation that a provenance agent played with respect to the activity.","valueSet":"http://hl7.org/fhir/ValueSet/provenance-agent-type"},"mapping":[{"identity":"workflow","map":"Event.performer.function"},{"identity":"rim","map":".role"},{"identity":"fhirauditevent","map":"AuditEvent.agent.type"},{"identity":"w3c.prov","map":"Agent.Attribution"}]},{"id":"Provenance.agent:ProvenanceAuthor.role","path":"Provenance.agent.role","short":"What the agents role was","definition":"The function of the agent with respect to the activity. The security role enabling the agent with respect to the activity.","comment":"For example: doctor, nurse, clerk, etc.","min":0,"max":"*","base":{"path":"Provenance.agent.role","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProvenanceAgentRole"}],"strength":"example","description":"The role that a provenance agent played with respect to the activity.","valueSet":"http://hl7.org/fhir/ValueSet/security-role-type"},"mapping":[{"identity":"rim","map":".typecode"},{"identity":"fhirauditevent","map":"AuditEvent.agent.role"}]},{"id":"Provenance.agent:ProvenanceAuthor.who","path":"Provenance.agent.who","short":"Who participated","definition":"The individual, device or organization that participated in the event.","comment":"whoIdentity should be used when the agent is not a Resource type.","min":1,"max":"1","base":{"path":"Provenance.agent.who","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"rim","map":".id"}]},{"id":"Provenance.agent:ProvenanceAuthor.onBehalfOf","path":"Provenance.agent.onBehalfOf","short":"Who the agent is representing","definition":"The individual, device, or organization for whom the change was made.","comment":"onBehalfOfIdentity should be used when the agent is not a Resource type.","min":0,"max":"1","base":{"path":"Provenance.agent.onBehalfOf","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Person, Practitioner, Organization, Device :* .role [classCode = RoleClassMutualRelationship; role.code and * .scopes[Role](classCode=IDENT) and *.plays [Role.Code]"}]},{"id":"Provenance.agent:ProvenanceTransmitter","path":"Provenance.agent","sliceName":"ProvenanceTransmitter","short":"Actor involved","definition":"An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.","comment":"Several agents may be associated (i.e. has some responsibility for an activity) with an activity and vice-versa.","requirements":"An agent can be a person, an organization, software, device, or other entities that may be ascribed responsibility.","min":0,"max":"1","base":{"path":"Provenance.agent","min":1,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"mustSupport":true,"isModifier":false,"isSummary":false,"mapping":[{"identity":"workflow","map":"Event.performer"},{"identity":"w5","map":"FiveWs.who"},{"identity":"rim","map":"./participation[isNormalParticipation()] OR ./outboundRelationship[isNormalActRelationship() and typeCode='DRIV']"},{"identity":"fhirauditevent","map":"AuditEvent.agent"},{"identity":"w3c.prov","map":"Agent"}]},{"id":"Provenance.agent:ProvenanceTransmitter.id","path":"Provenance.agent.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Provenance.agent:ProvenanceTransmitter.extension","path":"Provenance.agent.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Provenance.agent:ProvenanceTransmitter.modifierExtension","path":"Provenance.agent.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Provenance.agent:ProvenanceTransmitter.type","path":"Provenance.agent.type","short":"How the agent participated","definition":"The participation the agent had with respect to the activity.","comment":"For example: author, performer, enterer, attester, etc.","min":1,"max":"1","base":{"path":"Provenance.agent.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type","code":"transmitter"}]},"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProvenanceAgentType"}],"strength":"extensible","description":"The type of participation that a provenance agent played with respect to the activity.","valueSet":"http://hl7.org/fhir/ValueSet/provenance-agent-type"},"mapping":[{"identity":"workflow","map":"Event.performer.function"},{"identity":"rim","map":".role"},{"identity":"fhirauditevent","map":"AuditEvent.agent.type"},{"identity":"w3c.prov","map":"Agent.Attribution"}]},{"id":"Provenance.agent:ProvenanceTransmitter.role","path":"Provenance.agent.role","short":"What the agents role was","definition":"The function of the agent with respect to the activity. The security role enabling the agent with respect to the activity.","comment":"For example: doctor, nurse, clerk, etc.","min":0,"max":"*","base":{"path":"Provenance.agent.role","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProvenanceAgentRole"}],"strength":"example","description":"The role that a provenance agent played with respect to the activity.","valueSet":"http://hl7.org/fhir/ValueSet/security-role-type"},"mapping":[{"identity":"rim","map":".typecode"},{"identity":"fhirauditevent","map":"AuditEvent.agent.role"}]},{"id":"Provenance.agent:ProvenanceTransmitter.who","path":"Provenance.agent.who","short":"Who participated","definition":"The individual, device or organization that participated in the event.","comment":"whoIdentity should be used when the agent is not a Resource type.","min":1,"max":"1","base":{"path":"Provenance.agent.who","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"rim","map":".id"}]},{"id":"Provenance.agent:ProvenanceTransmitter.onBehalfOf","path":"Provenance.agent.onBehalfOf","short":"Who the agent is representing","definition":"The individual, device, or organization for whom the change was made.","comment":"onBehalfOfIdentity should be used when the agent is not a Resource type.","min":0,"max":"1","base":{"path":"Provenance.agent.onBehalfOf","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/Organization"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Person, Practitioner, Organization, Device :* .role [classCode = RoleClassMutualRelationship; role.code and * .scopes[Role](classCode=IDENT) and *.plays [Role.Code]"}]},{"id":"Provenance.entity","path":"Provenance.entity","short":"An entity used in this activity","definition":"An entity used in this activity.","min":0,"max":"*","base":{"path":"Provenance.entity","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"./subjectOf"},{"identity":"fhirauditevent","map":"AuditEvent.entity"},{"identity":"w3c.prov","map":"Entity"}]},{"id":"Provenance.entity.id","path":"Provenance.entity.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Provenance.entity.extension","path":"Provenance.entity.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Provenance.entity.modifierExtension","path":"Provenance.entity.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Provenance.entity.role","path":"Provenance.entity.role","short":"derivation | revision | quotation | source | removal","definition":"How the entity was used during the activity.","min":1,"max":"1","base":{"path":"Provenance.entity.role","min":1,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ProvenanceEntityRole"}],"strength":"required","description":"How an entity was used in an activity.","valueSet":"http://hl7.org/fhir/ValueSet/provenance-entity-role|4.0.0"},"mapping":[{"identity":"rim","map":"./typeCode"},{"identity":"fhirauditevent","map":"AuditEvent.entity.lifecycle"},{"identity":"w3c.prov","map":"Entity.role"}]},{"id":"Provenance.entity.what","path":"Provenance.entity.what","short":"Identity of entity","definition":"Identity of the Entity used. May be a logical or physical uri and maybe absolute or relative.","comment":"whatIdentity should be used for entities that are not a Resource type.","min":1,"max":"1","base":{"path":"Provenance.entity.what","min":1,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"rim","map":"./text/reference"},{"identity":"fhirauditevent","map":"AuditEvent.entity.reference"},{"identity":"w3c.prov","map":"Entity.Identity"}]},{"id":"Provenance.entity.agent","path":"Provenance.entity.agent","short":"Entity is attributed to this agent","definition":"The entity is attributed to an agent to express the agent's responsibility for that entity, possibly along with other agents. This description can be understood as shorthand for saying that the agent was responsible for the activity which generated the entity.","comment":"A usecase where one Provenance.entity.agent is used where the Entity that was used in the creation/updating of the Target, is not in the context of the same custodianship as the Target, and thus the meaning of Provenance.entity.agent is to say that the entity referenced is managed elsewhere and that this Agent provided access to it. This would be similar to where the Entity being referenced is managed outside FHIR, such as through HL7 v2, v3, or XDS. This might be where the Entity being referenced is managed in another FHIR resource server. Thus it explains the Provenance of that Entity's use in the context of this Provenance activity.","min":0,"max":"*","base":{"path":"Provenance.entity.agent","min":0,"max":"*"},"contentReference":"#Provenance.agent:ProvenanceTransmitter","isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"./author/role"}]},{"id":"Provenance.signature","path":"Provenance.signature","short":"Signature on target","definition":"A digital signature on the target Reference(s). The signer should match a Provenance.agent. The purpose of the signature is indicated.","min":0,"max":"*","base":{"path":"Provenance.signature","min":0,"max":"*"},"type":[{"code":"Signature"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"./signatureText"}]}]},"differential":{"element":[{"id":"Provenance","path":"Provenance","short":"US Core Provenance","definition":"The US Core Provenance Profile is based upon the Argonaut Data Query requirements.","alias":["Basic Provenance"],"mustSupport":false,"isModifier":false},{"id":"Provenance.target","path":"Provenance.target","short":"The Resource this Provenance record supports","min":1,"max":"*","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"mustSupport":true,"isModifier":false},{"id":"Provenance.recorded","path":"Provenance.recorded","short":"Timestamp when the activity was recorded / updated","definition":"The instant of time at which the activity was recorded.","min":1,"max":"1","type":[{"code":"instant"}],"mustSupport":true,"isModifier":false},{"id":"Provenance.agent","path":"Provenance.agent","slicing":{"discriminator":[{"type":"pattern","path":"type"}],"rules":"open"},"min":1,"max":"*","mustSupport":true,"isModifier":false},{"id":"Provenance.agent.type","path":"Provenance.agent.type","min":0,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-provenance-participant-type"}},{"id":"Provenance.agent.who","path":"Provenance.agent.who","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner","http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"mustSupport":true,"isModifier":false},{"id":"Provenance.agent.onBehalfOf","path":"Provenance.agent.onBehalfOf","min":0,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"]}],"constraint":[{"key":"provenance-1","severity":"error","human":"onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device","expression":"($this.agent.who.resolve().is Practitioner or Device) implies exists()"}],"mustSupport":true,"isModifier":false},{"id":"Provenance.agent:ProvenanceAuthor","path":"Provenance.agent","sliceName":"ProvenanceAuthor","min":0,"max":"*","mustSupport":true,"isModifier":false},{"id":"Provenance.agent:ProvenanceAuthor.type","path":"Provenance.agent.type","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/provenance-participant-type","code":"author"}]},"mustSupport":true,"isModifier":false},{"id":"Provenance.agent:ProvenanceTransmitter","path":"Provenance.agent","sliceName":"ProvenanceTransmitter","min":0,"max":"1","mustSupport":true,"isModifier":false},{"id":"Provenance.agent:ProvenanceTransmitter.type","path":"Provenance.agent.type","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type","code":"transmitter"}]},"mustSupport":true,"isModifier":false}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-pulse-oximetry.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-pulse-oximetry.json new file mode 100644 index 000000000..bde51d2cf --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-pulse-oximetry.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-pulse-oximetry","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Observation 0..*
    \".\"\".\"\".\" code S1..1CodeableConceptOxygen Saturation by Pulse Oximetry
    \".\"\".\"\".\"\".\" coding S0..*(Slice Definition)Slice: Unordered, Open by value:code, value:system
    \".\"\".\"\".\"\".\"\".\" coding:PulseOx S1..1Coding
    \".\"\".\"\".\"\".\"\".\"\".\" system S1..1uriFixed Value: http://loinc.org
    \".\"\".\"\".\"\".\"\".\"\".\" code S1..1codeFixed Value: 59408-5
    \".\"\".\"\".\" component S0..*(Slice Definition)Slice: Unordered, Open by pattern:code
    \".\"\".\"\".\"\".\" component:FlowRate S0..1BackboneElementInhaled oxygen flow rate
    \".\"\".\"\".\"\".\"\".\" code S1..1CodeableConceptRequired Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://loinc.org
    \".\"\".\"\".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: 3151-8
    \".\"\".\"\".\"\".\"\".\" valueQuantity S0..1Quantity
    \".\"\".\"\".\"\".\"\".\"\".\" value S0..1decimal
    \".\"\".\"\".\"\".\"\".\"\".\" unit S0..1string
    \".\"\".\"\".\"\".\"\".\"\".\" system S1..1uriFixed Value: http://unitsofmeasure.org
    \".\"\".\"\".\"\".\"\".\"\".\" code S1..1codeFixed Value: l/min
    \".\"\".\"\".\"\".\" component:Concentration S0..1BackboneElementInhaled oxygen concentration
    \".\"\".\"\".\"\".\"\".\" code S1..1CodeableConceptRequired Pattern: At least the following
    \".\"\".\"\".\"\".\"\".\"\".\" coding1..*CodingCode defined by a terminology system
    Fixed Value: (complex)
    \".\"\".\"\".\"\".\"\".\"\".\"\".\" system1..1uriIdentity of the terminology system
    Fixed Value: http://loinc.org
    \".\"\".\"\".\"\".\"\".\"\".\"\".\" code1..1codeSymbol in syntax defined by the system
    Fixed Value: 3150-0
    \".\"\".\"\".\"\".\"\".\" valueQuantity S0..1Quantity
    \".\"\".\"\".\"\".\"\".\"\".\" value S0..1decimal
    \".\"\".\"\".\"\".\"\".\"\".\" unit S0..1string
    \".\"\".\"\".\"\".\"\".\"\".\" system S1..1uriFixed Value: http://unitsofmeasure.org
    \".\"\".\"\".\"\".\"\".\"\".\" code S1..1codeFixed Value: %

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry","name":"USCorePulseOximetryProfile","title":"US Core Pulse Oximetry Profile","status":"active","experimental":false,"date":"2019-08-20T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Observation resource for use in querying and retrieving inspired O2 by pulse oximetry observations.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"sct-concept","uri":"http://snomed.info/conceptdomain","name":"SNOMED CT Concept Domain Binding"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"sct-attr","uri":"http://snomed.org/attributebinding","name":"SNOMED CT Attribute Binding"}],"kind":"resource","abstract":false,"type":"Observation","baseDefinition":"http://hl7.org/fhir/StructureDefinition/oxygensat","derivation":"constraint","snapshot":{"element":[{"id":"Observation","path":"Observation","short":"FHIR Oxygen Saturation Profile","definition":"This profile defines how to represent pulse oximetry and inspired oxygen concentration based on the FHIR Core Vitals Profile.\nINSPIRED OXYGEN CONCENTRATION observations in FHIR using a standard LOINC code and UCUM units of measure.","comment":"Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.","alias":["Vital Signs","Measurement","Results","Tests"],"min":0,"max":"*","base":{"path":"Observation","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"obs-7","severity":"error","human":"If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present","expression":"value.empty() or component.code.where( (coding.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty()","xpath":"not(f:*[starts-with(local-name(.), 'value')] and (for $coding in f:code/f:coding return f:component/f:code/f:coding[f:code/@value=$coding/f:code/@value] [f:system/@value=$coding/f:system/@value]))","source":"Observation"},{"key":"obs-6","severity":"error","human":"dataAbsentReason SHALL only be present if Observation.value[x] is not present","expression":"dataAbsentReason.empty() or value.empty()","xpath":"not(exists(f:dataAbsentReason)) or (not(exists(*[starts-with(local-name(.), 'value')])))","source":"Observation"},{"key":"vs-2","severity":"error","human":"If there is no component or hasMember element then either a value[x] or a data absent reason must be present.","expression":"(component.empty() and hasMember.empty()) implies (dataAbsentReason or value)","xpath":"f:component or f:memberOF or f:*[starts-with(local-name(.), 'value')] or f:dataAbsentReason","source":"Observation"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"sct-concept","map":"< 363787002 |Observable entity|"},{"identity":"v2","map":"OBX"},{"identity":"rim","map":"Observation[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.id","path":"Observation.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Observation.meta","path":"Observation.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Observation.implicitRules","path":"Observation.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Observation.language","path":"Observation.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Observation.text","path":"Observation.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Observation.contained","path":"Observation.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.extension","path":"Observation.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.modifierExtension","path":"Observation.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.identifier","path":"Observation.identifier","short":"Business Identifier for observation","definition":"A unique identifier assigned to this observation.","requirements":"Allows observations to be distinguished and referenced.","min":0,"max":"*","base":{"path":"Observation.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"OBX.21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 2) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4."},{"identity":"rim","map":"id"}]},{"id":"Observation.basedOn","path":"Observation.basedOn","short":"Fulfills plan, proposal or order","definition":"A plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed.","requirements":"Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.","alias":["Fulfills"],"min":0,"max":"*","base":{"path":"Observation.basedOn","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan","http://hl7.org/fhir/StructureDefinition/DeviceRequest","http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation","http://hl7.org/fhir/StructureDefinition/MedicationRequest","http://hl7.org/fhir/StructureDefinition/NutritionOrder","http://hl7.org/fhir/StructureDefinition/ServiceRequest"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.basedOn"},{"identity":"v2","map":"ORC"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[moodCode=EVN]"}]},{"id":"Observation.partOf","path":"Observation.partOf","short":"Part of referenced event","definition":"A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure.","comment":"To link an Observation to an Encounter use `encounter`. See the [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below for guidance on referencing another Observation.","alias":["Container"],"min":0,"max":"*","base":{"path":"Observation.partOf","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/MedicationAdministration","http://hl7.org/fhir/StructureDefinition/MedicationDispense","http://hl7.org/fhir/StructureDefinition/MedicationStatement","http://hl7.org/fhir/StructureDefinition/Procedure","http://hl7.org/fhir/StructureDefinition/Immunization","http://hl7.org/fhir/StructureDefinition/ImagingStudy"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.partOf"},{"identity":"v2","map":"Varies by domain"},{"identity":"rim","map":".outboundRelationship[typeCode=FLFS].target"}]},{"id":"Observation.status","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint","valueString":"default: final"}],"path":"Observation.status","short":"registered | preliminary | final | amended +","definition":"The status of the result value.","comment":"This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.","requirements":"Need to track the status of individual results. Some results are finalized before the whole report is finalized.","min":1,"max":"1","base":{"path":"Observation.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Status"}],"strength":"required","valueSet":"http://hl7.org/fhir/ValueSet/observation-status|4.0.0"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"sct-concept","map":"< 445584004 |Report by finality status|"},{"identity":"v2","map":"OBX-11"},{"identity":"rim","map":"status Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of \"revise\""}]},{"id":"Observation.category","path":"Observation.category","slicing":{"discriminator":[{"type":"value","path":"coding.code"},{"type":"value","path":"coding.system"}],"ordered":false,"rules":"open"},"short":"Classification of type of observation","definition":"A code that classifies the general type of observation being made.","comment":"In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.","requirements":"Used for filtering what observations are retrieved and displayed.","min":1,"max":"*","base":{"path":"Observation.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationCategory"}],"strength":"preferred","description":"Codes for high level observation categories.","valueSet":"http://hl7.org/fhir/ValueSet/observation-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"}]},{"id":"Observation.category:VSCat","path":"Observation.category","sliceName":"VSCat","short":"Classification of type of observation","definition":"A code that classifies the general type of observation being made.","comment":"In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.","requirements":"Used for filtering what observations are retrieved and displayed.","min":1,"max":"1","base":{"path":"Observation.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationCategory"}],"strength":"preferred","description":"Codes for high level observation categories.","valueSet":"http://hl7.org/fhir/ValueSet/observation-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"}]},{"id":"Observation.category:VSCat.id","path":"Observation.category.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.extension","path":"Observation.category.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding","path":"Observation.category.coding","short":"Code defined by a terminology system","definition":"A reference to a code defined by a terminology system.","comment":"Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.","requirements":"Allows for alternative encodings within a code system, and translations to other code systems.","min":1,"max":"*","base":{"path":"CodeableConcept.coding","min":0,"max":"*"},"type":[{"code":"Coding"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1-8, C*E.10-22"},{"identity":"rim","map":"union(., ./translation)"},{"identity":"orim","map":"fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding"}]},{"id":"Observation.category:VSCat.coding.id","path":"Observation.category.coding.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding.extension","path":"Observation.category.coding.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.category:VSCat.coding.system","path":"Observation.category.coding.system","short":"Identity of the terminology system","definition":"The identification of the code system that defines the meaning of the symbol in the code.","comment":"The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.","requirements":"Need to be unambiguous about the source of the definition of the symbol.","min":1,"max":"1","base":{"path":"Coding.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://terminology.hl7.org/CodeSystem/observation-category","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.3"},{"identity":"rim","map":"./codeSystem"},{"identity":"orim","map":"fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem"}]},{"id":"Observation.category:VSCat.coding.version","path":"Observation.category.coding.version","short":"Version of the system - if relevant","definition":"The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.","comment":"Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.","min":0,"max":"1","base":{"path":"Coding.version","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.7"},{"identity":"rim","map":"./codeSystemVersion"},{"identity":"orim","map":"fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion"}]},{"id":"Observation.category:VSCat.coding.code","path":"Observation.category.coding.code","short":"Symbol in syntax defined by the system","definition":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).","requirements":"Need to refer to a particular code in the system.","min":1,"max":"1","base":{"path":"Coding.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"vital-signs","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1"},{"identity":"rim","map":"./code"},{"identity":"orim","map":"fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code"}]},{"id":"Observation.category:VSCat.coding.display","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.category.coding.display","short":"Representation defined by the system","definition":"A representation of the meaning of the code in the system, following the rules of the system.","requirements":"Need to be able to carry a human-readable meaning of the code for readers that do not know the system.","min":0,"max":"1","base":{"path":"Coding.display","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.2 - but note this is not well followed"},{"identity":"rim","map":"CV.displayName"},{"identity":"orim","map":"fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName"}]},{"id":"Observation.category:VSCat.coding.userSelected","path":"Observation.category.coding.userSelected","short":"If this coding was chosen directly by the user","definition":"Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).","comment":"Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.","requirements":"This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.","min":0,"max":"1","base":{"path":"Coding.userSelected","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Sometimes implied by being first"},{"identity":"rim","map":"CD.codingRationale"},{"identity":"orim","map":"fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\\#true a [ fhir:source \"true\"; fhir:target dt:CDCoding.codingRationale\\#O ]"}]},{"id":"Observation.category:VSCat.text","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.category.text","short":"Plain text representation of the concept","definition":"A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.","comment":"Very often the text is the same as a displayName of one of the codings.","requirements":"The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.","min":0,"max":"1","base":{"path":"CodeableConcept.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.9. But note many systems use C*E.2 for this"},{"identity":"rim","map":"./originalText[mediaType/code=\"text/plain\"]/data"},{"identity":"orim","map":"fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText"}]},{"id":"Observation.code","path":"Observation.code","short":"Oxygen Saturation by Pulse Oximetry","definition":"Oxygen Saturation.","comment":"The code (59408-5 Oxygen saturation in Arterial blood by Pulse oximetry) is included as an additional observation code to FHIR Core vital Oxygen Saturation code (2708-6 Oxygen saturation in Arterial blood -).","requirements":"5. SHALL contain exactly one [1..1] code, where the @code SHOULD be selected from ValueSet HITSP Vital Sign Result Type 2.16.840.1.113883.3.88.12.80.62 DYNAMIC (CONF:7301).","alias":["Name","Test"],"min":1,"max":"1","base":{"path":"Observation.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSigns"}],"strength":"extensible","description":"This identifies the vital sign result type.","valueSet":"http://hl7.org/fhir/ValueSet/observation-vitalsignresult"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"},{"identity":"sct-attr","map":"116680003 |Is a|"}]},{"id":"Observation.code.id","path":"Observation.code.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.code.extension","path":"Observation.code.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.code.coding","path":"Observation.code.coding","slicing":{"discriminator":[{"type":"value","path":"code"},{"type":"value","path":"system"}],"ordered":false,"rules":"open"},"short":"Code defined by a terminology system","definition":"A reference to a code defined by a terminology system.","comment":"Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.","requirements":"Allows for alternative encodings within a code system, and translations to other code systems.","min":0,"max":"*","base":{"path":"CodeableConcept.coding","min":0,"max":"*"},"type":[{"code":"Coding"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1-8, C*E.10-22"},{"identity":"rim","map":"union(., ./translation)"},{"identity":"orim","map":"fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding"}]},{"id":"Observation.code.coding:OxygenSatCode","path":"Observation.code.coding","sliceName":"OxygenSatCode","short":"Code defined by a terminology system","definition":"A reference to a code defined by a terminology system.","comment":"Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.","requirements":"Allows for alternative encodings within a code system, and translations to other code systems.","min":1,"max":"1","base":{"path":"CodeableConcept.coding","min":0,"max":"*"},"type":[{"code":"Coding"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1-8, C*E.10-22"},{"identity":"rim","map":"union(., ./translation)"},{"identity":"orim","map":"fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding"}]},{"id":"Observation.code.coding:OxygenSatCode.id","path":"Observation.code.coding.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.code.coding:OxygenSatCode.extension","path":"Observation.code.coding.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.code.coding:OxygenSatCode.system","path":"Observation.code.coding.system","short":"Identity of the terminology system","definition":"The identification of the code system that defines the meaning of the symbol in the code.","comment":"The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.","requirements":"Need to be unambiguous about the source of the definition of the symbol.","min":1,"max":"1","base":{"path":"Coding.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://loinc.org","isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.3"},{"identity":"rim","map":"./codeSystem"},{"identity":"orim","map":"fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem"}]},{"id":"Observation.code.coding:OxygenSatCode.version","path":"Observation.code.coding.version","short":"Version of the system - if relevant","definition":"The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.","comment":"Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.","min":0,"max":"1","base":{"path":"Coding.version","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.7"},{"identity":"rim","map":"./codeSystemVersion"},{"identity":"orim","map":"fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion"}]},{"id":"Observation.code.coding:OxygenSatCode.code","path":"Observation.code.coding.code","short":"Symbol in syntax defined by the system","definition":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).","requirements":"Need to refer to a particular code in the system.","min":1,"max":"1","base":{"path":"Coding.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"2708-6","isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1"},{"identity":"rim","map":"./code"},{"identity":"orim","map":"fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code"}]},{"id":"Observation.code.coding:OxygenSatCode.display","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.code.coding.display","short":"Representation defined by the system","definition":"A representation of the meaning of the code in the system, following the rules of the system.","requirements":"Need to be able to carry a human-readable meaning of the code for readers that do not know the system.","min":0,"max":"1","base":{"path":"Coding.display","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.2 - but note this is not well followed"},{"identity":"rim","map":"CV.displayName"},{"identity":"orim","map":"fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName"}]},{"id":"Observation.code.coding:OxygenSatCode.userSelected","path":"Observation.code.coding.userSelected","short":"If this coding was chosen directly by the user","definition":"Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).","comment":"Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.","requirements":"This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.","min":0,"max":"1","base":{"path":"Coding.userSelected","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Sometimes implied by being first"},{"identity":"rim","map":"CD.codingRationale"},{"identity":"orim","map":"fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\\#true a [ fhir:source \"true\"; fhir:target dt:CDCoding.codingRationale\\#O ]"}]},{"id":"Observation.code.coding:PulseOx","path":"Observation.code.coding","sliceName":"PulseOx","short":"Code defined by a terminology system","definition":"A reference to a code defined by a terminology system.","comment":"Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.","requirements":"Allows for alternative encodings within a code system, and translations to other code systems.","min":1,"max":"1","base":{"path":"CodeableConcept.coding","min":0,"max":"*"},"type":[{"code":"Coding"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1-8, C*E.10-22"},{"identity":"rim","map":"union(., ./translation)"},{"identity":"orim","map":"fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding"}]},{"id":"Observation.code.coding:PulseOx.id","path":"Observation.code.coding.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.code.coding:PulseOx.extension","path":"Observation.code.coding.extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.code.coding:PulseOx.system","path":"Observation.code.coding.system","short":"Identity of the terminology system","definition":"The identification of the code system that defines the meaning of the symbol in the code.","comment":"The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.","requirements":"Need to be unambiguous about the source of the definition of the symbol.","min":1,"max":"1","base":{"path":"Coding.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://loinc.org","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.3"},{"identity":"rim","map":"./codeSystem"},{"identity":"orim","map":"fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem"}]},{"id":"Observation.code.coding:PulseOx.version","path":"Observation.code.coding.version","short":"Version of the system - if relevant","definition":"The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.","comment":"Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.","min":0,"max":"1","base":{"path":"Coding.version","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.7"},{"identity":"rim","map":"./codeSystemVersion"},{"identity":"orim","map":"fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion"}]},{"id":"Observation.code.coding:PulseOx.code","path":"Observation.code.coding.code","short":"Symbol in syntax defined by the system","definition":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).","requirements":"Need to refer to a particular code in the system.","min":1,"max":"1","base":{"path":"Coding.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"59408-5","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.1"},{"identity":"rim","map":"./code"},{"identity":"orim","map":"fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code"}]},{"id":"Observation.code.coding:PulseOx.display","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.code.coding.display","short":"Representation defined by the system","definition":"A representation of the meaning of the code in the system, following the rules of the system.","requirements":"Need to be able to carry a human-readable meaning of the code for readers that do not know the system.","min":0,"max":"1","base":{"path":"Coding.display","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.2 - but note this is not well followed"},{"identity":"rim","map":"CV.displayName"},{"identity":"orim","map":"fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName"}]},{"id":"Observation.code.coding:PulseOx.userSelected","path":"Observation.code.coding.userSelected","short":"If this coding was chosen directly by the user","definition":"Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).","comment":"Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.","requirements":"This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.","min":0,"max":"1","base":{"path":"Coding.userSelected","min":0,"max":"1"},"type":[{"code":"boolean"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Sometimes implied by being first"},{"identity":"rim","map":"CD.codingRationale"},{"identity":"orim","map":"fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\\#true a [ fhir:source \"true\"; fhir:target dt:CDCoding.codingRationale\\#O ]"}]},{"id":"Observation.code.text","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.code.text","short":"Plain text representation of the concept","definition":"A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.","comment":"Very often the text is the same as a displayName of one of the codings.","requirements":"The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.","min":0,"max":"1","base":{"path":"CodeableConcept.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"C*E.9. But note many systems use C*E.2 for this"},{"identity":"rim","map":"./originalText[mediaType/code=\"text/plain\"]/data"},{"identity":"orim","map":"fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText"}]},{"id":"Observation.subject","path":"Observation.subject","short":"Who and/or what the observation is about","definition":"The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation.","comment":"One would expect this element to be a cardinality of 1..1. The only circumstance in which the subject can be missing is when the observation is made by a device that does not know the patient. In this case, the observation SHALL be matched to a patient through some context/channel matching technique, and at this point, the observation should be updated.","requirements":"Observations have no value if you don't know who or what they're about.","min":1,"max":"1","base":{"path":"Observation.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":"participation[typeCode=RTGT] "},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"Observation.focus","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status","valueCode":"trial-use"}],"path":"Observation.focus","short":"What the observation is about, when it is not about the subject of record","definition":"The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.","comment":"Typically, an observation is made about the subject - a patient, or group of patients, location, or device - and the distinction between the subject and what is directly measured for an observation is specified in the observation code itself ( e.g., \"Blood Glucose\") and does not need to be represented separately using this element. Use `specimen` if a reference to a specimen is required. If a code is required instead of a resource use either `bodysite` for bodysites or the standard extension [focusCode](http://hl7.org/fhir/R4/extension-observation-focuscode.html).","min":0,"max":"*","base":{"path":"Observation.focus","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"participation[typeCode=SBJ]"},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"Observation.encounter","path":"Observation.encounter","short":"Healthcare event during which this observation is made","definition":"The healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made.","comment":"This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).","requirements":"For some observations it may be important to know the link between an observation and a particular encounter.","alias":["Context"],"min":0,"max":"1","base":{"path":"Observation.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1"},{"identity":"rim","map":"inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]"}]},{"id":"Observation.effective[x]","path":"Observation.effective[x]","short":"Often just a dateTime for Vital Signs","definition":"Often just a dateTime for Vital Signs.","comment":"At least a date should be present unless this observation is a historical report. For recording imprecise or \"fuzzy\" times (For example, a blood glucose measurement taken \"after breakfast\") use the [Timing](http://hl7.org/fhir/R4/datatypes.html#timing) datatype which allow the measurement to be tied to regular life events.","requirements":"Knowing when an observation was deemed true is important to its relevance as well as determining trends.","alias":["Occurrence"],"min":1,"max":"1","base":{"path":"Observation.effective[x]","min":0,"max":"1"},"type":[{"code":"dateTime"},{"code":"Period"}],"constraint":[{"key":"vs-1","severity":"error","human":"if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day","expression":"($this as dateTime).toString().length() >= 8","xpath":"f:effectiveDateTime[matches(@value, '^\\d{4}-\\d{2}-\\d{2}')]"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)"},{"identity":"rim","map":"effectiveTime"}]},{"id":"Observation.issued","path":"Observation.issued","short":"Date/Time this version was made available","definition":"The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.","comment":"For Observations that don’t require review and verification, it may be the same as the [`lastUpdated` ](http://hl7.org/fhir/R4/resource-definitions.html#Meta.lastUpdated) time of the resource itself. For Observations that do require review and verification for certain updates, it might not be the same as the `lastUpdated` time of the resource itself due to a non-clinically significant update that doesn’t require the new version to be reviewed and verified again.","min":0,"max":"1","base":{"path":"Observation.issued","min":0,"max":"1"},"type":[{"code":"instant"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.recorded"},{"identity":"v2","map":"OBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made)"},{"identity":"rim","map":"participation[typeCode=AUT].time"}]},{"id":"Observation.performer","path":"Observation.performer","short":"Who is responsible for the observation","definition":"Who was responsible for asserting the observed value as \"true\".","requirements":"May give a degree of confidence in the observation and also indicates where follow-up questions should be directed.","min":0,"max":"*","base":{"path":"Observation.performer","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/CareTeam","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO'"},{"identity":"rim","map":"participation[typeCode=PRF]"}]},{"id":"Observation.value[x]","path":"Observation.value[x]","short":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","definition":"Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.","comment":"An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":0,"max":"1","base":{"path":"Observation.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"}],"condition":["obs-7"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"sct-concept","map":"< 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.value[x].id","path":"Observation.value[x].id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.value[x].extension","path":"Observation.value[x].extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.value[x].value","path":"Observation.value[x].value","short":"Numerical value (with implicit precision)","definition":"The value of the measured amount. The value includes an implicit precision in the presentation of the value.","comment":"The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).","requirements":"Precision is handled implicitly in almost all cases of measurement.","min":1,"max":"1","base":{"path":"Quantity.value","min":0,"max":"1"},"type":[{"code":"decimal"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"SN.2 / CQ - N/A"},{"identity":"rim","map":"PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value"}]},{"id":"Observation.value[x].comparator","path":"Observation.value[x].comparator","short":"< | <= | >= | > - how to understand the value","definition":"How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value.","requirements":"Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.","min":0,"max":"1","base":{"path":"Quantity.comparator","min":0,"max":"1"},"type":[{"code":"code"}],"meaningWhenMissing":"If there is no comparator, then there is no modification of the value","isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"QuantityComparator"}],"strength":"required","description":"How the Quantity should be understood and represented.","valueSet":"http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.0"},"mapping":[{"identity":"v2","map":"SN.1 / CQ.1"},{"identity":"rim","map":"IVL properties"}]},{"id":"Observation.value[x].unit","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.value[x].unit","short":"Unit representation","definition":"A human-readable form of the unit.","requirements":"There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.","min":1,"max":"1","base":{"path":"Quantity.unit","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.unit"}]},{"id":"Observation.value[x].system","path":"Observation.value[x].system","short":"System that defines coded unit form","definition":"The identification of the system that provides the coded form of the unit.","requirements":"Need to know the system that defines the coded form of the unit.","min":1,"max":"1","base":{"path":"Quantity.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","condition":["qty-3"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"CO.codeSystem, PQ.translation.codeSystem"}]},{"id":"Observation.value[x].code","path":"Observation.value[x].code","short":"Coded responses from the common UCUM units for vital signs value set.","definition":"Coded responses from the common UCUM units for vital signs value set.","comment":"The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.","requirements":"Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.","min":1,"max":"1","base":{"path":"Quantity.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"%","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.code, MO.currency, PQ.translation.code"}]},{"id":"Observation.dataAbsentReason","path":"Observation.dataAbsentReason","short":"Why the result is missing","definition":"Provides a reason why the expected value in the element Observation.value[x] is missing.","comment":"Null or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"specimen unsatisfactory\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Note that an observation may only be reported if there are values to report. For example differential cell counts values may be reported only when > 0. Because of these options, use-case agreements are required to interpret general observations for null or exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.interpretation","path":"Observation.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.note","path":"Observation.note","short":"Comments about the observation","definition":"Comments about the observation or the results.","comment":"May include general statements about the observation, or statements about significant, unexpected or unreliable results values, or information about its source when relevant to its interpretation.","requirements":"Need to be able to provide free text additional information.","min":0,"max":"*","base":{"path":"Observation.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NTE.3 (partner NTE to OBX, or sometimes another (child?) OBX)"},{"identity":"rim","map":"subjectOf.observationEvent[code=\"annotation\"].value"}]},{"id":"Observation.bodySite","path":"Observation.bodySite","short":"Observed body part","definition":"Indicates the site on the subject's body where the observation was made (i.e. the target site).","comment":"Only used if not implicit in code found in Observation.code. In many systems, this may be represented as a related observation instead of an inline component. \n\nIf the use case requires BodySite to be handled as a separate resource (e.g. to identify and track separately) then use the standard extension[ bodySite](http://hl7.org/fhir/R4/extension-bodysite.html).","min":0,"max":"1","base":{"path":"Observation.bodySite","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"BodySite"}],"strength":"example","description":"Codes describing anatomical locations. May include laterality.","valueSet":"http://hl7.org/fhir/ValueSet/body-site"},"mapping":[{"identity":"sct-concept","map":"< 123037004 |Body structure|"},{"identity":"v2","map":"OBX-20"},{"identity":"rim","map":"targetSiteCode"},{"identity":"sct-attr","map":"718497002 |Inherent location|"}]},{"id":"Observation.method","path":"Observation.method","short":"How it was done","definition":"Indicates the mechanism used to perform the observation.","comment":"Only used if not implicit in code for Observation.code.","requirements":"In some cases, method can impact results and is thus used for determining whether results can be compared or determining significance of results.","min":0,"max":"1","base":{"path":"Observation.method","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationMethod"}],"strength":"example","description":"Methods for simple observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-methods"},"mapping":[{"identity":"v2","map":"OBX-17"},{"identity":"rim","map":"methodCode"}]},{"id":"Observation.specimen","path":"Observation.specimen","short":"Specimen used for this observation","definition":"The specimen that was used when this observation was made.","comment":"Should only be used if not implicit in code found in `Observation.code`. Observations are not made on specimens themselves; they are made on a subject, but in many cases by the means of a specimen. Note that although specimens are often involved, they are not always tracked and reported explicitly. Also note that observation resources may be used in contexts that track the specimen explicitly (e.g. Diagnostic Report).","min":0,"max":"1","base":{"path":"Observation.specimen","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Specimen"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"sct-concept","map":"< 123038009 |Specimen|"},{"identity":"v2","map":"SPM segment"},{"identity":"rim","map":"participation[typeCode=SPC].specimen"},{"identity":"sct-attr","map":"704319004 |Inherent in|"}]},{"id":"Observation.device","path":"Observation.device","short":"(Measurement) Device","definition":"The device used to generate the observation data.","comment":"Note that this is not meant to represent a device involved in the transmission of the result, e.g., a gateway. Such devices may be documented using the Provenance resource where relevant.","min":0,"max":"1","base":{"path":"Observation.device","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/DeviceMetric"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"sct-concept","map":"< 49062001 |Device|"},{"identity":"v2","map":"OBX-17 / PRT -10"},{"identity":"rim","map":"participation[typeCode=DEV]"},{"identity":"sct-attr","map":"424226004 |Using device|"}]},{"id":"Observation.referenceRange","path":"Observation.referenceRange","short":"Provides guide for interpretation","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an \"OR\". In other words, to represent two distinct target populations, two `referenceRange` elements would be used.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.referenceRange","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"obs-3","severity":"error","human":"Must have at least a low or a high or text","expression":"low.exists() or high.exists() or text.exists()","xpath":"(exists(f:low) or exists(f:high)or exists(f:text))"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.referenceRange.id","path":"Observation.referenceRange.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.referenceRange.extension","path":"Observation.referenceRange.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.referenceRange.modifierExtension","path":"Observation.referenceRange.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.referenceRange.low","path":"Observation.referenceRange.low","short":"Low Range, if relevant","definition":"The value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3).","min":0,"max":"1","base":{"path":"Observation.referenceRange.low","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"condition":["obs-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:IVL_PQ.low"}]},{"id":"Observation.referenceRange.high","path":"Observation.referenceRange.high","short":"High Range, if relevant","definition":"The value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3).","min":0,"max":"1","base":{"path":"Observation.referenceRange.high","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"condition":["obs-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:IVL_PQ.high"}]},{"id":"Observation.referenceRange.type","path":"Observation.referenceRange.type","short":"Reference range qualifier","definition":"Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range.","comment":"This SHOULD be populated if there is more than one range. If this element is not present then the normal range is assumed.","requirements":"Need to be able to say what kind of reference range this is - normal, recommended, therapeutic, etc., - for proper interpretation.","min":0,"max":"1","base":{"path":"Observation.referenceRange.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationRangeMeaning"}],"strength":"preferred","description":"Code for the meaning of a reference range.","valueSet":"http://hl7.org/fhir/ValueSet/referencerange-meaning"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|"},{"identity":"v2","map":"OBX-10"},{"identity":"rim","map":"interpretationCode"}]},{"id":"Observation.referenceRange.appliesTo","path":"Observation.referenceRange.appliesTo","short":"Reference range population","definition":"Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an \"AND\" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used.","comment":"This SHOULD be populated if there is more than one range. If this element is not present then the normal population is assumed.","requirements":"Need to be able to identify the target population for proper interpretation.","min":0,"max":"*","base":{"path":"Observation.referenceRange.appliesTo","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationRangeType"}],"strength":"example","description":"Codes identifying the population the reference range applies to.","valueSet":"http://hl7.org/fhir/ValueSet/referencerange-appliesto"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|"},{"identity":"v2","map":"OBX-10"},{"identity":"rim","map":"interpretationCode"}]},{"id":"Observation.referenceRange.age","path":"Observation.referenceRange.age","short":"Applicable age range, if relevant","definition":"The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.","requirements":"Some analytes vary greatly over age.","min":0,"max":"1","base":{"path":"Observation.referenceRange.age","min":0,"max":"1"},"type":[{"code":"Range"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"outboundRelationship[typeCode=PRCN].targetObservationCriterion[code=\"age\"].value"}]},{"id":"Observation.referenceRange.text","path":"Observation.referenceRange.text","short":"Text based reference range in an observation","definition":"Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of \"Negative\" or a list or table of \"normals\".","min":0,"max":"1","base":{"path":"Observation.referenceRange.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:ST"}]},{"id":"Observation.hasMember","path":"Observation.hasMember","short":"Used when reporting vital signs panel components","definition":"Used when reporting vital signs panel components.","comment":"When using this element, an observation will typically have either a value or a set of related resources, although both may be present in some cases. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below. Note that a system may calculate results from [QuestionnaireResponse](http://hl7.org/fhir/R4/questionnaireresponse.html) into a final score and represent the score as an Observation.","min":0,"max":"*","base":{"path":"Observation.hasMember","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse","http://hl7.org/fhir/StructureDefinition/MolecularSequence","http://hl7.org/fhir/StructureDefinition/vitalsigns"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Relationships established by OBX-4 usage"},{"identity":"rim","map":"outBoundRelationship"}]},{"id":"Observation.derivedFrom","path":"Observation.derivedFrom","short":"Related measurements the observation is made from","definition":"The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image.","comment":"All the reference choices that are listed in this element can represent clinical observations and other measurements that may be the source for a derived value. The most common reference will be another Observation. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below.","min":0,"max":"*","base":{"path":"Observation.derivedFrom","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/DocumentReference","http://hl7.org/fhir/StructureDefinition/ImagingStudy","http://hl7.org/fhir/StructureDefinition/Media","http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse","http://hl7.org/fhir/StructureDefinition/MolecularSequence","http://hl7.org/fhir/StructureDefinition/vitalsigns"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Relationships established by OBX-4 usage"},{"identity":"rim","map":".targetObservation"}]},{"id":"Observation.component","path":"Observation.component","slicing":{"discriminator":[{"type":"pattern","path":"code"}],"rules":"open"},"short":"Used when reporting systolic and diastolic blood pressure.","definition":"Used when reporting systolic and diastolic blood pressure.","comment":"For a discussion on the ways Observations can be assembled in groups together see [Notes](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"Component observations share the same attributes in the Observation resource as the primary observation and are always treated a part of a single observation (they are not separable). However, the reference range for the primary observation value is not inherited by the component values and is required when appropriate for each component observation.","min":0,"max":"*","base":{"path":"Observation.component","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"vs-3","severity":"error","human":"If there is no a value a data absent reason must be present","expression":"value.exists() or dataAbsentReason.exists()","xpath":"f:*[starts-with(local-name(.), 'value')] or f:dataAbsentReason","source":"Observation.component"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"containment by OBX-4?"},{"identity":"rim","map":"outBoundRelationship[typeCode=COMP]"}]},{"id":"Observation.component.id","path":"Observation.component.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component.extension","path":"Observation.component.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component.modifierExtension","path":"Observation.component.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.component.code","path":"Observation.component.code","short":"Type of component observation (code / type)","definition":"Describes what was observed. Sometimes this is called the observation \"code\".","comment":"*All* code-value and component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.","requirements":"Knowing what kind of observation is being made is essential to understanding the observation.","min":1,"max":"1","base":{"path":"Observation.component.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSigns"}],"strength":"extensible","description":"This identifies the vital sign result type.","valueSet":"http://hl7.org/fhir/ValueSet/observation-vitalsignresult"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR \r< 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"}]},{"id":"Observation.component.value[x]","path":"Observation.component.value[x]","short":"Vital Sign Value recorded with UCUM","definition":"Vital Sign Value recorded with UCUM.","comment":"Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":0,"max":"1","base":{"path":"Observation.component.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"},{"code":"CodeableConcept"},{"code":"string"},{"code":"boolean"},{"code":"integer"},{"code":"Range"},{"code":"Ratio"},{"code":"SampledData"},{"code":"time"},{"code":"dateTime"},{"code":"Period"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSignsUnits"}],"strength":"required","description":"Common UCUM units for recording Vital Signs.","valueSet":"http://hl7.org/fhir/ValueSet/ucum-vitals-common|4.0.0"},"mapping":[{"identity":"sct-concept","map":"363714003 |Interprets| < 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.component.dataAbsentReason","path":"Observation.component.dataAbsentReason","short":"Why the component result is missing","definition":"Provides a reason why the expected value in the element Observation.component.value[x] is missing.","comment":"\"Null\" or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"test not done\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Because of these options, use-case agreements are required to interpret general observations for exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.component.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.component.interpretation","path":"Observation.component.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.component.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.component.referenceRange","path":"Observation.component.referenceRange","short":"Provides guide for interpretation of component result","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.component.referenceRange","min":0,"max":"*"},"contentReference":"#Observation.referenceRange","isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.component:FlowRate","path":"Observation.component","sliceName":"FlowRate","short":"Inhaled oxygen flow rate","definition":"Used when reporting systolic and diastolic blood pressure.","comment":"For a discussion on the ways Observations can be assembled in groups together see [Notes](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"Component observations share the same attributes in the Observation resource as the primary observation and are always treated a part of a single observation (they are not separable). However, the reference range for the primary observation value is not inherited by the component values and is required when appropriate for each component observation.","min":0,"max":"1","base":{"path":"Observation.component","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"vs-3","severity":"error","human":"If there is no a value a data absent reason must be present","expression":"value.exists() or dataAbsentReason.exists()","xpath":"f:*[starts-with(local-name(.), 'value')] or f:dataAbsentReason","source":"Observation.component"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"containment by OBX-4?"},{"identity":"rim","map":"outBoundRelationship[typeCode=COMP]"}]},{"id":"Observation.component:FlowRate.id","path":"Observation.component.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component:FlowRate.extension","path":"Observation.component.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component:FlowRate.modifierExtension","path":"Observation.component.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.component:FlowRate.code","path":"Observation.component.code","short":"Type of component observation (code / type)","definition":"Describes what was observed. Sometimes this is called the observation \"code\".","comment":"*All* code-value and component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.","requirements":"Knowing what kind of observation is being made is essential to understanding the observation.","min":1,"max":"1","base":{"path":"Observation.component.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"3151-8"}]},"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSigns"}],"strength":"extensible","description":"This identifies the vital sign result type.","valueSet":"http://hl7.org/fhir/ValueSet/observation-vitalsignresult"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR \r< 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"}]},{"id":"Observation.component:FlowRate.value[x]","path":"Observation.component.value[x]","short":"Vital Sign Value recorded with UCUM","definition":"Vital Sign Value recorded with UCUM.","comment":"Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":0,"max":"1","base":{"path":"Observation.component.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSignsUnits"}],"strength":"required","description":"Common UCUM units for recording Vital Signs.","valueSet":"http://hl7.org/fhir/ValueSet/ucum-vitals-common|4.0.0"},"mapping":[{"identity":"sct-concept","map":"363714003 |Interprets| < 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.component:FlowRate.value[x].id","path":"Observation.component.value[x].id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component:FlowRate.value[x].extension","path":"Observation.component.value[x].extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component:FlowRate.value[x].value","path":"Observation.component.value[x].value","short":"Numerical value (with implicit precision)","definition":"The value of the measured amount. The value includes an implicit precision in the presentation of the value.","comment":"The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).","requirements":"Precision is handled implicitly in almost all cases of measurement.","min":0,"max":"1","base":{"path":"Quantity.value","min":0,"max":"1"},"type":[{"code":"decimal"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"SN.2 / CQ - N/A"},{"identity":"rim","map":"PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value"}]},{"id":"Observation.component:FlowRate.value[x].comparator","path":"Observation.component.value[x].comparator","short":"< | <= | >= | > - how to understand the value","definition":"How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value.","requirements":"Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.","min":0,"max":"1","base":{"path":"Quantity.comparator","min":0,"max":"1"},"type":[{"code":"code"}],"meaningWhenMissing":"If there is no comparator, then there is no modification of the value","isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"QuantityComparator"}],"strength":"required","description":"How the Quantity should be understood and represented.","valueSet":"http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.0"},"mapping":[{"identity":"v2","map":"SN.1 / CQ.1"},{"identity":"rim","map":"IVL properties"}]},{"id":"Observation.component:FlowRate.value[x].unit","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.component.value[x].unit","short":"Unit representation","definition":"A human-readable form of the unit.","requirements":"There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.","min":0,"max":"1","base":{"path":"Quantity.unit","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.unit"}]},{"id":"Observation.component:FlowRate.value[x].system","path":"Observation.component.value[x].system","short":"System that defines coded unit form","definition":"The identification of the system that provides the coded form of the unit.","requirements":"Need to know the system that defines the coded form of the unit.","min":1,"max":"1","base":{"path":"Quantity.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","condition":["qty-3"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"CO.codeSystem, PQ.translation.codeSystem"}]},{"id":"Observation.component:FlowRate.value[x].code","path":"Observation.component.value[x].code","short":"Coded form of the unit","definition":"A computer processable form of the unit in some unit representation system.","comment":"The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.","requirements":"Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.","min":1,"max":"1","base":{"path":"Quantity.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"l/min","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.code, MO.currency, PQ.translation.code"}]},{"id":"Observation.component:FlowRate.dataAbsentReason","path":"Observation.component.dataAbsentReason","short":"Why the component result is missing","definition":"Provides a reason why the expected value in the element Observation.component.value[x] is missing.","comment":"\"Null\" or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"test not done\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Because of these options, use-case agreements are required to interpret general observations for exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.component.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.component:FlowRate.interpretation","path":"Observation.component.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.component.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.component:FlowRate.referenceRange","path":"Observation.component.referenceRange","short":"Provides guide for interpretation of component result","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.component.referenceRange","min":0,"max":"*"},"contentReference":"#Observation.referenceRange","isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.component:Concentration","path":"Observation.component","sliceName":"Concentration","short":"Inhaled oxygen concentration","definition":"Used when reporting systolic and diastolic blood pressure.","comment":"For a discussion on the ways Observations can be assembled in groups together see [Notes](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"Component observations share the same attributes in the Observation resource as the primary observation and are always treated a part of a single observation (they are not separable). However, the reference range for the primary observation value is not inherited by the component values and is required when appropriate for each component observation.","min":0,"max":"1","base":{"path":"Observation.component","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"vs-3","severity":"error","human":"If there is no a value a data absent reason must be present","expression":"value.exists() or dataAbsentReason.exists()","xpath":"f:*[starts-with(local-name(.), 'value')] or f:dataAbsentReason","source":"Observation.component"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"containment by OBX-4?"},{"identity":"rim","map":"outBoundRelationship[typeCode=COMP]"}]},{"id":"Observation.component:Concentration.id","path":"Observation.component.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component:Concentration.extension","path":"Observation.component.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component:Concentration.modifierExtension","path":"Observation.component.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.component:Concentration.code","path":"Observation.component.code","short":"Type of component observation (code / type)","definition":"Describes what was observed. Sometimes this is called the observation \"code\".","comment":"*All* code-value and component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.","requirements":"Knowing what kind of observation is being made is essential to understanding the observation.","min":1,"max":"1","base":{"path":"Observation.component.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"3150-0"}]},"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSigns"}],"strength":"extensible","description":"This identifies the vital sign result type.","valueSet":"http://hl7.org/fhir/ValueSet/observation-vitalsignresult"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR \r< 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"}]},{"id":"Observation.component:Concentration.value[x]","path":"Observation.component.value[x]","short":"Vital Sign Value recorded with UCUM","definition":"Vital Sign Value recorded with UCUM.","comment":"Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"9. SHALL contain exactly one [1..1] value with @xsi:type=\"PQ\" (CONF:7305).","min":0,"max":"1","base":{"path":"Observation.component.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"VitalSignsUnits"}],"strength":"required","description":"Common UCUM units for recording Vital Signs.","valueSet":"http://hl7.org/fhir/ValueSet/ucum-vitals-common|4.0.0"},"mapping":[{"identity":"sct-concept","map":"363714003 |Interprets| < 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.component:Concentration.value[x].id","path":"Observation.component.value[x].id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component:Concentration.value[x].extension","path":"Observation.component.value[x].extension","slicing":{"discriminator":[{"type":"value","path":"url"}],"description":"Extensions are always sliced by (at least) url","rules":"open"},"short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component:Concentration.value[x].value","path":"Observation.component.value[x].value","short":"Numerical value (with implicit precision)","definition":"The value of the measured amount. The value includes an implicit precision in the presentation of the value.","comment":"The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).","requirements":"Precision is handled implicitly in almost all cases of measurement.","min":0,"max":"1","base":{"path":"Quantity.value","min":0,"max":"1"},"type":[{"code":"decimal"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"SN.2 / CQ - N/A"},{"identity":"rim","map":"PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value"}]},{"id":"Observation.component:Concentration.value[x].comparator","path":"Observation.component.value[x].comparator","short":"< | <= | >= | > - how to understand the value","definition":"How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value.","requirements":"Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.","min":0,"max":"1","base":{"path":"Quantity.comparator","min":0,"max":"1"},"type":[{"code":"code"}],"meaningWhenMissing":"If there is no comparator, then there is no modification of the value","isModifier":true,"isModifierReason":"This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value","isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"QuantityComparator"}],"strength":"required","description":"How the Quantity should be understood and represented.","valueSet":"http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.0"},"mapping":[{"identity":"v2","map":"SN.1 / CQ.1"},{"identity":"rim","map":"IVL properties"}]},{"id":"Observation.component:Concentration.value[x].unit","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable","valueBoolean":true}],"path":"Observation.component.value[x].unit","short":"Unit representation","definition":"A human-readable form of the unit.","requirements":"There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.","min":0,"max":"1","base":{"path":"Quantity.unit","min":0,"max":"1"},"type":[{"code":"string"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.unit"}]},{"id":"Observation.component:Concentration.value[x].system","path":"Observation.component.value[x].system","short":"System that defines coded unit form","definition":"The identification of the system that provides the coded form of the unit.","requirements":"Need to know the system that defines the coded form of the unit.","min":1,"max":"1","base":{"path":"Quantity.system","min":0,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","condition":["qty-3"],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"CO.codeSystem, PQ.translation.codeSystem"}]},{"id":"Observation.component:Concentration.value[x].code","path":"Observation.component.value[x].code","short":"Coded form of the unit","definition":"A computer processable form of the unit in some unit representation system.","comment":"The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.","requirements":"Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.","min":1,"max":"1","base":{"path":"Quantity.code","min":0,"max":"1"},"type":[{"code":"code"}],"fixedCode":"%","mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"(see OBX.6 etc.) / CQ.2"},{"identity":"rim","map":"PQ.code, MO.currency, PQ.translation.code"}]},{"id":"Observation.component:Concentration.dataAbsentReason","path":"Observation.component.dataAbsentReason","short":"Why the component result is missing","definition":"Provides a reason why the expected value in the element Observation.component.value[x] is missing.","comment":"\"Null\" or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"test not done\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Because of these options, use-case agreements are required to interpret general observations for exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.component.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"mustSupport":true,"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.component:Concentration.interpretation","path":"Observation.component.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.component.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.component:Concentration.referenceRange","path":"Observation.component.referenceRange","short":"Provides guide for interpretation of component result","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.component.referenceRange","min":0,"max":"*"},"contentReference":"#Observation.referenceRange","isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]}]},"differential":{"element":[{"id":"Observation","path":"Observation","definition":"This profile defines how to represent pulse oximetry and inspired oxygen concentration based on the FHIR Core Vitals Profile.\nINSPIRED OXYGEN CONCENTRATION observations in FHIR using a standard LOINC code and UCUM units of measure.","mustSupport":false},{"id":"Observation.code","path":"Observation.code","short":"Oxygen Saturation by Pulse Oximetry","comment":"The code (59408-5 Oxygen saturation in Arterial blood by Pulse oximetry) is included as an additional observation code to FHIR Core vital Oxygen Saturation code (2708-6 Oxygen saturation in Arterial blood -).","mustSupport":true},{"id":"Observation.code.coding","path":"Observation.code.coding","slicing":{"discriminator":[{"type":"value","path":"code"},{"type":"value","path":"system"}],"rules":"open"},"mustSupport":true},{"id":"Observation.code.coding:PulseOx","path":"Observation.code.coding","sliceName":"PulseOx","min":1,"max":"1","mustSupport":true},{"id":"Observation.code.coding:PulseOx.system","path":"Observation.code.coding.system","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"http://loinc.org","mustSupport":true},{"id":"Observation.code.coding:PulseOx.code","path":"Observation.code.coding.code","min":1,"max":"1","type":[{"code":"code"}],"fixedCode":"59408-5","mustSupport":true},{"id":"Observation.component","path":"Observation.component","slicing":{"discriminator":[{"type":"pattern","path":"code"}],"rules":"open"},"mustSupport":true},{"id":"Observation.component:FlowRate","path":"Observation.component","sliceName":"FlowRate","short":"Inhaled oxygen flow rate","min":0,"max":"1","mustSupport":true},{"id":"Observation.component:FlowRate.code","path":"Observation.component.code","type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"3151-8"}]},"mustSupport":true},{"id":"Observation.component:FlowRate.valueQuantity","path":"Observation.component.valueQuantity","mustSupport":true},{"id":"Observation.component:FlowRate.valueQuantity.value","path":"Observation.component.valueQuantity.value","mustSupport":true},{"id":"Observation.component:FlowRate.valueQuantity.unit","path":"Observation.component.valueQuantity.unit","mustSupport":true},{"id":"Observation.component:FlowRate.valueQuantity.system","path":"Observation.component.valueQuantity.system","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","mustSupport":true},{"id":"Observation.component:FlowRate.valueQuantity.code","path":"Observation.component.valueQuantity.code","min":1,"max":"1","type":[{"code":"code"}],"fixedCode":"l/min","mustSupport":true},{"id":"Observation.component:Concentration","path":"Observation.component","sliceName":"Concentration","short":"Inhaled oxygen concentration","min":0,"max":"1","mustSupport":true},{"id":"Observation.component:Concentration.code","path":"Observation.component.code","type":[{"code":"CodeableConcept"}],"patternCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"3150-0"}]},"mustSupport":true},{"id":"Observation.component:Concentration.valueQuantity","path":"Observation.component.valueQuantity","mustSupport":true},{"id":"Observation.component:Concentration.valueQuantity.value","path":"Observation.component.valueQuantity.value","mustSupport":true},{"id":"Observation.component:Concentration.valueQuantity.unit","path":"Observation.component.valueQuantity.unit","mustSupport":true},{"id":"Observation.component:Concentration.valueQuantity.system","path":"Observation.component.valueQuantity.system","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"http://unitsofmeasure.org","mustSupport":true},{"id":"Observation.component:Concentration.valueQuantity.code","path":"Observation.component.valueQuantity.code","min":1,"max":"1","type":[{"code":"code"}],"fixedCode":"%","mustSupport":true}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-race.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-race.json new file mode 100644 index 000000000..171b3eae5 --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-race.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-race","text":{"status":"generated","div":"
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    NameFlagsCard.TypeDescription & Constraints\"doco\"
    \".\"\".\" Extension 0..1US Core Race Extension
    \".\"\".\"\".\" extension:ombCategory S0..5ExtensionAmerican Indian or Alaska Native|Asian|Black or African American|Native Hawaiian or Other Pacific Islander|White
    \".\"\".\"\".\"\".\" url 1..1uri"ombCategory"
    \".\"\".\"\".\"\".\" valueCoding 1..1CodingBinding: OMB Race Categories (required)
    \".\"\".\"\".\" extension:detailed 0..*ExtensionExtended race codes
    \".\"\".\"\".\"\".\" url 1..1uri"detailed"
    \".\"\".\"\".\"\".\" valueCoding 1..1CodingBinding: Detailed Race (required)
    \".\"\".\"\".\" extension:text S1..1ExtensionRace Text
    \".\"\".\"\".\"\".\" url 1..1uri"text"
    \".\"\".\"\".\"\".\" valueString 1..1string
    \".\"\".\"\".\" url 1..1"http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"

    \"doco\" Documentation for this format
    "},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-race","version":"3.0.1","name":"USCoreRaceExtension","title":"US Core Race Extension","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Concepts classifying the person into a named category of humans sharing common history, traits, geographical origin or nationality. The race codes used to represent these concepts are based upon the [CDC Race and Ethnicity Code Set Version 1.0](http://www.cdc.gov/phin/resources/vocabulary/index.html) which includes over 900 concepts for representing race and ethnicity of which 921 reference race. The race concepts are grouped by and pre-mapped to the 5 OMB race categories: - American Indian or Alaska Native - Asian - Black or African American - Native Hawaiian or Other Pacific Islander - White.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"purpose":"Complies with 2015 Edition Common Clinical Data Set for patient race.","fhirVersion":"4.0.0","mapping":[{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"}],"kind":"complex-type","abstract":false,"context":[{"type":"element","expression":"Patient"}],"type":"Extension","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Extension","derivation":"constraint","snapshot":{"element":[{"id":"Extension:race","path":"Extension","short":"US Core Race Extension","definition":"Concepts classifying the person into a named category of humans sharing common history, traits, geographical origin or nationality. The race codes used to represent these concepts are based upon the [CDC Race and Ethnicity Code Set Version 1.0](http://www.cdc.gov/phin/resources/vocabulary/index.html) which includes over 900 concepts for representing race and ethnicity of which 921 reference race. The race concepts are grouped by and pre-mapped to the 5 OMB race categories: - American Indian or Alaska Native - Asian - Black or African American - Native Hawaiian or Other Pacific Islander - White.","min":0,"max":"1","base":{"path":"Extension","min":0,"max":"*"},"condition":["ele-1"],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"children().count() > id.count()","xpath":"@value|f:*|h:div","source":"Element"},{"key":"ext-1","severity":"error","human":"Must have either extensions or value[x], not both","expression":"extension.exists() != value.exists()","xpath":"exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])","source":"Extension"}],"isModifier":false},{"id":"Extension:race.id","path":"Extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:race.extension","path":"Extension.extension","slicing":{"id":"1","discriminator":[{"type":"value","path":"url"}],"ordered":false,"rules":"open"},"short":"Extension","definition":"An Extension","min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}]},{"id":"Extension:race.extension:ombcategory","path":"Extension.extension","sliceName":"ombCategory","short":"American Indian or Alaska Native|Asian|Black or African American|Native Hawaiian or Other Pacific Islander|White","definition":"The 5 race category codes according to the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","min":0,"max":"5","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mustSupport":true,"isModifier":false,"mapping":[{"identity":"iso11179","map":"/ClinicalDocument/recordTarget/patientRole/patient/raceCode"}]},{"id":"Extension:race.extension:ombcategory.id","path":"Extension.extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:race.extension:ombcategory.extension","path":"Extension.extension.extension","short":"Additional Content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"0","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:race.extension:ombcategory.url","path":"Extension.extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"ombCategory","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:race.extension:ombcategory.valueCoding","path":"Extension.extension.valueCoding","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":1,"max":"1","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"Coding"}],"binding":{"strength":"required","description":"The 5 race category codes according to the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","valueSet":"http://hl7.org/fhir/us/core/ValueSet/omb-race-category"},"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:race.extension:detailed","path":"Extension.extension","sliceName":"detailed","short":"Extended race codes","definition":"The 900+ CDC race codes that are grouped under one of the 5 OMB race category codes:.","min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"mapping":[{"identity":"iso11179","map":"/ClinicalDocument/recordTarget/patientRole/patient/sdtc:raceCode"}]},{"id":"Extension:race.extension:detailed.id","path":"Extension.extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:race.extension:detailed.extension","path":"Extension.extension.extension","short":"Additional Content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"0","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:race.extension:detailed.url","path":"Extension.extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"detailed","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:race.extension:detailed.valueCoding","path":"Extension.extension.valueCoding","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":1,"max":"1","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"Coding"}],"binding":{"strength":"required","description":"The [900+ CDC Race codes](http://www.cdc.gov/phin/resources/vocabulary/index.html) that are grouped under one of the 5 OMB race category codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/detailed-race"},"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:race.extension:text","path":"Extension.extension","sliceName":"text","short":"Race Text","definition":"Plain text representation of the race concept(s).","min":1,"max":"1","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mustSupport":true,"isModifier":false},{"id":"Extension:race.extension:text.id","path":"Extension.extension.id","representation":["xmlAttr"],"short":"xml:id (or equivalent in JSON)","definition":"unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:race.extension:text.extension","path":"Extension.extension.extension","short":"Additional Content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"0","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Extension:race.extension:text.url","path":"Extension.extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"text","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:race.extension:text.valueString","path":"Extension.extension.valueString","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":1,"max":"1","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"string"}],"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:race.url","path":"Extension.url","representation":["xmlAttr"],"short":"identifies the meaning of the extension","definition":"Source of the definition for the extension code - a logical name or a URL.","comment":"The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.","min":1,"max":"1","base":{"path":"Extension.url","min":1,"max":"1"},"type":[{"code":"uri"}],"fixedUri":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-race","mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Extension:race.value[x]","path":"Extension.value[x]","short":"Value of extension","definition":"Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).","min":0,"max":"0","base":{"path":"Extension.value[x]","min":0,"max":"1"},"type":[{"code":"base64Binary"},{"code":"boolean"},{"code":"code"},{"code":"date"},{"code":"dateTime"},{"code":"decimal"},{"code":"id"},{"code":"instant"},{"code":"integer"},{"code":"markdown"},{"code":"oid"},{"code":"positiveInt"},{"code":"string"},{"code":"time"},{"code":"unsignedInt"},{"code":"uri"},{"code":"Address"},{"code":"Age"},{"code":"Annotation"},{"code":"Attachment"},{"code":"CodeableConcept"},{"code":"Coding"},{"code":"ContactPoint"},{"code":"Count"},{"code":"Distance"},{"code":"Duration"},{"code":"HumanName"},{"code":"Identifier"},{"code":"Money"},{"code":"Period"},{"code":"Quantity"},{"code":"Range"},{"code":"Ratio"},{"code":"Reference"},{"code":"SampledData"},{"code":"Signature"},{"code":"Timing"},{"code":"Meta"}],"mapping":[{"identity":"rim","map":"N/A"}]}]},"differential":{"element":[{"id":"Extension:race","path":"Extension","short":"US Core Race Extension","definition":"Concepts classifying the person into a named category of humans sharing common history, traits, geographical origin or nationality. The race codes used to represent these concepts are based upon the [CDC Race and Ethnicity Code Set Version 1.0](http://www.cdc.gov/phin/resources/vocabulary/index.html) which includes over 900 concepts for representing race and ethnicity of which 921 reference race. The race concepts are grouped by and pre-mapped to the 5 OMB race categories: - American Indian or Alaska Native - Asian - Black or African American - Native Hawaiian or Other Pacific Islander - White.","min":0,"max":"1","isModifier":false},{"id":"Extension:race.extension:ombcategory","path":"Extension.extension","sliceName":"ombCategory","short":"American Indian or Alaska Native|Asian|Black or African American|Native Hawaiian or Other Pacific Islander|White","definition":"The 5 race category codes according to the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","min":0,"max":"5","type":[{"code":"Extension"}],"mustSupport":true,"isModifier":false,"mapping":[{"identity":"iso11179","map":"/ClinicalDocument/recordTarget/patientRole/patient/raceCode"}]},{"id":"Extension:race.extension:ombcategory.url","path":"Extension.extension.url","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"ombCategory"},{"id":"Extension:race.extension:ombcategory.valueCoding","path":"Extension.extension.valueCoding","min":1,"max":"1","type":[{"code":"Coding"}],"binding":{"strength":"required","description":"The 5 race category codes according to the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","valueSet":"http://hl7.org/fhir/us/core/ValueSet/omb-race-category"}},{"id":"Extension:race.extension:detailed","path":"Extension.extension","sliceName":"detailed","short":"Extended race codes","definition":"The 900+ CDC race codes that are grouped under one of the 5 OMB race category codes:.","min":0,"max":"*","type":[{"code":"Extension"}],"isModifier":false,"mapping":[{"identity":"iso11179","map":"/ClinicalDocument/recordTarget/patientRole/patient/sdtc:raceCode"}]},{"id":"Extension:race.extension:detailed.url","path":"Extension.extension.url","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"detailed"},{"id":"Extension:race.extension:detailed.valueCoding","path":"Extension.extension.valueCoding","min":1,"max":"1","type":[{"code":"Coding"}],"binding":{"strength":"required","description":"The [900+ CDC Race codes](http://www.cdc.gov/phin/resources/vocabulary/index.html) that are grouped under one of the 5 OMB race category codes.","valueSet":"http://hl7.org/fhir/us/core/ValueSet/detailed-race"}},{"id":"Extension:race.extension:text","path":"Extension.extension","sliceName":"text","short":"Race Text","definition":"Plain text representation of the race concept(s).","min":1,"max":"1","type":[{"code":"Extension"}],"mustSupport":true,"isModifier":false},{"id":"Extension:race.extension:text.url","path":"Extension.extension.url","min":1,"max":"1","type":[{"code":"uri"}],"fixedUri":"text"},{"id":"Extension:race.extension:text.valueString","path":"Extension.extension.valueString","min":1,"max":"1","type":[{"code":"string"}]},{"id":"Extension:race.url","path":"Extension.url","min":1,"max":"1","fixedUri":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/StructureDefinition-us-core-smokingstatus.json b/resources/uscore_v3.0.1/StructureDefinition-us-core-smokingstatus.json new file mode 100644 index 000000000..5a4009e2e --- /dev/null +++ b/resources/uscore_v3.0.1/StructureDefinition-us-core-smokingstatus.json @@ -0,0 +1 @@ +{"resourceType":"StructureDefinition","id":"us-core-smokingstatus","text":{"status":"generated","div":""},"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus","version":"3.0.1","name":"USCoreSmokingStatusProfile","title":"US Core Smoking Status Observation Profile","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.healthit.gov"}]}],"description":"Defines constraints and extensions on the Observation resource for the minimal set of data to query and retrieve patient's Smoking Status information.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"fhirVersion":"4.0.0","mapping":[{"identity":"argonaut-dq-dstu2","uri":"http://unknown.org/Argonaut-DQ-DSTU2","name":"Argonaut-DQ-DSTU2"},{"identity":"workflow","uri":"http://hl7.org/fhir/workflow","name":"Workflow Pattern"},{"identity":"sct-concept","uri":"http://snomed.info/conceptdomain","name":"SNOMED CT Concept Domain Binding"},{"identity":"v2","uri":"http://hl7.org/v2","name":"HL7 v2 Mapping"},{"identity":"rim","uri":"http://hl7.org/v3","name":"RIM Mapping"},{"identity":"w5","uri":"http://hl7.org/fhir/fivews","name":"FiveWs Pattern Mapping"},{"identity":"sct-attr","uri":"http://snomed.org/attributebinding","name":"SNOMED CT Attribute Binding"}],"kind":"resource","abstract":false,"type":"Observation","baseDefinition":"http://hl7.org/fhir/StructureDefinition/Observation","derivation":"constraint","snapshot":{"element":[{"id":"Observation","path":"Observation","short":"Measurements and simple assertions","definition":"The US Core Smoking Status Observation Profile is based upon the core FHIR Observation Resource and created to meet the 2015 Edition Common Clinical Data Set 'Smoking status' requirements.","comment":"Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.","alias":["Vital Signs","Measurement","Results","Tests","Obs"],"min":0,"max":"*","base":{"path":"Observation","min":0,"max":"*"},"constraint":[{"key":"dom-2","severity":"error","human":"If the resource is contained in another resource, it SHALL NOT contain nested Resources","expression":"contained.contained.empty()","xpath":"not(parent::f:contained and f:contained)","source":"DomainResource"},{"key":"dom-4","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated","expression":"contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()","xpath":"not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))","source":"DomainResource"},{"key":"dom-3","severity":"error","human":"If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource","expression":"contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()","xpath":"not(exists(for $contained in f:contained return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))","source":"DomainResource"},{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice","valueBoolean":true},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation","valueMarkdown":"When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."}],"key":"dom-6","severity":"warning","human":"A resource should have narrative for robust management","expression":"text.div.exists()","xpath":"exists(f:text/h:div)","source":"DomainResource"},{"key":"dom-5","severity":"error","human":"If a resource is contained in another resource, it SHALL NOT have a security label","expression":"contained.meta.security.empty()","xpath":"not(exists(f:contained/*/f:meta/f:security))","source":"DomainResource"},{"key":"obs-7","severity":"error","human":"If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present","expression":"value.empty() or component.code.where( (coding.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty()","xpath":"not(f:*[starts-with(local-name(.), 'value')] and (for $coding in f:code/f:coding return f:component/f:code/f:coding[f:code/@value=$coding/f:code/@value] [f:system/@value=$coding/f:system/@value]))","source":"Observation"},{"key":"obs-6","severity":"error","human":"dataAbsentReason SHALL only be present if Observation.value[x] is not present","expression":"dataAbsentReason.empty() or value.empty()","xpath":"not(exists(f:dataAbsentReason)) or (not(exists(*[starts-with(local-name(.), 'value')])))","source":"Observation"}],"mustSupport":false,"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Entity. Role, or Act"},{"identity":"workflow","map":"Event"},{"identity":"sct-concept","map":"< 363787002 |Observable entity|"},{"identity":"v2","map":"OBX"},{"identity":"rim","map":"Observation[classCode=OBS, moodCode=EVN]"},{"identity":"argonaut-dq-dstu2","map":"Observation"}]},{"id":"Observation.id","path":"Observation.id","short":"Logical id of this artifact","definition":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.","comment":"The only time that a resource does not have an id is when it is being submitted to the server using a create operation.","min":0,"max":"1","base":{"path":"Resource.id","min":0,"max":"1"},"type":[{"code":"id"}],"isModifier":false,"isSummary":true},{"id":"Observation.meta","path":"Observation.meta","short":"Metadata about the resource","definition":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.","min":0,"max":"1","base":{"path":"Resource.meta","min":0,"max":"1"},"type":[{"code":"Meta"}],"isModifier":false,"isSummary":true},{"id":"Observation.implicitRules","path":"Observation.implicitRules","short":"A set of rules under which this content was created","definition":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.","comment":"Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.","min":0,"max":"1","base":{"path":"Resource.implicitRules","min":0,"max":"1"},"type":[{"code":"uri"}],"isModifier":true,"isModifierReason":"This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation","isSummary":true},{"id":"Observation.language","path":"Observation.language","short":"Language of the resource content","definition":"The base language in which the resource is written.","comment":"Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).","min":0,"max":"1","base":{"path":"Resource.language","min":0,"max":"1"},"type":[{"code":"code"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet","valueCanonical":"http://hl7.org/fhir/ValueSet/all-languages"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"Language"},{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding","valueBoolean":true}],"strength":"preferred","description":"A human language.","valueSet":"http://hl7.org/fhir/ValueSet/languages"}},{"id":"Observation.text","path":"Observation.text","short":"Text summary of the resource, for human interpretation","definition":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.","comment":"Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.","alias":["narrative","html","xhtml","display"],"min":0,"max":"1","base":{"path":"DomainResource.text","min":0,"max":"1"},"type":[{"code":"Narrative"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"Act.text?"}]},{"id":"Observation.contained","path":"Observation.contained","short":"Contained, inline Resources","definition":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","comment":"This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.","alias":["inline resources","anonymous resources","contained resources"],"min":0,"max":"*","base":{"path":"DomainResource.contained","min":0,"max":"*"},"type":[{"code":"Resource"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.extension","path":"Observation.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.modifierExtension","path":"Observation.modifierExtension","short":"Extensions that cannot be ignored","definition":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"DomainResource.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them","isSummary":false,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.identifier","path":"Observation.identifier","short":"Business Identifier for observation","definition":"A unique identifier assigned to this observation.","requirements":"Allows observations to be distinguished and referenced.","min":0,"max":"*","base":{"path":"Observation.identifier","min":0,"max":"*"},"type":[{"code":"Identifier"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.identifier"},{"identity":"w5","map":"FiveWs.identifier"},{"identity":"v2","map":"OBX.21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 2) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4."},{"identity":"rim","map":"id"}]},{"id":"Observation.basedOn","path":"Observation.basedOn","short":"Fulfills plan, proposal or order","definition":"A plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed.","requirements":"Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.","alias":["Fulfills"],"min":0,"max":"*","base":{"path":"Observation.basedOn","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/CarePlan","http://hl7.org/fhir/StructureDefinition/DeviceRequest","http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation","http://hl7.org/fhir/StructureDefinition/MedicationRequest","http://hl7.org/fhir/StructureDefinition/NutritionOrder","http://hl7.org/fhir/StructureDefinition/ServiceRequest"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.basedOn"},{"identity":"v2","map":"ORC"},{"identity":"rim","map":".inboundRelationship[typeCode=COMP].source[moodCode=EVN]"}]},{"id":"Observation.partOf","path":"Observation.partOf","short":"Part of referenced event","definition":"A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure.","comment":"To link an Observation to an Encounter use `encounter`. See the [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below for guidance on referencing another Observation.","alias":["Container"],"min":0,"max":"*","base":{"path":"Observation.partOf","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/MedicationAdministration","http://hl7.org/fhir/StructureDefinition/MedicationDispense","http://hl7.org/fhir/StructureDefinition/MedicationStatement","http://hl7.org/fhir/StructureDefinition/Procedure","http://hl7.org/fhir/StructureDefinition/Immunization","http://hl7.org/fhir/StructureDefinition/ImagingStudy"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.partOf"},{"identity":"v2","map":"Varies by domain"},{"identity":"rim","map":".outboundRelationship[typeCode=FLFS].target"}]},{"id":"Observation.status","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint","valueString":"default: final"}],"path":"Observation.status","short":"registered | preliminary | final | amended +","definition":"The status of the result value.","comment":"This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.","requirements":"Need to track the status of individual results. Some results are finalized before the whole report is finalized.","min":1,"max":"1","base":{"path":"Observation.status","min":1,"max":"1"},"type":[{"code":"code"}],"mustSupport":true,"isModifier":true,"isModifierReason":"This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid","isSummary":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-observation-smoking-status-status"},"mapping":[{"identity":"workflow","map":"Event.status"},{"identity":"w5","map":"FiveWs.status"},{"identity":"sct-concept","map":"< 445584004 |Report by finality status|"},{"identity":"v2","map":"OBX-11"},{"identity":"rim","map":"status Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of \"revise\""},{"identity":"argonaut-dq-dstu2","map":"Observation.status"}]},{"id":"Observation.category","path":"Observation.category","short":"Classification of type of observation","definition":"A code that classifies the general type of observation being made.","comment":"In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.","requirements":"Used for filtering what observations are retrieved and displayed.","min":0,"max":"*","base":{"path":"Observation.category","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationCategory"}],"strength":"preferred","description":"Codes for high level observation categories.","valueSet":"http://hl7.org/fhir/ValueSet/observation-category"},"mapping":[{"identity":"w5","map":"FiveWs.class"},{"identity":"rim","map":".outboundRelationship[typeCode=\"COMP].target[classCode=\"LIST\", moodCode=\"EVN\"].code"}]},{"id":"Observation.code","path":"Observation.code","short":"Smoking Status","definition":"Describes what was observed. Sometimes this is called the observation \"name\".","comment":"*All* code-value and, if present, component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.","requirements":"Knowing what kind of observation is being made is essential to understanding the observation.","alias":["Name"],"min":1,"max":"1","base":{"path":"Observation.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-smoking-status-observation-codes"},"mapping":[{"identity":"workflow","map":"Event.code"},{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"},{"identity":"sct-attr","map":"116680003 |Is a|"},{"identity":"argonaut-dq-dstu2","map":"Observation.code"}]},{"id":"Observation.subject","path":"Observation.subject","short":"Who and/or what the observation is about","definition":"The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation.","comment":"One would expect this element to be a cardinality of 1..1. The only circumstance in which the subject can be missing is when the observation is made by a device that does not know the patient. In this case, the observation SHALL be matched to a patient through some context/channel matching technique, and at this point, the observation should be updated.","requirements":"Observations have no value if you don't know who or what they're about.","min":1,"max":"1","base":{"path":"Observation.subject","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.subject"},{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"PID-3"},{"identity":"rim","map":"participation[typeCode=RTGT] "},{"identity":"w5","map":"FiveWs.subject"},{"identity":"argonaut-dq-dstu2","map":"Observation.subject"}]},{"id":"Observation.focus","extension":[{"url":"http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status","valueCode":"trial-use"}],"path":"Observation.focus","short":"What the observation is about, when it is not about the subject of record","definition":"The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.","comment":"Typically, an observation is made about the subject - a patient, or group of patients, location, or device - and the distinction between the subject and what is directly measured for an observation is specified in the observation code itself ( e.g., \"Blood Glucose\") and does not need to be represented separately using this element. Use `specimen` if a reference to a specimen is required. If a code is required instead of a resource use either `bodysite` for bodysites or the standard extension [focusCode](http://hl7.org/fhir/R4/extension-observation-focuscode.html).","min":0,"max":"*","base":{"path":"Observation.focus","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Resource"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.subject[x]"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"participation[typeCode=SBJ]"},{"identity":"w5","map":"FiveWs.subject"}]},{"id":"Observation.encounter","path":"Observation.encounter","short":"Healthcare event during which this observation is made","definition":"The healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made.","comment":"This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).","requirements":"For some observations it may be important to know the link between an observation and a particular encounter.","alias":["Context"],"min":0,"max":"1","base":{"path":"Observation.encounter","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Encounter"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.context"},{"identity":"w5","map":"FiveWs.context"},{"identity":"v2","map":"PV1"},{"identity":"rim","map":"inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]"}]},{"id":"Observation.effective[x]","path":"Observation.effective[x]","short":"Clinically relevant time/time-period for observation","definition":"The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the \"physiologically relevant time\". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.","comment":"At least a date should be present unless this observation is a historical report. For recording imprecise or \"fuzzy\" times (For example, a blood glucose measurement taken \"after breakfast\") use the [Timing](http://hl7.org/fhir/R4/datatypes.html#timing) datatype which allow the measurement to be tied to regular life events.","requirements":"Knowing when an observation was deemed true is important to its relevance as well as determining trends.","alias":["Occurrence"],"min":0,"max":"1","base":{"path":"Observation.effective[x]","min":0,"max":"1"},"type":[{"code":"dateTime"},{"code":"Period"},{"code":"Timing"},{"code":"instant"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.occurrence[x]"},{"identity":"w5","map":"FiveWs.done[x]"},{"identity":"v2","map":"OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)"},{"identity":"rim","map":"effectiveTime"}]},{"id":"Observation.issued","path":"Observation.issued","short":"Date/Time this version was made available","definition":"The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.","comment":"For Observations that don’t require review and verification, it may be the same as the [`lastUpdated` ](http://hl7.org/fhir/R4/resource-definitions.html#Meta.lastUpdated) time of the resource itself. For Observations that do require review and verification for certain updates, it might not be the same as the `lastUpdated` time of the resource itself due to a non-clinically significant update that doesn’t require the new version to be reviewed and verified again.","min":1,"max":"1","base":{"path":"Observation.issued","min":0,"max":"1"},"type":[{"code":"instant"}],"mustSupport":true,"isModifier":false,"isSummary":true,"mapping":[{"identity":"w5","map":"FiveWs.recorded"},{"identity":"v2","map":"OBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made)"},{"identity":"rim","map":"participation[typeCode=AUT].time"},{"identity":"argonaut-dq-dstu2","map":"Observation.issued"}]},{"id":"Observation.performer","path":"Observation.performer","short":"Who is responsible for the observation","definition":"Who was responsible for asserting the observed value as \"true\".","requirements":"May give a degree of confidence in the observation and also indicates where follow-up questions should be directed.","min":0,"max":"*","base":{"path":"Observation.performer","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/Organization","http://hl7.org/fhir/StructureDefinition/CareTeam","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"workflow","map":"Event.performer.actor"},{"identity":"w5","map":"FiveWs.actor"},{"identity":"v2","map":"OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO'"},{"identity":"rim","map":"participation[typeCode=PRF]"}]},{"id":"Observation.value[x]","path":"Observation.value[x]","slicing":{"discriminator":[{"type":"type","path":"$this"}],"ordered":false,"rules":"closed"},"short":"Actual result","definition":"The information determined as a result of making the observation, if the information has a simple value.","comment":"An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.","min":0,"max":"1","base":{"path":"Observation.value[x]","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-7"],"isModifier":false,"isSummary":true,"mapping":[{"identity":"sct-concept","map":"< 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.value[x]:valueCodeableConcept","path":"Observation.value[x]","sliceName":"valueCodeableConcept","short":"Coded Responses from Smoking Status Value Set","definition":"The information determined as a result of making the observation, if the information has a simple value.","comment":"An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.","min":1,"max":"1","base":{"path":"Observation.value[x]","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-7"],"mustSupport":true,"isModifier":false,"isSummary":true,"binding":{"strength":"extensible","description":"This value set indicates the current smoking status of a patient","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-observation-smokingstatus"},"mapping":[{"identity":"sct-concept","map":"< 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"},{"identity":"argonaut-dq-dstu2","map":"Observation.valueCodeableConcept"}]},{"id":"Observation.dataAbsentReason","path":"Observation.dataAbsentReason","short":"Why the result is missing","definition":"Provides a reason why the expected value in the element Observation.value[x] is missing.","comment":"Null or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"specimen unsatisfactory\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Note that an observation may only be reported if there are values to report. For example differential cell counts values may be reported only when > 0. Because of these options, use-case agreements are required to interpret general observations for null or exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.interpretation","path":"Observation.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.note","path":"Observation.note","short":"Comments about the observation","definition":"Comments about the observation or the results.","comment":"May include general statements about the observation, or statements about significant, unexpected or unreliable results values, or information about its source when relevant to its interpretation.","requirements":"Need to be able to provide free text additional information.","min":0,"max":"*","base":{"path":"Observation.note","min":0,"max":"*"},"type":[{"code":"Annotation"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"NTE.3 (partner NTE to OBX, or sometimes another (child?) OBX)"},{"identity":"rim","map":"subjectOf.observationEvent[code=\"annotation\"].value"}]},{"id":"Observation.bodySite","path":"Observation.bodySite","short":"Observed body part","definition":"Indicates the site on the subject's body where the observation was made (i.e. the target site).","comment":"Only used if not implicit in code found in Observation.code. In many systems, this may be represented as a related observation instead of an inline component. \n\nIf the use case requires BodySite to be handled as a separate resource (e.g. to identify and track separately) then use the standard extension[ bodySite](http://hl7.org/fhir/R4/extension-bodysite.html).","min":0,"max":"1","base":{"path":"Observation.bodySite","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"BodySite"}],"strength":"example","description":"Codes describing anatomical locations. May include laterality.","valueSet":"http://hl7.org/fhir/ValueSet/body-site"},"mapping":[{"identity":"sct-concept","map":"< 123037004 |Body structure|"},{"identity":"v2","map":"OBX-20"},{"identity":"rim","map":"targetSiteCode"},{"identity":"sct-attr","map":"718497002 |Inherent location|"}]},{"id":"Observation.method","path":"Observation.method","short":"How it was done","definition":"Indicates the mechanism used to perform the observation.","comment":"Only used if not implicit in code for Observation.code.","requirements":"In some cases, method can impact results and is thus used for determining whether results can be compared or determining significance of results.","min":0,"max":"1","base":{"path":"Observation.method","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationMethod"}],"strength":"example","description":"Methods for simple observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-methods"},"mapping":[{"identity":"v2","map":"OBX-17"},{"identity":"rim","map":"methodCode"}]},{"id":"Observation.specimen","path":"Observation.specimen","short":"Specimen used for this observation","definition":"The specimen that was used when this observation was made.","comment":"Should only be used if not implicit in code found in `Observation.code`. Observations are not made on specimens themselves; they are made on a subject, but in many cases by the means of a specimen. Note that although specimens are often involved, they are not always tracked and reported explicitly. Also note that observation resources may be used in contexts that track the specimen explicitly (e.g. Diagnostic Report).","min":0,"max":"1","base":{"path":"Observation.specimen","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Specimen"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"sct-concept","map":"< 123038009 |Specimen|"},{"identity":"v2","map":"SPM segment"},{"identity":"rim","map":"participation[typeCode=SPC].specimen"},{"identity":"sct-attr","map":"704319004 |Inherent in|"}]},{"id":"Observation.device","path":"Observation.device","short":"(Measurement) Device","definition":"The device used to generate the observation data.","comment":"Note that this is not meant to represent a device involved in the transmission of the result, e.g., a gateway. Such devices may be documented using the Provenance resource where relevant.","min":0,"max":"1","base":{"path":"Observation.device","min":0,"max":"1"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/DeviceMetric"]}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"sct-concept","map":"< 49062001 |Device|"},{"identity":"v2","map":"OBX-17 / PRT -10"},{"identity":"rim","map":"participation[typeCode=DEV]"},{"identity":"sct-attr","map":"424226004 |Using device|"}]},{"id":"Observation.referenceRange","path":"Observation.referenceRange","short":"Provides guide for interpretation","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an \"OR\". In other words, to represent two distinct target populations, two `referenceRange` elements would be used.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.referenceRange","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"},{"key":"obs-3","severity":"error","human":"Must have at least a low or a high or text","expression":"low.exists() or high.exists() or text.exists()","xpath":"(exists(f:low) or exists(f:high)or exists(f:text))"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]},{"id":"Observation.referenceRange.id","path":"Observation.referenceRange.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.referenceRange.extension","path":"Observation.referenceRange.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.referenceRange.modifierExtension","path":"Observation.referenceRange.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.referenceRange.low","path":"Observation.referenceRange.low","short":"Low Range, if relevant","definition":"The value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3).","min":0,"max":"1","base":{"path":"Observation.referenceRange.low","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"condition":["obs-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:IVL_PQ.low"}]},{"id":"Observation.referenceRange.high","path":"Observation.referenceRange.high","short":"High Range, if relevant","definition":"The value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3).","min":0,"max":"1","base":{"path":"Observation.referenceRange.high","min":0,"max":"1"},"type":[{"code":"Quantity","profile":["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}],"condition":["obs-3"],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:IVL_PQ.high"}]},{"id":"Observation.referenceRange.type","path":"Observation.referenceRange.type","short":"Reference range qualifier","definition":"Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range.","comment":"This SHOULD be populated if there is more than one range. If this element is not present then the normal range is assumed.","requirements":"Need to be able to say what kind of reference range this is - normal, recommended, therapeutic, etc., - for proper interpretation.","min":0,"max":"1","base":{"path":"Observation.referenceRange.type","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationRangeMeaning"}],"strength":"preferred","description":"Code for the meaning of a reference range.","valueSet":"http://hl7.org/fhir/ValueSet/referencerange-meaning"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|"},{"identity":"v2","map":"OBX-10"},{"identity":"rim","map":"interpretationCode"}]},{"id":"Observation.referenceRange.appliesTo","path":"Observation.referenceRange.appliesTo","short":"Reference range population","definition":"Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an \"AND\" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used.","comment":"This SHOULD be populated if there is more than one range. If this element is not present then the normal population is assumed.","requirements":"Need to be able to identify the target population for proper interpretation.","min":0,"max":"*","base":{"path":"Observation.referenceRange.appliesTo","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationRangeType"}],"strength":"example","description":"Codes identifying the population the reference range applies to.","valueSet":"http://hl7.org/fhir/ValueSet/referencerange-appliesto"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values| OR \r< 365860008 |General clinical state finding| \rOR \r< 250171008 |Clinical history or observation findings| OR \r< 415229000 |Racial group| OR \r< 365400002 |Finding of puberty stage| OR\r< 443938003 |Procedure carried out on subject|"},{"identity":"v2","map":"OBX-10"},{"identity":"rim","map":"interpretationCode"}]},{"id":"Observation.referenceRange.age","path":"Observation.referenceRange.age","short":"Applicable age range, if relevant","definition":"The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.","requirements":"Some analytes vary greatly over age.","min":0,"max":"1","base":{"path":"Observation.referenceRange.age","min":0,"max":"1"},"type":[{"code":"Range"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"outboundRelationship[typeCode=PRCN].targetObservationCriterion[code=\"age\"].value"}]},{"id":"Observation.referenceRange.text","path":"Observation.referenceRange.text","short":"Text based reference range in an observation","definition":"Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of \"Negative\" or a list or table of \"normals\".","min":0,"max":"1","base":{"path":"Observation.referenceRange.text","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX-7"},{"identity":"rim","map":"value:ST"}]},{"id":"Observation.hasMember","path":"Observation.hasMember","short":"Related resource that belongs to the Observation group","definition":"This observation is a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the group.","comment":"When using this element, an observation will typically have either a value or a set of related resources, although both may be present in some cases. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below. Note that a system may calculate results from [QuestionnaireResponse](http://hl7.org/fhir/R4/questionnaireresponse.html) into a final score and represent the score as an Observation.","min":0,"max":"*","base":{"path":"Observation.hasMember","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/Observation","http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse","http://hl7.org/fhir/StructureDefinition/MolecularSequence"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Relationships established by OBX-4 usage"},{"identity":"rim","map":"outBoundRelationship"}]},{"id":"Observation.derivedFrom","path":"Observation.derivedFrom","short":"Related measurements the observation is made from","definition":"The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image.","comment":"All the reference choices that are listed in this element can represent clinical observations and other measurements that may be the source for a derived value. The most common reference will be another Observation. For a discussion on the ways Observations can assembled in groups together, see [Notes](http://hl7.org/fhir/R4/observation.html#obsgrouping) below.","min":0,"max":"*","base":{"path":"Observation.derivedFrom","min":0,"max":"*"},"type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/StructureDefinition/DocumentReference","http://hl7.org/fhir/StructureDefinition/ImagingStudy","http://hl7.org/fhir/StructureDefinition/Media","http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse","http://hl7.org/fhir/StructureDefinition/Observation","http://hl7.org/fhir/StructureDefinition/MolecularSequence"]}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"Relationships established by OBX-4 usage"},{"identity":"rim","map":".targetObservation"}]},{"id":"Observation.component","path":"Observation.component","short":"Component results","definition":"Some observations have multiple component observations. These component observations are expressed as separate code value pairs that share the same attributes. Examples include systolic and diastolic component observations for blood pressure measurement and multiple component observations for genetics observations.","comment":"For a discussion on the ways Observations can be assembled in groups together see [Notes](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"Component observations share the same attributes in the Observation resource as the primary observation and are always treated a part of a single observation (they are not separable). However, the reference range for the primary observation value is not inherited by the component values and is required when appropriate for each component observation.","min":0,"max":"*","base":{"path":"Observation.component","min":0,"max":"*"},"type":[{"code":"BackboneElement"}],"constraint":[{"key":"ele-1","severity":"error","human":"All FHIR elements must have a @value or children","expression":"hasValue() or (children().count() > id.count())","xpath":"@value|f:*|h:div","source":"Element"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"v2","map":"containment by OBX-4?"},{"identity":"rim","map":"outBoundRelationship[typeCode=COMP]"}]},{"id":"Observation.component.id","path":"Observation.component.id","representation":["xmlAttr"],"short":"Unique id for inter-element referencing","definition":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.","min":0,"max":"1","base":{"path":"Element.id","min":0,"max":"1"},"type":[{"code":"string"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component.extension","path":"Observation.component.extension","short":"Additional content defined by implementations","definition":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","alias":["extensions","user content"],"min":0,"max":"*","base":{"path":"Element.extension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":false,"isSummary":false,"mapping":[{"identity":"rim","map":"n/a"}]},{"id":"Observation.component.modifierExtension","path":"Observation.component.modifierExtension","short":"Extensions that cannot be ignored even if unrecognized","definition":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).","comment":"There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.","requirements":"Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).","alias":["extensions","user content","modifiers"],"min":0,"max":"*","base":{"path":"BackboneElement.modifierExtension","min":0,"max":"*"},"type":[{"code":"Extension"}],"isModifier":true,"isModifierReason":"Modifier extensions are expected to modify the meaning or interpretation of the element that contains them","isSummary":true,"mapping":[{"identity":"rim","map":"N/A"}]},{"id":"Observation.component.code","path":"Observation.component.code","short":"Type of component observation (code / type)","definition":"Describes what was observed. Sometimes this is called the observation \"code\".","comment":"*All* code-value and component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.","requirements":"Knowing what kind of observation is being made is essential to understanding the observation.","min":1,"max":"1","base":{"path":"Observation.component.code","min":1,"max":"1"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":true,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationCode"}],"strength":"example","description":"Codes identifying names of simple observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-codes"},"mapping":[{"identity":"w5","map":"FiveWs.what[x]"},{"identity":"sct-concept","map":"< 363787002 |Observable entity| OR \r< 386053000 |Evaluation procedure|"},{"identity":"v2","map":"OBX-3"},{"identity":"rim","map":"code"}]},{"id":"Observation.component.value[x]","path":"Observation.component.value[x]","short":"Actual component result","definition":"The information determined as a result of making the observation, if the information has a simple value.","comment":"Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the [Notes section](http://hl7.org/fhir/R4/observation.html#notes) below.","requirements":"An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.","min":0,"max":"1","base":{"path":"Observation.component.value[x]","min":0,"max":"1"},"type":[{"code":"Quantity"},{"code":"CodeableConcept"},{"code":"string"},{"code":"boolean"},{"code":"integer"},{"code":"Range"},{"code":"Ratio"},{"code":"SampledData"},{"code":"time"},{"code":"dateTime"},{"code":"Period"}],"isModifier":false,"isSummary":true,"mapping":[{"identity":"sct-concept","map":"363714003 |Interprets| < 441742003 |Evaluation finding|"},{"identity":"v2","map":"OBX.2, OBX.5, OBX.6"},{"identity":"rim","map":"value"},{"identity":"sct-attr","map":"363714003 |Interprets|"}]},{"id":"Observation.component.dataAbsentReason","path":"Observation.component.dataAbsentReason","short":"Why the component result is missing","definition":"Provides a reason why the expected value in the element Observation.component.value[x] is missing.","comment":"\"Null\" or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be \"detected\", \"not detected\", \"inconclusive\", or \"test not done\". \n\nThe alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code \"error\" could be used when the measurement was not completed. Because of these options, use-case agreements are required to interpret general observations for exceptional values.","requirements":"For many results it is necessary to handle exceptional values in measurements.","min":0,"max":"1","base":{"path":"Observation.component.dataAbsentReason","min":0,"max":"1"},"type":[{"code":"CodeableConcept"}],"condition":["obs-6"],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationValueAbsentReason"}],"strength":"extensible","description":"Codes specifying why the result (`Observation.value[x]`) is missing.","valueSet":"http://hl7.org/fhir/ValueSet/data-absent-reason"},"mapping":[{"identity":"v2","map":"N/A"},{"identity":"rim","map":"value.nullFlavor"}]},{"id":"Observation.component.interpretation","path":"Observation.component.interpretation","short":"High, low, normal, etc.","definition":"A categorical assessment of an observation value. For example, high, low, normal.","comment":"Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.","requirements":"For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.","alias":["Abnormal Flag"],"min":0,"max":"*","base":{"path":"Observation.component.interpretation","min":0,"max":"*"},"type":[{"code":"CodeableConcept"}],"isModifier":false,"isSummary":false,"binding":{"extension":[{"url":"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName","valueString":"ObservationInterpretation"}],"strength":"extensible","description":"Codes identifying interpretations of observations.","valueSet":"http://hl7.org/fhir/ValueSet/observation-interpretation"},"mapping":[{"identity":"sct-concept","map":"< 260245000 |Findings values|"},{"identity":"v2","map":"OBX-8"},{"identity":"rim","map":"interpretationCode"},{"identity":"sct-attr","map":"363713009 |Has interpretation|"}]},{"id":"Observation.component.referenceRange","path":"Observation.component.referenceRange","short":"Provides guide for interpretation of component result","definition":"Guidance on how to interpret the value by comparison to a normal or recommended range.","comment":"Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.","requirements":"Knowing what values are considered \"normal\" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.","min":0,"max":"*","base":{"path":"Observation.component.referenceRange","min":0,"max":"*"},"contentReference":"#Observation.referenceRange","isModifier":false,"isSummary":false,"mapping":[{"identity":"v2","map":"OBX.7"},{"identity":"rim","map":"outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]"}]}]},"differential":{"element":[{"id":"Observation","path":"Observation","definition":"The US Core Smoking Status Observation Profile is based upon the core FHIR Observation Resource and created to meet the 2015 Edition Common Clinical Data Set 'Smoking status' requirements.","alias":["Obs"],"mustSupport":false,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Observation"}]},{"id":"Observation.status","path":"Observation.status","min":1,"max":"1","mustSupport":true,"binding":{"strength":"required","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-observation-smoking-status-status"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Observation.status"}]},{"id":"Observation.code","path":"Observation.code","short":"Smoking Status","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-smoking-status-observation-codes"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Observation.code"}]},{"id":"Observation.subject","path":"Observation.subject","min":1,"max":"1","type":[{"code":"Reference","targetProfile":["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]}],"mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Observation.subject"}]},{"id":"Observation.issued","path":"Observation.issued","min":1,"max":"1","mustSupport":true,"mapping":[{"identity":"argonaut-dq-dstu2","map":"Observation.issued"}]},{"id":"Observation.valueCodeableConcept","path":"Observation.valueCodeableConcept","short":"Coded Responses from Smoking Status Value Set","min":1,"max":"1","type":[{"code":"CodeableConcept"}],"mustSupport":true,"binding":{"strength":"extensible","description":"This value set indicates the current smoking status of a patient","valueSet":"http://hl7.org/fhir/us/core/ValueSet/us-core-observation-smokingstatus"},"mapping":[{"identity":"argonaut-dq-dstu2","map":"Observation.valueCodeableConcept"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-birthsex.json b/resources/uscore_v3.0.1/ValueSet-birthsex.json new file mode 100644 index 000000000..94e5c0910 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-birthsex.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"birthsex","text":{"status":"generated","div":"

    Birth Sex

    This value set includes codes from the following code systems:

    • Include these codes as defined in http://terminology.hl7.org/CodeSystem/v3-AdministrativeGender
      CodeDisplay
      FFemaleFemale
      MMaleMale
    • Include these codes as defined in http://terminology.hl7.org/CodeSystem/v3-NullFlavor
      CodeDisplay
      UNKUnknownDescription:A proper value is applicable, but not known.
      \n \n Usage Notes: This means the actual value is not known. If the only thing that is unknown is how to properly express the value in the necessary constraints (value set, datatype, etc.), then the OTH or UNC flavor should be used. No properties should be included for a datatype with this property unless:
      \n \n Those properties themselves directly translate to a semantic of "unknown". (E.g. a local code sent as a translation that conveys 'unknown')\n Those properties further qualify the nature of what is unknown. (E.g. specifying a use code of "H" and a URL prefix of "tel:" to convey that it is the home phone number that is unknown.)
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/birthsex","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113762.1.4.1021.24"}],"version":"3.0.1","name":"BirthSex","title":"Birth Sex","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"Codes for assigning sex at birth as specified by the [Office of the National Coordinator for Health IT (ONC)](https://www.healthit.gov/newsroom/about-onc)","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"http://terminology.hl7.org/CodeSystem/v3-AdministrativeGender","concept":[{"code":"F","display":"Female"},{"code":"M","display":"Male"}]},{"system":"http://terminology.hl7.org/CodeSystem/v3-NullFlavor","concept":[{"code":"UNK","display":"Unknown"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-detailed-ethnicity.json b/resources/uscore_v3.0.1/ValueSet-detailed-ethnicity.json new file mode 100644 index 000000000..f458d6801 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-detailed-ethnicity.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"detailed-ethnicity","text":{"status":"generated","div":"

    Detailed ethnicity

    The 41 CDC ethnicity codes that are grouped under one of the 2 OMB ethnicity category codes.

    \n

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/detailed-ethnicity","version":"3.0.1","name":"DetailedEthnicity","title":"Detailed ethnicity","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","description":"The 41 [CDC ethnicity codes](http://www.cdc.gov/phin/resources/vocabulary/index.html) that are grouped under one of the 2 OMB ethnicity category codes.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"urn:oid:2.16.840.1.113883.6.238","filter":[{"property":"concept","op":"is-a","value":"2133-7"}]}],"exclude":[{"system":"urn:oid:2.16.840.1.113883.6.238","concept":[{"code":"2135-2"},{"code":"2186-5"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-detailed-race.json b/resources/uscore_v3.0.1/ValueSet-detailed-race.json new file mode 100644 index 000000000..ceb0ee07b --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-detailed-race.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"detailed-race","text":{"status":"generated","div":"

    Detailed Race

    The 900+ CDC Race codes that are grouped under one of the 5 OMB race category codes.

    \n

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/detailed-race","version":"3.0.1","name":"DetailedRace","title":"Detailed Race","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","description":"The 900+ [CDC Race codes](http://www.cdc.gov/phin/resources/vocabulary/index.html) that are grouped under one of the 5 OMB race category codes.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"urn:oid:2.16.840.1.113883.6.238","filter":[{"property":"concept","op":"is-a","value":"1000-9"}]}],"exclude":[{"system":"urn:oid:2.16.840.1.113883.6.238","concept":[{"code":"1002-5"},{"code":"2028-9"},{"code":"2054-5"},{"code":"2076-8"},{"code":"2106-3"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-omb-ethnicity-category.json b/resources/uscore_v3.0.1/ValueSet-omb-ethnicity-category.json new file mode 100644 index 000000000..cbf1e232d --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-omb-ethnicity-category.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"omb-ethnicity-category","text":{"status":"generated","div":"

    OMB Ethnicity Categories

    The codes for the ethnicity categories - 'Hispanic or Latino' and 'Non Hispanic or Latino' - as defined by the OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997.

    \n

    This value set includes codes from the following code systems:

    • Include these codes as defined in urn:oid:2.16.840.1.113883.6.238
      CodeDisplay
      2135-2Hispanic or LatinoHispanic or Latino
      2186-5Non Hispanic or LatinoNote that this term remains in the table for completeness, even though within HL7, the notion of "not otherwise coded" term is deprecated.
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/omb-ethnicity-category","version":"3.0.1","name":"OmbEthnicityCategories","title":"OMB Ethnicity Categories","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","description":"The codes for the ethnicity categories - 'Hispanic or Latino' and 'Non Hispanic or Latino' - as defined by the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards).","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"urn:oid:2.16.840.1.113883.6.238","concept":[{"code":"2135-2","display":"Hispanic or Latino"},{"code":"2186-5","display":"Non Hispanic or Latino"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-omb-race-category.json b/resources/uscore_v3.0.1/ValueSet-omb-race-category.json new file mode 100644 index 000000000..9ab012362 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-omb-race-category.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"omb-race-category","text":{"status":"generated","div":"

    OMB Race Categories

    The codes for the concepts 'Unknown' and 'Asked but no answer' and the the codes for the five race categories - 'American Indian' or 'Alaska Native', 'Asian', 'Black or African American', 'Native Hawaiian or Other Pacific Islander', and 'White' - as defined by the OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997 .

    \n

    This value set includes codes from the following code systems:

    • Include these codes as defined in urn:oid:2.16.840.1.113883.6.238
      CodeDisplay
      1002-5American Indian or Alaska NativeAmerican Indian or Alaska Native
      2028-9AsianAsian
      2054-5Black or African AmericanBlack or African American
      2076-8Native Hawaiian or Other Pacific IslanderNative Hawaiian or Other Pacific Islander
      2106-3WhiteWhite
    • Include these codes as defined in http://terminology.hl7.org/CodeSystem/v3-NullFlavor
      CodeDisplay
      UNKUnknownDescription:A proper value is applicable, but not known.
      \n \n Usage Notes: This means the actual value is not known. If the only thing that is unknown is how to properly express the value in the necessary constraints (value set, datatype, etc.), then the OTH or UNC flavor should be used. No properties should be included for a datatype with this property unless:
      \n \n Those properties themselves directly translate to a semantic of "unknown". (E.g. a local code sent as a translation that conveys 'unknown')\n Those properties further qualify the nature of what is unknown. (E.g. specifying a use code of "H" and a URL prefix of "tel:" to convey that it is the home phone number that is unknown.)
      ASKUAsked but no answerInformation was sought but not found (e.g., patient was asked but didn't know)
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/omb-race-category","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113883.4.642.2.575"}],"version":"3.0.1","name":"OmbRaceCategories","title":"OMB Race Categories","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]},{"telecom":[{"system":"other","value":"http://wiki.siframework.org/Data+Access+Framework+Homepage"}]}],"description":"The codes for the concepts 'Unknown' and 'Asked but no answer' and the the codes for the five race categories - 'American Indian' or 'Alaska Native', 'Asian', 'Black or African American', 'Native Hawaiian or Other Pacific Islander', and 'White' - as defined by the [OMB Standards for Maintaining, Collecting, and Presenting Federal Data on Race and Ethnicity, Statistical Policy Directive No. 15, as revised, October 30, 1997](https://www.whitehouse.gov/omb/fedreg_1997standards) .","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"urn:oid:2.16.840.1.113883.6.238","concept":[{"code":"1002-5","display":"American Indian or Alaska Native"},{"code":"2028-9","display":"Asian"},{"code":"2054-5","display":"Black or African American"},{"code":"2076-8","display":"Native Hawaiian or Other Pacific Islander"},{"code":"2106-3","display":"White"}]},{"system":"http://terminology.hl7.org/CodeSystem/v3-NullFlavor","concept":[{"code":"UNK","display":"Unknown"},{"code":"ASKU","display":"Asked but no answer"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-simple-language.json b/resources/uscore_v3.0.1/ValueSet-simple-language.json new file mode 100644 index 000000000..4c186e320 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-simple-language.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"simple-language","text":{"status":"generated","div":"

    Language codes with language and optionally a region modifier

    This value set includes codes from BCP-47. This value set matches the ONC 2015 Edition LanguageCommunication data element value set within C-CDA to use a 2 character language code if one exists, and a 3 character code if a 2 character code does not exist. It points back to RFC 5646, however only the language codes are required, all other elements are optional.

    \n

    This value set includes codes from the following code systems:

    • Include codes from urn:ietf:bcp:47 where ext-lang doesn't exist, script doesn't exist, variant doesn't exist, extension doesn't exist and private-use doesn't exist
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/simple-language","version":"3.0.1","name":"LanguageCodesWithLanguageAndOptionallyARegionModifier","title":"Language codes with language and optionally a region modifier","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://hl7.org/fhir"}]}],"description":"This value set includes codes from [BCP-47](http://tools.ietf.org/html/bcp47). This value set matches the ONC 2015 Edition LanguageCommunication data element value set within C-CDA to use a 2 character language code if one exists, and a 3 character code if a 2 character code does not exist. It points back to [RFC 5646](https://tools.ietf.org/html/rfc5646), however only the language codes are required, all other elements are optional.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"urn:ietf:bcp:47","filter":[{"property":"ext-lang","op":"exists","value":"false"},{"property":"script","op":"exists","value":"false"},{"property":"variant","op":"exists","value":"false"},{"property":"extension","op":"exists","value":"false"},{"property":"private-use","op":"exists","value":"false"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-allergy-substance.json b/resources/uscore_v3.0.1/ValueSet-us-core-allergy-substance.json new file mode 100644 index 000000000..10f7a8297 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-allergy-substance.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-allergy-substance","text":{"status":"generated","div":"

    US Core Common substances for allergy and intolerance documentation including refutations

    Documentation of substances suspected of (or not suspected of) causing an allergy or intolerance reaction in an individual. Inclusion Criteria: specific or general substances to which a patient may be exposed and which may be suspected of causing an adverse reaction; assertions refuting these suspicions. This includes: 1. Common dietary substances for allergy and intolerance documentation (SNOMEDCT) 2. Common drug classes for allergy and intolerance documentation (SNOMEDCT) 3. Common drug substances for allergy and intolerance documentation (RXNORM) 4. Common environmental substances for allergy and intolerance documentation (SNOMEDCT) 5. Common refutations and null values for substance causes for allergy and intolerance documentation (SNOMEDCT) Exclusion Criteria: actual conditions caused by exposure (reactions, allergies)

    \n

    Copyright Statement: This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement

    This value set includes codes from the following code systems:

    • Include these codes as defined in http://www.nlm.nih.gov/research/umls/rxnorm
      CodeDisplay
      1002293formoterol / Mometasone
      1007388Lactase / rennet
      1008298Acetaminophen / Caffeine / Chlorpheniramine / Hydrocodone / Phenylephrine
      1008519guaiacolsulfonate / Hydrocodone
      1009148Ampicillin / Sulbactam
      10109Streptomycin
      10154Succinylcholine
      10156Sucralfate
      10169Sulfacetamide
      10171Sulfadiazine
      10180Sulfamethoxazole
      10207Sulfisoxazole
      10223Sulfur
      10237Sulindac
      10324Tamoxifen
      10355Temazepam
      10368Terbutaline
      1037042dabigatran etexilate
      10379Testosterone
      10395Tetracycline
      103990Carbidopa / Levodopa
      1040028lurasidone
      10438Theophylline
      10472Thimerosal
      10493Thiopental
      10502Thioridazine
      10510Thiothixene
      10582levothyroxine
      10594Ticlopidine
      10600Timolol
      10627Tobramycin
      10636Tolmetin
      10689Tramadol
      10737Trazodone
      10759Triamcinolone
      107602Epinephrine / Lidocaine
      10763Triamterene
      10767Triazolam
      10800Trifluoperazine
      108118Mometasone
      10829Trimethoprim
      10831Sulfamethoxazole / Trimethoprim
      11124Vancomycin
      1114195rivaroxaban
      1116632Ticagrelor
      11170Verapamil
      11248Vitamin B 12
      11253Vitamin D
      11256Vitamin E
      11289Warfarin
      113588Erythromycin / Sulfisoxazole
      11416Zinc
      11423Zinc Oxide
      114477Levetiracetam
      114970zafirlukast
      114979rabeprazole
      1151Ascorbic Acid
      115264Ibandronate
      115552trovafloxacin
      115698ziprasidone
      1191Aspirin
      119565tolterodine
      1202Atenolol
      121191rituximab
      1223Atropine
      1256Azathioprine
      1272Aztreonam
      1291Bacitracin
      1292Baclofen
      1310171Gadolinium
      1311085xanthine
      1311524Aspartame
      1311629nickel
      1314891Latex
      1331Barium Sulfate
      134615brimonidine
      1347Beclomethasone
      135447donepezil
      135775zolmitriptan
      1359Belladonna Alkaloids
      1362879Sulfur Dioxide
      1363043ethyl ether
      136411sildenafil
      1364430apixaban
      138099gemifloxacin
      139462moxifloxacin
      1399Benzocaine
      140587celecoxib
      1406benzoin resin
      141626colesevelam
      1418Benzoyl Peroxide
      1424Benztropine
      1514Betamethasone
      153970Hyoscyamine
      1596450Gentamicin
      15996Mirtazapine
      161Acetaminophen
      16681Acarbose
      167Acetazolamide
      17128lansoprazole
      1727875Tetanus immune globulin
      17300alfuzosin
      17767Amlodipine
      1827Buspirone
      183379rivastigmine
      1841Butorphanol
      18631Azithromycin
      187832pregabalin
      1886Caffeine
      18867benazepril
      1895Calcium
      1897Calcium Carbonate
      18993benzonatate
      190376linezolid
      191831infliximab
      19478bismuth subsalicylate
      19552cefprozil
      19711Amoxicillin / Clavulanate
      19831Budesonide
      1998Captopril
      2002Carbamazepine
      20352carvedilol
      20481cefepime
      20489cefpodoxime
      20610Cetirizine
      2101Carisoprodol
      21107cilostazol
      21183Citric Acid
      21212Clarithromycin
      214130Acetaminophen / butalbital / Caffeine
      214153Acetaminophen / dichloralphenazone / isometheptene
      214159Aspirin / butalbital / Caffeine
      214160Aspirin / butalbital / Caffeine / Codeine
      214181Acetaminophen / Diphenhydramine
      214182Acetaminophen / Hydrocodone
      214183Acetaminophen / Oxycodone
      214199Albuterol / Ipratropium
      214223Amlodipine / benazepril
      214250Aspirin / Caffeine
      214256Aspirin / Oxycodone
      214257Aspirin / Pentazocine
      214317Bisoprolol / Hydrochlorothiazide
      214336Caffeine / Ergotamine
      214354candesartan
      214364carbinoxamine / Pseudoephedrine
      214392Chlorpheniramine / Hydrocodone
      214442Codeine / Guaifenesin
      214445Codeine / Pseudoephedrine
      214488Dextromethorphan / Guaifenesin
      214502Diclofenac / Misoprostol
      214555Etanercept
      214558Ethinyl Estradiol / Levonorgestrel
      214565fexofenadine / Pseudoephedrine
      214599Guaifenesin / Pseudoephedrine
      214614homatropine / Hydrocodone
      214617Hydrochlorothiazide / irbesartan
      214618Hydrochlorothiazide / Lisinopril
      214619Hydrochlorothiazide / Losartan
      214626Hydrochlorothiazide / valsartan
      214627Hydrocodone / Ibuprofen
      214631Hydrocodone / Pseudoephedrine
      214682Loratadine / Pseudoephedrine
      214721Naloxone / Pentazocine
      214807Pseudoephedrine / Triprolidine
      2176Cefaclor
      217627Hydrocortisone / Neomycin / Polymyxin B
      2177Cefadroxil
      2180Cefazolin
      2189Cefoxitin
      2191Ceftazidime
      2193Ceftriaxone
      219314Polymyxin B / Trimethoprim
      219315Iron polysaccharide
      2194Cefuroxime
      21949cyclobenzaprine
      221147POLYETHYLENE GLYCOL 3350
      22299Daptomycin
      2231Cephalexin
      226716Aspirin / Dipyridamole
      228476gatifloxacin
      228790Dutasteride
      232158rofecoxib
      233698dronedarone
      2348Chloramphenicol
      2356Chlordiazepoxide
      2358Chlorhexidine
      236778Trospium
      237159Levalbuterol
      2393Chloroquine
      2400Chlorpheniramine
      2403Chlorpromazine
      2409Chlorthalidone
      2410Chlorzoxazone
      2418Cholecalciferol
      2447Cholestyramine Resin
      24605Etodolac
      24947ferrous sulfate
      25025Finasteride
      25033Cefixime
      25037cefdinir
      25120flunisolide
      25255formoterol
      253157Bee pollen
      2541Cimetidine
      25480gabapentin
      2551Ciprofloxacin
      2556Citalopram
      25789glimepiride
      2582Clindamycin
      258337Hydrochlorothiazide / Triamterene
      2598Clonazepam
      2599Clonidine
      260101Oseltamivir
      26225Ondansetron
      2623Clotrimazole
      2670Codeine
      2683Colchicine
      2685Colestipol
      27169leflunomide
      274783Insulin Glargine
      274786telithromycin
      27723iodinated glycerol
      278567valdecoxib
      28031Itraconazole
      281Acyclovir
      283742Esomeprazole
      283809travoprost
      28439lamotrigine
      284635fluticasone / salmeterol
      2878Cortisone
      28889Loratadine
      28981loracarbef
      29046Lisinopril
      29542Mercury, Ammoniated
      29561meropenem
      296Adenosine
      3008Cyclosporine
      301542rosuvastatin
      306674vardenafil
      3108Dapsone
      3143prasterone
      31448nabumetone
      31555nebivolol
      31565nefazodone
      31738nickel sulfate
      318340Aloe vera preparation
      321064olmesartan
      321988Escitalopram
      322167Solifenacin
      3247Desipramine
      325642ertapenem
      32592oxaliplatin
      32613oxaprozin
      32624oxcarbazepine
      3264Dexamethasone
      32675oxybutynin
      327361adalimumab
      3289Dextromethorphan
      32937Paroxetine
      32968clopidogrel
      3322Diazepam
      33408phenyltoloxamine
      3355Diclofenac
      3356Dicloxacillin
      3361Dicyclomine
      33738pioglitazone
      3393Diflunisal
      3407Digoxin
      341248ezetimibe
      3418Dihydroergotamine
      3423Hydromorphone
      3443Diltiazem
      3444Dimenhydrinate
      3498Diphenhydramine
      35208quinapril
      3521Dipyridamole
      352362Acetaminophen / Tramadol
      35296Ramipril
      35382resorcinol
      35636Risperidone
      358263tadalafil
      35827Ketorolac
      35829ranolazine
      36108Salsalate
      36117salmeterol
      3616Dobutamine
      3638Doxepin
      3640Doxycycline
      36437Sertraline
      3648Droperidol
      36567Simvastatin
      37418Sumatriptan
      37617tazobactam
      37798Terazosin
      37801terbinafine
      3827Enalapril
      3829Enalaprilat
      38400atomoxetine
      38404topiramate
      38413torsemide
      38574trichloroacetaldehyde
      38685trimethobenzamide
      389132Budesonide / formoterol
      3966Ephedrine
      39786venlafaxine
      3992Epinephrine
      39993zolpidem
      39998zonisamide
      40048Carboplatin
      400674dexbrompheniramine / Pseudoephedrine
      4025Ergotamine
      40254Valproate
      4053Erythromycin
      40575zileuton
      40790pantoprazole
      4083Estradiol
      4099Estrogens, Conjugated (USP)
      41126fluticasone
      41127fluvastatin
      4124Ethinyl Estradiol
      41397Lactase
      41493meloxicam
      42330Terfenadine
      42331Misoprostol
      42347Bupropion
      42351Lithium Carbonate
      42372Mupirocin
      42463Pravastatin
      4278Famotidine
      4316Felodipine
      4337Fentanyl
      435Albuterol
      43611latanoprost
      4419Fish Oils
      4441Flecainide
      4450Fluconazole
      448Ethanol
      4492Fluorouracil
      4493Fluoxetine
      4496Fluphenazine
      4500Flurandrenolide
      4530Formaldehyde
      4603Furosemide
      46041Alendronate
      461016Eszopiclone
      4637Galantamine
      465397Ciprofloxacin / Dexamethasone
      466522Diphenhydramine / Zinc Acetate
      466541Neomycin / Polymyxin B
      466549Aspirin / Caffeine / Orphenadrine
      466553penicillin G benzathine / penicillin G procaine
      466566Acetaminophen / Dextromethorphan / Diphenhydramine / Pseudoephedrine
      466584Acetaminophen / Aspirin / Caffeine
      4719Gemfibrozil
      475968liraglutide
      4815Glyburide
      48203Clavulanate
      4821Glipizide
      48274Acetaminophen / Propoxyphene
      484139Chlorhexidine / Isopropyl Alcohol
      484211ezetimibe / Simvastatin
      4850Glucose
      4917Nitroglycerin
      49276Doxazosin
      50166Fosinopril
      5021Griseofulvin
      5032Guaifenesin
      5093Haloperidol
      51272quetiapine
      519Allopurinol
      52175Losartan
      5224heparin
      52582mesalamine
      5470Hydralazine
      5487Hydrochlorothiazide
      5489Hydrocodone
      5492Hydrocortisone
      5499Hydrogen Peroxide
      5521Hydroxychloroquine
      5553Hydroxyzine
      5640Ibuprofen
      5691Imipramine
      56946Paclitaxel
      57258tizanidine
      5764Indapamide
      5781Indomethacin
      588250milnacipran
      59078metaxalone
      591622varenicline
      5933Iodine
      593411sitagliptin
      594040Atropine / Diphenoxylate
      5956Iohexol
      596Alprazolam
      596723cerivastatin
      597142brimonidine / Timolol
      5992Iron-Dextran Complex
      60207dorzolamide
      6038isoniazid
      60548exenatide
      6057Isosorbide
      6058Isosorbide Dinitrate
      611854Chlordiazepoxide / clidinium
      6130Ketamine
      6135Ketoconazole
      61381olanzapine
      6142Ketoprofen
      6185Labetalol
      620Amantadine
      6218Lactulose
      6227Lanolin
      6387Lidocaine
      6398Lincomycin
      6448Lithium
      645555Bacitracin / Polymyxin B
      6468Loperamide
      6470Lorazepam
      6472Lovastatin
      6574Magnesium
      6585Magnesium Sulfate
      662263dorzolamide / Timolol
      6676Meclizine
      6691Medroxyprogesterone
      67108Enoxaparin
      6711Melatonin
      6719Memantine
      6750Menthol
      6754Meperidine
      6809Metformin
      6813Methadone
      6835Methimazole
      6845Methocarbamol
      6851Methotrexate
      6876Methyldopa
      689Aminophylline
      689467Oxytetracycline / Polymyxin B
      689518Aspirin / Caffeine / Propoxyphene
      689556Acetaminophen / Aspirin / Phenylpropanolamine
      689558Acetaminophen / Brompheniramine / Pseudoephedrine
      689561Acetaminophen / butalbital / Caffeine / Codeine
      689582Acetaminophen / Chlorpheniramine / Dextromethorphan / Pseudoephedrine
      689606Atropine / Hyoscyamine / Phenobarbital / Scopolamine
      689623Bacitracin / Hydrocortisone / Neomycin / Polymyxin B
      690077Benzalkonium / Lidocaine
      6901Methylphenidate
      6902Methylprednisolone
      690693Diphenhydramine / Phenylephrine
      690808Brompheniramine / Dextromethorphan / Pseudoephedrine
      69120tiotropium
      6915Metoclopramide
      6916Metolazone
      6918Metoprolol
      6922Metronidazole
      692572Bacitracin / Neomycin / Polymyxin B
      692794Gramicidin / Neomycin / Polymyxin B
      6932Miconazole
      6960Midazolam
      69749valsartan
      6980Minocycline
      6984Minoxidil
      703Amiodarone
      704Amitriptyline
      7052Morphine
      705258Acetaminophen / Dextromethorphan / Doxylamine
      7213Ipratropium
      72143Raloxifene
      72236fosphenytoin
      723Amoxicillin
      72302ropinirole
      7233Nafcillin
      7238Nalbuphine
      7243Naltrexone
      725Amphetamine
      7258Naproxen
      72625duloxetine
      7299Neomycin
      73056Risedronate
      733Ampicillin
      73494telmisartan
      73645valacyclovir
      7393Niacin
      7407Nicotine
      74169Piperacillin / tazobactam
      7417Nifedipine
      7454Nitrofurantoin
      746741Pramipexole
      7486Nitrous Oxide
      7517Norfloxacin
      7531Nortriptyline
      7597Nystatin
      7623Ofloxacin
      7646Omeprazole
      7676Opium
      7715Orphenadrine
      77492tamsulosin
      7804Oxycodone
      7821Oxytetracycline
      787390tapentadol
      7975Penicillamine
      797541Isopropyl Alcohol
      7980Penicillin G
      7984Penicillin V
      7994Pentamidine
      8001Pentazocine
      8120Phenazopyridine
      8134Phenobarbital
      815166Dextromethorphan / Doxylamine
      8163Phenylephrine
      816346dexlansoprazole
      8175Phenylpropanolamine
      817579Acetaminophen / Codeine
      817958Aspirin / Calcium Carbonate
      8183Phenytoin
      82122Levofloxacin
      822929Amphetamine aspartate / Amphetamine Sulfate / Dextroamphetamine saccharate / Dextroamphetamine Sulfate
      83367atorvastatin
      8356Piroxicam
      83818irbesartan
      84108rosiglitazone
      8536Polymyxin B
      857974saxagliptin
      8588Potassium
      8591Potassium Chloride
      8610Povidone
      8611Povidone-Iodine
      861634pitavastatin
      8629Prazosin
      8638prednisolone
      8640Prednisone
      8687Primaquine
      8691Primidone
      8698Probenecid
      8700Procainamide
      8701Procaine
      8703Fenofibrate
      8704Prochlorperazine
      8727Progesterone
      8745Promethazine
      8754Propafenone
      87636fexofenadine
      8782Propofol
      8785Propoxyphene
      8787Propranolol
      8794Propylthiouracil
      88014rizatriptan
      88249montelukast
      883815Dexamethasone / Tobramycin
      8896Pseudoephedrine
      89013aripiprazole
      8928Psyllium
      8948Purified Protein Derivative of Tuberculin
      90176Iron
      9068Quinidine
      9071Quinine
      91263Aloe Extract
      9143Ranitidine
      9384Rifampin
      9524Sulfasalazine
      9601Scopolamine
      9778Silicones
      9793silver sulfadiazine
      9947Sotalol
      9997Spironolactone
    • Include these codes as defined in http://snomed.info/sct
      CodeDisplay
      102259006Citrus fruit (substance)
      102261002Strawberry (substance)
      102262009Chocolate (substance)
      102263004Eggs (edible) (substance)
      102264005Cheese (substance)
      111088007Latex (substance)
      111151007Anabolic steroid (substance)
      11526002Aspartame (substance)
      116274004Artificial sweetener (substance)
      116566001Steroid (substance)
      13577000Nut (substance)
      14443002Substance with aminoglycoside structure and antibacterial mechanism of action (substance)
      226723006Buckwheat - cereal (substance)
      226734009Wheatgerm (substance)
      226760005Dairy foods (substance)
      226915003Red meat (substance)
      226916002Beef (substance)
      226934003Pork (substance)
      226955001Chicken - meat (substance)
      226967004Turkey - meat (substance)
      227144008Tuna fish (substance)
      227151004Prawns (substance)
      227208008Abalone canned in brine (substance)
      227219006Aubergine (substance)
      227313005Pulse vegetables (substance)
      227388008Cinnamon (substance)
      227400003Ginger (substance)
      227421003Cranberries (substance)
      227444000Raspberries (substance)
      227493005Cashew nut (substance)
      227512001Pistachio nut (substance)
      227598003Honey (substance)
      228102000Sodium nitrate (substance)
      255632006Anticonvulsant (substance)
      255637000Salicylate (substance)
      255641001Caffeine (substance)
      256259004Pollen (substance)
      256277009Grass pollen (substance)
      256306003Orange - fruit (substance)
      256307007Banana (substance)
      256313003Pineapple (substance)
      256315005Grapefruit (substance)
      256317002Grapes (substance)
      256319004Carrot (substance)
      256326004Celery (substance)
      256329006Spinach (substance)
      256350002Almond (substance)
      256351003Brazil nut (substance)
      256352005Walnut - nut (substance)
      256353000Hazelnut (substance)
      256354006Bean (substance)
      256417003Horse dander (substance)
      256440004Wasp venom (substance)
      259858000Varicella-zoster virus antibody (substance)
      260152009Cat dander (substance)
      260154005Dog dander (substance)
      260167008Sesame seed (substance)
      260176001Kiwi fruit (substance)
      260177005Melon (substance)
      260179008Mango fruit (substance)
      260184002Peas (substance)
      260189007Pecan nut (substance)
      260205009Sunflower seed (substance)
      264287008Animal dander (substance)
      264337003Seed (substance)
      28230009Poultry (substance)
      288328004Bee venom (substance)
      28942008Coconut oil (substance)
      29263009Coffee (substance)
      304275008Corticosteroid and corticosteroid derivative (substance)
      33008008Dust (substance)
      350327004Diphtheria + tetanus vaccine (product)
      35748005Wine (substance)
      360201004Nitrofuran derivative (substance)
      3692009Sodium sulfite (substance)
      372480009Substance with macrolide structure and antibacterial mechanism of action (substance)
      372664007Benzodiazepine (substance)
      372665008Non-steroidal anti-inflammatory agent (substance)
      372711004Sulfonylurea (substance)
      372722000Substance with quinolone structure and antibacterial mechanism of action (substance)
      372733002Substance with angiotensin-converting enzyme inhibitor mechanism of action (substance)
      372747003Thiazide diuretic (substance)
      372783007Antiparkinsonian agent (substance)
      372798009Barbiturate (substance)
      372806008Substance with histamine receptor antagonist mechanism of action (substance)
      372889003First generation cephalosporin (substance)
      372912004Substance with 3-hydroxy-3-methylglutaryl-coenzyme A reductase inhibitor mechanism of action (substance)
      372913009Substance with angiotensin II receptor antagonist mechanism of action (substance)
      373206009Substance with tetracycline structure and antibacterial mechanism of action (substance)
      373253007Tricyclic antidepressant (substance)
      373254001Substance with beta adrenergic receptor antagonist mechanism of action (substance)
      373262009Substance with cephalosporin structure and antibacterial mechanism of action (substance)
      373270004Substance with penicillin structure and antibacterial mechanism of action (substance)
      373297006Substance with beta-lactam structure and antibacterial mechanism of action (substance)
      373304005Substance with calcium channel blocker mechanism of action (substance)
      373531009Gelatin (substance)
      385420005Contrast media (substance)
      386127005Formula milk (substance)
      386962001Plasma protein fraction (substance)
      387050005Substance with prostaglandin-endoperoxide synthase isoform 2 inhibitor mechanism of action (substance)
      387406002Sulfonamide (substance)
      391737006Almond oil (substance)
      391739009Aloe (substance)
      396345004Carbapenem (substance)
      396420001Anthrax vaccine (substance)
      396425006Influenza virus vaccine (substance)
      396433007Pertussis vaccine (substance)
      396439006Smallpox vaccine (substance)
      396441007Typhoid vaccine (substance)
      396442000Varicella virus vaccine (substance)
      398730001Pneumococcal vaccine (substance)
      400872007Hydrocolloid (substance)
      404642006Substance with opioid receptor agonist mechanism of action (substance)
      406748003Carbamate (substance)
      409137002No known drug allergy (situation)
      412061001Blueberries (substance)
      412062008Cantaloupe (substance)
      412066006Pepper (substance)
      412068007Rye (substance)
      412071004Wheat (substance)
      412138001Horse serum protein (substance)
      412357001Corn (substance)
      412373007Diphtheria + pertussis + tetanus + Haemophilus influenzae type b vaccine (product)
      412375000Tetanus vaccine (substance)
      412533000Wheat bran (substance)
      412534006Yeast (substance)
      412583005Bee pollen (substance)
      41598000Estrogen (substance)
      417889008Arachis oil (substance)
      418000008Methadone analog (substance)
      418504009Oats (substance)
      418920007Adhesive agent (substance)
      419420009Watermelon (substance)
      419933005Glucocorticoid (substance)
      421245007Diphtheria + pertussis + tetanus vaccine (product)
      424369009Product containing beta-galactosidase (medicinal product)
      426722004Iodinated contrast media (substance)
      428607008No known environmental allergy (situation)
      429625007No known food allergy (situation)
      43735007Sulfur (substance)
      43921001Nickel compound (substance)
      44027008Seafood (substance)
      442381000124103Blue food coloring (substance)
      442571000124108Tree nut (substance)
      442771000124102Pepperoni (substance)
      44588005Iodine (substance)
      446273004Red food coloring (substance)
      446274005Yellow food coloring (substance)
      47703008Lactose (substance)
      51386004Food preservative (substance)
      51905005Mustard (substance)
      53041004Alcohol (substance)
      61789006Dye (substance)
      63045006Berry (substance)
      67324005Rice (substance)
      67866001Insulin (substance)
      70813002Milk (substance)
      710179004Lupine seed (substance)
      716184000No known latex allergy (situation)
      716186003No known allergy (situation)
      720687003Dust mite protein (substance)
      72511004Fruit (substance)
      726730005Yam (substance)
      734881000Tomato (substance)
      735006003Squid (substance)
      735009005Salmon (substance)
      735029006Shellfish (substance)
      735030001Garlic (substance)
      735043001Mackerel (substance)
      735045008Mushroom (substance)
      735047000Onion (substance)
      735049002Peach (substance)
      735050002Pear (substance)
      735051003Plum (substance)
      735053000Potato (substance)
      735123009Broccoli (substance)
      735124003Barley (substance)
      735211005Coconut (substance)
      735212003Papaya (substance)
      735213008Cucumber (substance)
      735214002Apricot (substance)
      735215001Apple (substance)
      735248001Cherry (substance)
      735249009Avocado (substance)
      735340006Lemon (substance)
      735959004Marine mollusk (substance)
      735971005Fish (substance)
      735977009Marine crustacean (substance)
      736027000Scallop (substance)
      736030007Clam (substance)
      736031006Oyster (substance)
      736159005Crab (substance)
      736162008Lobster (substance)
      74801000Sugar (substance)
      75665004Monosodium glutamate (substance)
      762952008Peanut (substance)
      7791007Soy protein (substance)
      80259003Food flavoring agent (substance)
      84489001Mold (organism)
      89119000Nitrate salt (substance)
      89707004Sesame oil (substance)
      89811004Gluten (substance)
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-allergy-substance","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113762.1.4.1186.8"}],"version":"3.0.1","name":"USCoreAllergySubstance","title":"US Core Common substances for allergy and intolerance documentation including refutations","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"description":"Documentation of substances suspected of (or not suspected of) causing an allergy or intolerance reaction in an individual. **Inclusion Criteria:** specific or general substances to which a patient may be exposed and which may be suspected of causing an adverse reaction; assertions refuting these suspicions. This includes: 1. Common dietary substances for allergy and intolerance documentation (SNOMEDCT) 2. Common drug classes for allergy and intolerance documentation (SNOMEDCT) 3. Common drug substances for allergy and intolerance documentation (RXNORM) 4. Common environmental substances for allergy and intolerance documentation (SNOMEDCT) 5. Common refutations and null values for substance causes for allergy and intolerance documentation (SNOMEDCT) **Exclusion Criteria:** actual conditions caused by exposure (reactions, allergies)","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement","compose":{"include":[{"system":"http://www.nlm.nih.gov/research/umls/rxnorm","concept":[{"code":"1002293","display":"formoterol / Mometasone"},{"code":"1007388","display":"Lactase / rennet"},{"code":"1008298","display":"Acetaminophen / Caffeine / Chlorpheniramine / Hydrocodone / Phenylephrine"},{"code":"1008519","display":"guaiacolsulfonate / Hydrocodone"},{"code":"1009148","display":"Ampicillin / Sulbactam"},{"code":"10109","display":"Streptomycin"},{"code":"10154","display":"Succinylcholine"},{"code":"10156","display":"Sucralfate"},{"code":"10169","display":"Sulfacetamide"},{"code":"10171","display":"Sulfadiazine"},{"code":"10180","display":"Sulfamethoxazole"},{"code":"10207","display":"Sulfisoxazole"},{"code":"10223","display":"Sulfur"},{"code":"10237","display":"Sulindac"},{"code":"10324","display":"Tamoxifen"},{"code":"10355","display":"Temazepam"},{"code":"10368","display":"Terbutaline"},{"code":"1037042","display":"dabigatran etexilate"},{"code":"10379","display":"Testosterone"},{"code":"10395","display":"Tetracycline"},{"code":"103990","display":"Carbidopa / Levodopa"},{"code":"1040028","display":"lurasidone"},{"code":"10438","display":"Theophylline"},{"code":"10472","display":"Thimerosal"},{"code":"10493","display":"Thiopental"},{"code":"10502","display":"Thioridazine"},{"code":"10510","display":"Thiothixene"},{"code":"10582","display":"levothyroxine"},{"code":"10594","display":"Ticlopidine"},{"code":"10600","display":"Timolol"},{"code":"10627","display":"Tobramycin"},{"code":"10636","display":"Tolmetin"},{"code":"10689","display":"Tramadol"},{"code":"10737","display":"Trazodone"},{"code":"10759","display":"Triamcinolone"},{"code":"107602","display":"Epinephrine / Lidocaine"},{"code":"10763","display":"Triamterene"},{"code":"10767","display":"Triazolam"},{"code":"10800","display":"Trifluoperazine"},{"code":"108118","display":"Mometasone"},{"code":"10829","display":"Trimethoprim"},{"code":"10831","display":"Sulfamethoxazole / Trimethoprim"},{"code":"11124","display":"Vancomycin"},{"code":"1114195","display":"rivaroxaban"},{"code":"1116632","display":"Ticagrelor"},{"code":"11170","display":"Verapamil"},{"code":"11248","display":"Vitamin B 12"},{"code":"11253","display":"Vitamin D"},{"code":"11256","display":"Vitamin E"},{"code":"11289","display":"Warfarin"},{"code":"113588","display":"Erythromycin / Sulfisoxazole"},{"code":"11416","display":"Zinc"},{"code":"11423","display":"Zinc Oxide"},{"code":"114477","display":"Levetiracetam"},{"code":"114970","display":"zafirlukast"},{"code":"114979","display":"rabeprazole"},{"code":"1151","display":"Ascorbic Acid"},{"code":"115264","display":"Ibandronate"},{"code":"115552","display":"trovafloxacin"},{"code":"115698","display":"ziprasidone"},{"code":"1191","display":"Aspirin"},{"code":"119565","display":"tolterodine"},{"code":"1202","display":"Atenolol"},{"code":"121191","display":"rituximab"},{"code":"1223","display":"Atropine"},{"code":"1256","display":"Azathioprine"},{"code":"1272","display":"Aztreonam"},{"code":"1291","display":"Bacitracin"},{"code":"1292","display":"Baclofen"},{"code":"1310171","display":"Gadolinium"},{"code":"1311085","display":"xanthine"},{"code":"1311524","display":"Aspartame"},{"code":"1311629","display":"nickel"},{"code":"1314891","display":"Latex"},{"code":"1331","display":"Barium Sulfate"},{"code":"134615","display":"brimonidine"},{"code":"1347","display":"Beclomethasone"},{"code":"135447","display":"donepezil"},{"code":"135775","display":"zolmitriptan"},{"code":"1359","display":"Belladonna Alkaloids"},{"code":"1362879","display":"Sulfur Dioxide"},{"code":"1363043","display":"ethyl ether"},{"code":"136411","display":"sildenafil"},{"code":"1364430","display":"apixaban"},{"code":"138099","display":"gemifloxacin"},{"code":"139462","display":"moxifloxacin"},{"code":"1399","display":"Benzocaine"},{"code":"140587","display":"celecoxib"},{"code":"1406","display":"benzoin resin"},{"code":"141626","display":"colesevelam"},{"code":"1418","display":"Benzoyl Peroxide"},{"code":"1424","display":"Benztropine"},{"code":"1514","display":"Betamethasone"},{"code":"153970","display":"Hyoscyamine"},{"code":"1596450","display":"Gentamicin"},{"code":"15996","display":"Mirtazapine"},{"code":"161","display":"Acetaminophen"},{"code":"16681","display":"Acarbose"},{"code":"167","display":"Acetazolamide"},{"code":"17128","display":"lansoprazole"},{"code":"1727875","display":"Tetanus immune globulin"},{"code":"17300","display":"alfuzosin"},{"code":"17767","display":"Amlodipine"},{"code":"1827","display":"Buspirone"},{"code":"183379","display":"rivastigmine"},{"code":"1841","display":"Butorphanol"},{"code":"18631","display":"Azithromycin"},{"code":"187832","display":"pregabalin"},{"code":"1886","display":"Caffeine"},{"code":"18867","display":"benazepril"},{"code":"1895","display":"Calcium"},{"code":"1897","display":"Calcium Carbonate"},{"code":"18993","display":"benzonatate"},{"code":"190376","display":"linezolid"},{"code":"191831","display":"infliximab"},{"code":"19478","display":"bismuth subsalicylate"},{"code":"19552","display":"cefprozil"},{"code":"19711","display":"Amoxicillin / Clavulanate"},{"code":"19831","display":"Budesonide"},{"code":"1998","display":"Captopril"},{"code":"2002","display":"Carbamazepine"},{"code":"20352","display":"carvedilol"},{"code":"20481","display":"cefepime"},{"code":"20489","display":"cefpodoxime"},{"code":"20610","display":"Cetirizine"},{"code":"2101","display":"Carisoprodol"},{"code":"21107","display":"cilostazol"},{"code":"21183","display":"Citric Acid"},{"code":"21212","display":"Clarithromycin"},{"code":"214130","display":"Acetaminophen / butalbital / Caffeine"},{"code":"214153","display":"Acetaminophen / dichloralphenazone / isometheptene"},{"code":"214159","display":"Aspirin / butalbital / Caffeine"},{"code":"214160","display":"Aspirin / butalbital / Caffeine / Codeine"},{"code":"214181","display":"Acetaminophen / Diphenhydramine"},{"code":"214182","display":"Acetaminophen / Hydrocodone"},{"code":"214183","display":"Acetaminophen / Oxycodone"},{"code":"214199","display":"Albuterol / Ipratropium"},{"code":"214223","display":"Amlodipine / benazepril"},{"code":"214250","display":"Aspirin / Caffeine"},{"code":"214256","display":"Aspirin / Oxycodone"},{"code":"214257","display":"Aspirin / Pentazocine"},{"code":"214317","display":"Bisoprolol / Hydrochlorothiazide"},{"code":"214336","display":"Caffeine / Ergotamine"},{"code":"214354","display":"candesartan"},{"code":"214364","display":"carbinoxamine / Pseudoephedrine"},{"code":"214392","display":"Chlorpheniramine / Hydrocodone"},{"code":"214442","display":"Codeine / Guaifenesin"},{"code":"214445","display":"Codeine / Pseudoephedrine"},{"code":"214488","display":"Dextromethorphan / Guaifenesin"},{"code":"214502","display":"Diclofenac / Misoprostol"},{"code":"214555","display":"Etanercept"},{"code":"214558","display":"Ethinyl Estradiol / Levonorgestrel"},{"code":"214565","display":"fexofenadine / Pseudoephedrine"},{"code":"214599","display":"Guaifenesin / Pseudoephedrine"},{"code":"214614","display":"homatropine / Hydrocodone"},{"code":"214617","display":"Hydrochlorothiazide / irbesartan"},{"code":"214618","display":"Hydrochlorothiazide / Lisinopril"},{"code":"214619","display":"Hydrochlorothiazide / Losartan"},{"code":"214626","display":"Hydrochlorothiazide / valsartan"},{"code":"214627","display":"Hydrocodone / Ibuprofen"},{"code":"214631","display":"Hydrocodone / Pseudoephedrine"},{"code":"214682","display":"Loratadine / Pseudoephedrine"},{"code":"214721","display":"Naloxone / Pentazocine"},{"code":"214807","display":"Pseudoephedrine / Triprolidine"},{"code":"2176","display":"Cefaclor"},{"code":"217627","display":"Hydrocortisone / Neomycin / Polymyxin B"},{"code":"2177","display":"Cefadroxil"},{"code":"2180","display":"Cefazolin"},{"code":"2189","display":"Cefoxitin"},{"code":"2191","display":"Ceftazidime"},{"code":"2193","display":"Ceftriaxone"},{"code":"219314","display":"Polymyxin B / Trimethoprim"},{"code":"219315","display":"Iron polysaccharide"},{"code":"2194","display":"Cefuroxime"},{"code":"21949","display":"cyclobenzaprine"},{"code":"221147","display":"POLYETHYLENE GLYCOL 3350"},{"code":"22299","display":"Daptomycin"},{"code":"2231","display":"Cephalexin"},{"code":"226716","display":"Aspirin / Dipyridamole"},{"code":"228476","display":"gatifloxacin"},{"code":"228790","display":"Dutasteride"},{"code":"232158","display":"rofecoxib"},{"code":"233698","display":"dronedarone"},{"code":"2348","display":"Chloramphenicol"},{"code":"2356","display":"Chlordiazepoxide"},{"code":"2358","display":"Chlorhexidine"},{"code":"236778","display":"Trospium"},{"code":"237159","display":"Levalbuterol"},{"code":"2393","display":"Chloroquine"},{"code":"2400","display":"Chlorpheniramine"},{"code":"2403","display":"Chlorpromazine"},{"code":"2409","display":"Chlorthalidone"},{"code":"2410","display":"Chlorzoxazone"},{"code":"2418","display":"Cholecalciferol"},{"code":"2447","display":"Cholestyramine Resin"},{"code":"24605","display":"Etodolac"},{"code":"24947","display":"ferrous sulfate"},{"code":"25025","display":"Finasteride"},{"code":"25033","display":"Cefixime"},{"code":"25037","display":"cefdinir"},{"code":"25120","display":"flunisolide"},{"code":"25255","display":"formoterol"},{"code":"253157","display":"Bee pollen"},{"code":"2541","display":"Cimetidine"},{"code":"25480","display":"gabapentin"},{"code":"2551","display":"Ciprofloxacin"},{"code":"2556","display":"Citalopram"},{"code":"25789","display":"glimepiride"},{"code":"2582","display":"Clindamycin"},{"code":"258337","display":"Hydrochlorothiazide / Triamterene"},{"code":"2598","display":"Clonazepam"},{"code":"2599","display":"Clonidine"},{"code":"260101","display":"Oseltamivir"},{"code":"26225","display":"Ondansetron"},{"code":"2623","display":"Clotrimazole"},{"code":"2670","display":"Codeine"},{"code":"2683","display":"Colchicine"},{"code":"2685","display":"Colestipol"},{"code":"27169","display":"leflunomide"},{"code":"274783","display":"Insulin Glargine"},{"code":"274786","display":"telithromycin"},{"code":"27723","display":"iodinated glycerol"},{"code":"278567","display":"valdecoxib"},{"code":"28031","display":"Itraconazole"},{"code":"281","display":"Acyclovir"},{"code":"283742","display":"Esomeprazole"},{"code":"283809","display":"travoprost"},{"code":"28439","display":"lamotrigine"},{"code":"284635","display":"fluticasone / salmeterol"},{"code":"2878","display":"Cortisone"},{"code":"28889","display":"Loratadine"},{"code":"28981","display":"loracarbef"},{"code":"29046","display":"Lisinopril"},{"code":"29542","display":"Mercury, Ammoniated"},{"code":"29561","display":"meropenem"},{"code":"296","display":"Adenosine"},{"code":"3008","display":"Cyclosporine"},{"code":"301542","display":"rosuvastatin"},{"code":"306674","display":"vardenafil"},{"code":"3108","display":"Dapsone"},{"code":"3143","display":"prasterone"},{"code":"31448","display":"nabumetone"},{"code":"31555","display":"nebivolol"},{"code":"31565","display":"nefazodone"},{"code":"31738","display":"nickel sulfate"},{"code":"318340","display":"Aloe vera preparation"},{"code":"321064","display":"olmesartan"},{"code":"321988","display":"Escitalopram"},{"code":"322167","display":"Solifenacin"},{"code":"3247","display":"Desipramine"},{"code":"325642","display":"ertapenem"},{"code":"32592","display":"oxaliplatin"},{"code":"32613","display":"oxaprozin"},{"code":"32624","display":"oxcarbazepine"},{"code":"3264","display":"Dexamethasone"},{"code":"32675","display":"oxybutynin"},{"code":"327361","display":"adalimumab"},{"code":"3289","display":"Dextromethorphan"},{"code":"32937","display":"Paroxetine"},{"code":"32968","display":"clopidogrel"},{"code":"3322","display":"Diazepam"},{"code":"33408","display":"phenyltoloxamine"},{"code":"3355","display":"Diclofenac"},{"code":"3356","display":"Dicloxacillin"},{"code":"3361","display":"Dicyclomine"},{"code":"33738","display":"pioglitazone"},{"code":"3393","display":"Diflunisal"},{"code":"3407","display":"Digoxin"},{"code":"341248","display":"ezetimibe"},{"code":"3418","display":"Dihydroergotamine"},{"code":"3423","display":"Hydromorphone"},{"code":"3443","display":"Diltiazem"},{"code":"3444","display":"Dimenhydrinate"},{"code":"3498","display":"Diphenhydramine"},{"code":"35208","display":"quinapril"},{"code":"3521","display":"Dipyridamole"},{"code":"352362","display":"Acetaminophen / Tramadol"},{"code":"35296","display":"Ramipril"},{"code":"35382","display":"resorcinol"},{"code":"35636","display":"Risperidone"},{"code":"358263","display":"tadalafil"},{"code":"35827","display":"Ketorolac"},{"code":"35829","display":"ranolazine"},{"code":"36108","display":"Salsalate"},{"code":"36117","display":"salmeterol"},{"code":"3616","display":"Dobutamine"},{"code":"3638","display":"Doxepin"},{"code":"3640","display":"Doxycycline"},{"code":"36437","display":"Sertraline"},{"code":"3648","display":"Droperidol"},{"code":"36567","display":"Simvastatin"},{"code":"37418","display":"Sumatriptan"},{"code":"37617","display":"tazobactam"},{"code":"37798","display":"Terazosin"},{"code":"37801","display":"terbinafine"},{"code":"3827","display":"Enalapril"},{"code":"3829","display":"Enalaprilat"},{"code":"38400","display":"atomoxetine"},{"code":"38404","display":"topiramate"},{"code":"38413","display":"torsemide"},{"code":"38574","display":"trichloroacetaldehyde"},{"code":"38685","display":"trimethobenzamide"},{"code":"389132","display":"Budesonide / formoterol"},{"code":"3966","display":"Ephedrine"},{"code":"39786","display":"venlafaxine"},{"code":"3992","display":"Epinephrine"},{"code":"39993","display":"zolpidem"},{"code":"39998","display":"zonisamide"},{"code":"40048","display":"Carboplatin"},{"code":"400674","display":"dexbrompheniramine / Pseudoephedrine"},{"code":"4025","display":"Ergotamine"},{"code":"40254","display":"Valproate"},{"code":"4053","display":"Erythromycin"},{"code":"40575","display":"zileuton"},{"code":"40790","display":"pantoprazole"},{"code":"4083","display":"Estradiol"},{"code":"4099","display":"Estrogens, Conjugated (USP)"},{"code":"41126","display":"fluticasone"},{"code":"41127","display":"fluvastatin"},{"code":"4124","display":"Ethinyl Estradiol"},{"code":"41397","display":"Lactase"},{"code":"41493","display":"meloxicam"},{"code":"42330","display":"Terfenadine"},{"code":"42331","display":"Misoprostol"},{"code":"42347","display":"Bupropion"},{"code":"42351","display":"Lithium Carbonate"},{"code":"42372","display":"Mupirocin"},{"code":"42463","display":"Pravastatin"},{"code":"4278","display":"Famotidine"},{"code":"4316","display":"Felodipine"},{"code":"4337","display":"Fentanyl"},{"code":"435","display":"Albuterol"},{"code":"43611","display":"latanoprost"},{"code":"4419","display":"Fish Oils"},{"code":"4441","display":"Flecainide"},{"code":"4450","display":"Fluconazole"},{"code":"448","display":"Ethanol"},{"code":"4492","display":"Fluorouracil"},{"code":"4493","display":"Fluoxetine"},{"code":"4496","display":"Fluphenazine"},{"code":"4500","display":"Flurandrenolide"},{"code":"4530","display":"Formaldehyde"},{"code":"4603","display":"Furosemide"},{"code":"46041","display":"Alendronate"},{"code":"461016","display":"Eszopiclone"},{"code":"4637","display":"Galantamine"},{"code":"465397","display":"Ciprofloxacin / Dexamethasone"},{"code":"466522","display":"Diphenhydramine / Zinc Acetate"},{"code":"466541","display":"Neomycin / Polymyxin B"},{"code":"466549","display":"Aspirin / Caffeine / Orphenadrine"},{"code":"466553","display":"penicillin G benzathine / penicillin G procaine"},{"code":"466566","display":"Acetaminophen / Dextromethorphan / Diphenhydramine / Pseudoephedrine"},{"code":"466584","display":"Acetaminophen / Aspirin / Caffeine"},{"code":"4719","display":"Gemfibrozil"},{"code":"475968","display":"liraglutide"},{"code":"4815","display":"Glyburide"},{"code":"48203","display":"Clavulanate"},{"code":"4821","display":"Glipizide"},{"code":"48274","display":"Acetaminophen / Propoxyphene"},{"code":"484139","display":"Chlorhexidine / Isopropyl Alcohol"},{"code":"484211","display":"ezetimibe / Simvastatin"},{"code":"4850","display":"Glucose"},{"code":"4917","display":"Nitroglycerin"},{"code":"49276","display":"Doxazosin"},{"code":"50166","display":"Fosinopril"},{"code":"5021","display":"Griseofulvin"},{"code":"5032","display":"Guaifenesin"},{"code":"5093","display":"Haloperidol"},{"code":"51272","display":"quetiapine"},{"code":"519","display":"Allopurinol"},{"code":"52175","display":"Losartan"},{"code":"5224","display":"heparin"},{"code":"52582","display":"mesalamine"},{"code":"5470","display":"Hydralazine"},{"code":"5487","display":"Hydrochlorothiazide"},{"code":"5489","display":"Hydrocodone"},{"code":"5492","display":"Hydrocortisone"},{"code":"5499","display":"Hydrogen Peroxide"},{"code":"5521","display":"Hydroxychloroquine"},{"code":"5553","display":"Hydroxyzine"},{"code":"5640","display":"Ibuprofen"},{"code":"5691","display":"Imipramine"},{"code":"56946","display":"Paclitaxel"},{"code":"57258","display":"tizanidine"},{"code":"5764","display":"Indapamide"},{"code":"5781","display":"Indomethacin"},{"code":"588250","display":"milnacipran"},{"code":"59078","display":"metaxalone"},{"code":"591622","display":"varenicline"},{"code":"5933","display":"Iodine"},{"code":"593411","display":"sitagliptin"},{"code":"594040","display":"Atropine / Diphenoxylate"},{"code":"5956","display":"Iohexol"},{"code":"596","display":"Alprazolam"},{"code":"596723","display":"cerivastatin"},{"code":"597142","display":"brimonidine / Timolol"},{"code":"5992","display":"Iron-Dextran Complex"},{"code":"60207","display":"dorzolamide"},{"code":"6038","display":"isoniazid"},{"code":"60548","display":"exenatide"},{"code":"6057","display":"Isosorbide"},{"code":"6058","display":"Isosorbide Dinitrate"},{"code":"611854","display":"Chlordiazepoxide / clidinium"},{"code":"6130","display":"Ketamine"},{"code":"6135","display":"Ketoconazole"},{"code":"61381","display":"olanzapine"},{"code":"6142","display":"Ketoprofen"},{"code":"6185","display":"Labetalol"},{"code":"620","display":"Amantadine"},{"code":"6218","display":"Lactulose"},{"code":"6227","display":"Lanolin"},{"code":"6387","display":"Lidocaine"},{"code":"6398","display":"Lincomycin"},{"code":"6448","display":"Lithium"},{"code":"645555","display":"Bacitracin / Polymyxin B"},{"code":"6468","display":"Loperamide"},{"code":"6470","display":"Lorazepam"},{"code":"6472","display":"Lovastatin"},{"code":"6574","display":"Magnesium"},{"code":"6585","display":"Magnesium Sulfate"},{"code":"662263","display":"dorzolamide / Timolol"},{"code":"6676","display":"Meclizine"},{"code":"6691","display":"Medroxyprogesterone"},{"code":"67108","display":"Enoxaparin"},{"code":"6711","display":"Melatonin"},{"code":"6719","display":"Memantine"},{"code":"6750","display":"Menthol"},{"code":"6754","display":"Meperidine"},{"code":"6809","display":"Metformin"},{"code":"6813","display":"Methadone"},{"code":"6835","display":"Methimazole"},{"code":"6845","display":"Methocarbamol"},{"code":"6851","display":"Methotrexate"},{"code":"6876","display":"Methyldopa"},{"code":"689","display":"Aminophylline"},{"code":"689467","display":"Oxytetracycline / Polymyxin B"},{"code":"689518","display":"Aspirin / Caffeine / Propoxyphene"},{"code":"689556","display":"Acetaminophen / Aspirin / Phenylpropanolamine"},{"code":"689558","display":"Acetaminophen / Brompheniramine / Pseudoephedrine"},{"code":"689561","display":"Acetaminophen / butalbital / Caffeine / Codeine"},{"code":"689582","display":"Acetaminophen / Chlorpheniramine / Dextromethorphan / Pseudoephedrine"},{"code":"689606","display":"Atropine / Hyoscyamine / Phenobarbital / Scopolamine"},{"code":"689623","display":"Bacitracin / Hydrocortisone / Neomycin / Polymyxin B"},{"code":"690077","display":"Benzalkonium / Lidocaine"},{"code":"6901","display":"Methylphenidate"},{"code":"6902","display":"Methylprednisolone"},{"code":"690693","display":"Diphenhydramine / Phenylephrine"},{"code":"690808","display":"Brompheniramine / Dextromethorphan / Pseudoephedrine"},{"code":"69120","display":"tiotropium"},{"code":"6915","display":"Metoclopramide"},{"code":"6916","display":"Metolazone"},{"code":"6918","display":"Metoprolol"},{"code":"6922","display":"Metronidazole"},{"code":"692572","display":"Bacitracin / Neomycin / Polymyxin B"},{"code":"692794","display":"Gramicidin / Neomycin / Polymyxin B"},{"code":"6932","display":"Miconazole"},{"code":"6960","display":"Midazolam"},{"code":"69749","display":"valsartan"},{"code":"6980","display":"Minocycline"},{"code":"6984","display":"Minoxidil"},{"code":"703","display":"Amiodarone"},{"code":"704","display":"Amitriptyline"},{"code":"7052","display":"Morphine"},{"code":"705258","display":"Acetaminophen / Dextromethorphan / Doxylamine"},{"code":"7213","display":"Ipratropium"},{"code":"72143","display":"Raloxifene"},{"code":"72236","display":"fosphenytoin"},{"code":"723","display":"Amoxicillin"},{"code":"72302","display":"ropinirole"},{"code":"7233","display":"Nafcillin"},{"code":"7238","display":"Nalbuphine"},{"code":"7243","display":"Naltrexone"},{"code":"725","display":"Amphetamine"},{"code":"7258","display":"Naproxen"},{"code":"72625","display":"duloxetine"},{"code":"7299","display":"Neomycin"},{"code":"73056","display":"Risedronate"},{"code":"733","display":"Ampicillin"},{"code":"73494","display":"telmisartan"},{"code":"73645","display":"valacyclovir"},{"code":"7393","display":"Niacin"},{"code":"7407","display":"Nicotine"},{"code":"74169","display":"Piperacillin / tazobactam"},{"code":"7417","display":"Nifedipine"},{"code":"7454","display":"Nitrofurantoin"},{"code":"746741","display":"Pramipexole"},{"code":"7486","display":"Nitrous Oxide"},{"code":"7517","display":"Norfloxacin"},{"code":"7531","display":"Nortriptyline"},{"code":"7597","display":"Nystatin"},{"code":"7623","display":"Ofloxacin"},{"code":"7646","display":"Omeprazole"},{"code":"7676","display":"Opium"},{"code":"7715","display":"Orphenadrine"},{"code":"77492","display":"tamsulosin"},{"code":"7804","display":"Oxycodone"},{"code":"7821","display":"Oxytetracycline"},{"code":"787390","display":"tapentadol"},{"code":"7975","display":"Penicillamine"},{"code":"797541","display":"Isopropyl Alcohol"},{"code":"7980","display":"Penicillin G"},{"code":"7984","display":"Penicillin V"},{"code":"7994","display":"Pentamidine"},{"code":"8001","display":"Pentazocine"},{"code":"8120","display":"Phenazopyridine"},{"code":"8134","display":"Phenobarbital"},{"code":"815166","display":"Dextromethorphan / Doxylamine"},{"code":"8163","display":"Phenylephrine"},{"code":"816346","display":"dexlansoprazole"},{"code":"8175","display":"Phenylpropanolamine"},{"code":"817579","display":"Acetaminophen / Codeine"},{"code":"817958","display":"Aspirin / Calcium Carbonate"},{"code":"8183","display":"Phenytoin"},{"code":"82122","display":"Levofloxacin"},{"code":"822929","display":"Amphetamine aspartate / Amphetamine Sulfate / Dextroamphetamine saccharate / Dextroamphetamine Sulfate"},{"code":"83367","display":"atorvastatin"},{"code":"8356","display":"Piroxicam"},{"code":"83818","display":"irbesartan"},{"code":"84108","display":"rosiglitazone"},{"code":"8536","display":"Polymyxin B"},{"code":"857974","display":"saxagliptin"},{"code":"8588","display":"Potassium"},{"code":"8591","display":"Potassium Chloride"},{"code":"8610","display":"Povidone"},{"code":"8611","display":"Povidone-Iodine"},{"code":"861634","display":"pitavastatin"},{"code":"8629","display":"Prazosin"},{"code":"8638","display":"prednisolone"},{"code":"8640","display":"Prednisone"},{"code":"8687","display":"Primaquine"},{"code":"8691","display":"Primidone"},{"code":"8698","display":"Probenecid"},{"code":"8700","display":"Procainamide"},{"code":"8701","display":"Procaine"},{"code":"8703","display":"Fenofibrate"},{"code":"8704","display":"Prochlorperazine"},{"code":"8727","display":"Progesterone"},{"code":"8745","display":"Promethazine"},{"code":"8754","display":"Propafenone"},{"code":"87636","display":"fexofenadine"},{"code":"8782","display":"Propofol"},{"code":"8785","display":"Propoxyphene"},{"code":"8787","display":"Propranolol"},{"code":"8794","display":"Propylthiouracil"},{"code":"88014","display":"rizatriptan"},{"code":"88249","display":"montelukast"},{"code":"883815","display":"Dexamethasone / Tobramycin"},{"code":"8896","display":"Pseudoephedrine"},{"code":"89013","display":"aripiprazole"},{"code":"8928","display":"Psyllium"},{"code":"8948","display":"Purified Protein Derivative of Tuberculin"},{"code":"90176","display":"Iron"},{"code":"9068","display":"Quinidine"},{"code":"9071","display":"Quinine"},{"code":"91263","display":"Aloe Extract"},{"code":"9143","display":"Ranitidine"},{"code":"9384","display":"Rifampin"},{"code":"9524","display":"Sulfasalazine"},{"code":"9601","display":"Scopolamine"},{"code":"9778","display":"Silicones"},{"code":"9793","display":"silver sulfadiazine"},{"code":"9947","display":"Sotalol"},{"code":"9997","display":"Spironolactone"}]},{"system":"http://snomed.info/sct","concept":[{"code":"102259006","display":"Citrus fruit (substance)"},{"code":"102261002","display":"Strawberry (substance)"},{"code":"102262009","display":"Chocolate (substance)"},{"code":"102263004","display":"Eggs (edible) (substance)"},{"code":"102264005","display":"Cheese (substance)"},{"code":"111088007","display":"Latex (substance)"},{"code":"111151007","display":"Anabolic steroid (substance)"},{"code":"11526002","display":"Aspartame (substance)"},{"code":"116274004","display":"Artificial sweetener (substance)"},{"code":"116566001","display":"Steroid (substance)"},{"code":"13577000","display":"Nut (substance)"},{"code":"14443002","display":"Substance with aminoglycoside structure and antibacterial mechanism of action (substance)"},{"code":"226723006","display":"Buckwheat - cereal (substance)"},{"code":"226734009","display":"Wheatgerm (substance)"},{"code":"226760005","display":"Dairy foods (substance)"},{"code":"226915003","display":"Red meat (substance)"},{"code":"226916002","display":"Beef (substance)"},{"code":"226934003","display":"Pork (substance)"},{"code":"226955001","display":"Chicken - meat (substance)"},{"code":"226967004","display":"Turkey - meat (substance)"},{"code":"227144008","display":"Tuna fish (substance)"},{"code":"227151004","display":"Prawns (substance)"},{"code":"227208008","display":"Abalone canned in brine (substance)"},{"code":"227219006","display":"Aubergine (substance)"},{"code":"227313005","display":"Pulse vegetables (substance)"},{"code":"227388008","display":"Cinnamon (substance)"},{"code":"227400003","display":"Ginger (substance)"},{"code":"227421003","display":"Cranberries (substance)"},{"code":"227444000","display":"Raspberries (substance)"},{"code":"227493005","display":"Cashew nut (substance)"},{"code":"227512001","display":"Pistachio nut (substance)"},{"code":"227598003","display":"Honey (substance)"},{"code":"228102000","display":"Sodium nitrate (substance)"},{"code":"255632006","display":"Anticonvulsant (substance)"},{"code":"255637000","display":"Salicylate (substance)"},{"code":"255641001","display":"Caffeine (substance)"},{"code":"256259004","display":"Pollen (substance)"},{"code":"256277009","display":"Grass pollen (substance)"},{"code":"256306003","display":"Orange - fruit (substance)"},{"code":"256307007","display":"Banana (substance)"},{"code":"256313003","display":"Pineapple (substance)"},{"code":"256315005","display":"Grapefruit (substance)"},{"code":"256317002","display":"Grapes (substance)"},{"code":"256319004","display":"Carrot (substance)"},{"code":"256326004","display":"Celery (substance)"},{"code":"256329006","display":"Spinach (substance)"},{"code":"256350002","display":"Almond (substance)"},{"code":"256351003","display":"Brazil nut (substance)"},{"code":"256352005","display":"Walnut - nut (substance)"},{"code":"256353000","display":"Hazelnut (substance)"},{"code":"256354006","display":"Bean (substance)"},{"code":"256417003","display":"Horse dander (substance)"},{"code":"256440004","display":"Wasp venom (substance)"},{"code":"259858000","display":"Varicella-zoster virus antibody (substance)"},{"code":"260152009","display":"Cat dander (substance)"},{"code":"260154005","display":"Dog dander (substance)"},{"code":"260167008","display":"Sesame seed (substance)"},{"code":"260176001","display":"Kiwi fruit (substance)"},{"code":"260177005","display":"Melon (substance)"},{"code":"260179008","display":"Mango fruit (substance)"},{"code":"260184002","display":"Peas (substance)"},{"code":"260189007","display":"Pecan nut (substance)"},{"code":"260205009","display":"Sunflower seed (substance)"},{"code":"264287008","display":"Animal dander (substance)"},{"code":"264337003","display":"Seed (substance)"},{"code":"28230009","display":"Poultry (substance)"},{"code":"288328004","display":"Bee venom (substance)"},{"code":"28942008","display":"Coconut oil (substance)"},{"code":"29263009","display":"Coffee (substance)"},{"code":"304275008","display":"Corticosteroid and corticosteroid derivative (substance)"},{"code":"33008008","display":"Dust (substance)"},{"code":"350327004","display":"Diphtheria + tetanus vaccine (product)"},{"code":"35748005","display":"Wine (substance)"},{"code":"360201004","display":"Nitrofuran derivative (substance)"},{"code":"3692009","display":"Sodium sulfite (substance)"},{"code":"372480009","display":"Substance with macrolide structure and antibacterial mechanism of action (substance)"},{"code":"372664007","display":"Benzodiazepine (substance)"},{"code":"372665008","display":"Non-steroidal anti-inflammatory agent (substance)"},{"code":"372711004","display":"Sulfonylurea (substance)"},{"code":"372722000","display":"Substance with quinolone structure and antibacterial mechanism of action (substance)"},{"code":"372733002","display":"Substance with angiotensin-converting enzyme inhibitor mechanism of action (substance)"},{"code":"372747003","display":"Thiazide diuretic (substance)"},{"code":"372783007","display":"Antiparkinsonian agent (substance)"},{"code":"372798009","display":"Barbiturate (substance)"},{"code":"372806008","display":"Substance with histamine receptor antagonist mechanism of action (substance)"},{"code":"372889003","display":"First generation cephalosporin (substance)"},{"code":"372912004","display":"Substance with 3-hydroxy-3-methylglutaryl-coenzyme A reductase inhibitor mechanism of action (substance)"},{"code":"372913009","display":"Substance with angiotensin II receptor antagonist mechanism of action (substance)"},{"code":"373206009","display":"Substance with tetracycline structure and antibacterial mechanism of action (substance)"},{"code":"373253007","display":"Tricyclic antidepressant (substance)"},{"code":"373254001","display":"Substance with beta adrenergic receptor antagonist mechanism of action (substance)"},{"code":"373262009","display":"Substance with cephalosporin structure and antibacterial mechanism of action (substance)"},{"code":"373270004","display":"Substance with penicillin structure and antibacterial mechanism of action (substance)"},{"code":"373297006","display":"Substance with beta-lactam structure and antibacterial mechanism of action (substance)"},{"code":"373304005","display":"Substance with calcium channel blocker mechanism of action (substance)"},{"code":"373531009","display":"Gelatin (substance)"},{"code":"385420005","display":"Contrast media (substance)"},{"code":"386127005","display":"Formula milk (substance)"},{"code":"386962001","display":"Plasma protein fraction (substance)"},{"code":"387050005","display":"Substance with prostaglandin-endoperoxide synthase isoform 2 inhibitor mechanism of action (substance)"},{"code":"387406002","display":"Sulfonamide (substance)"},{"code":"391737006","display":"Almond oil (substance)"},{"code":"391739009","display":"Aloe (substance)"},{"code":"396345004","display":"Carbapenem (substance)"},{"code":"396420001","display":"Anthrax vaccine (substance)"},{"code":"396425006","display":"Influenza virus vaccine (substance)"},{"code":"396433007","display":"Pertussis vaccine (substance)"},{"code":"396439006","display":"Smallpox vaccine (substance)"},{"code":"396441007","display":"Typhoid vaccine (substance)"},{"code":"396442000","display":"Varicella virus vaccine (substance)"},{"code":"398730001","display":"Pneumococcal vaccine (substance)"},{"code":"400872007","display":"Hydrocolloid (substance)"},{"code":"404642006","display":"Substance with opioid receptor agonist mechanism of action (substance)"},{"code":"406748003","display":"Carbamate (substance)"},{"code":"409137002","display":"No known drug allergy (situation)"},{"code":"412061001","display":"Blueberries (substance)"},{"code":"412062008","display":"Cantaloupe (substance)"},{"code":"412066006","display":"Pepper (substance)"},{"code":"412068007","display":"Rye (substance)"},{"code":"412071004","display":"Wheat (substance)"},{"code":"412138001","display":"Horse serum protein (substance)"},{"code":"412357001","display":"Corn (substance)"},{"code":"412373007","display":"Diphtheria + pertussis + tetanus + Haemophilus influenzae type b vaccine (product)"},{"code":"412375000","display":"Tetanus vaccine (substance)"},{"code":"412533000","display":"Wheat bran (substance)"},{"code":"412534006","display":"Yeast (substance)"},{"code":"412583005","display":"Bee pollen (substance)"},{"code":"41598000","display":"Estrogen (substance)"},{"code":"417889008","display":"Arachis oil (substance)"},{"code":"418000008","display":"Methadone analog (substance)"},{"code":"418504009","display":"Oats (substance)"},{"code":"418920007","display":"Adhesive agent (substance)"},{"code":"419420009","display":"Watermelon (substance)"},{"code":"419933005","display":"Glucocorticoid (substance)"},{"code":"421245007","display":"Diphtheria + pertussis + tetanus vaccine (product)"},{"code":"424369009","display":"Product containing beta-galactosidase (medicinal product)"},{"code":"426722004","display":"Iodinated contrast media (substance)"},{"code":"428607008","display":"No known environmental allergy (situation)"},{"code":"429625007","display":"No known food allergy (situation)"},{"code":"43735007","display":"Sulfur (substance)"},{"code":"43921001","display":"Nickel compound (substance)"},{"code":"44027008","display":"Seafood (substance)"},{"code":"442381000124103","display":"Blue food coloring (substance)"},{"code":"442571000124108","display":"Tree nut (substance)"},{"code":"442771000124102","display":"Pepperoni (substance)"},{"code":"44588005","display":"Iodine (substance)"},{"code":"446273004","display":"Red food coloring (substance)"},{"code":"446274005","display":"Yellow food coloring (substance)"},{"code":"47703008","display":"Lactose (substance)"},{"code":"51386004","display":"Food preservative (substance)"},{"code":"51905005","display":"Mustard (substance)"},{"code":"53041004","display":"Alcohol (substance)"},{"code":"61789006","display":"Dye (substance)"},{"code":"63045006","display":"Berry (substance)"},{"code":"67324005","display":"Rice (substance)"},{"code":"67866001","display":"Insulin (substance)"},{"code":"70813002","display":"Milk (substance)"},{"code":"710179004","display":"Lupine seed (substance)"},{"code":"716184000","display":"No known latex allergy (situation)"},{"code":"716186003","display":"No known allergy (situation)"},{"code":"720687003","display":"Dust mite protein (substance)"},{"code":"72511004","display":"Fruit (substance)"},{"code":"726730005","display":"Yam (substance)"},{"code":"734881000","display":"Tomato (substance)"},{"code":"735006003","display":"Squid (substance)"},{"code":"735009005","display":"Salmon (substance)"},{"code":"735029006","display":"Shellfish (substance)"},{"code":"735030001","display":"Garlic (substance)"},{"code":"735043001","display":"Mackerel (substance)"},{"code":"735045008","display":"Mushroom (substance)"},{"code":"735047000","display":"Onion (substance)"},{"code":"735049002","display":"Peach (substance)"},{"code":"735050002","display":"Pear (substance)"},{"code":"735051003","display":"Plum (substance)"},{"code":"735053000","display":"Potato (substance)"},{"code":"735123009","display":"Broccoli (substance)"},{"code":"735124003","display":"Barley (substance)"},{"code":"735211005","display":"Coconut (substance)"},{"code":"735212003","display":"Papaya (substance)"},{"code":"735213008","display":"Cucumber (substance)"},{"code":"735214002","display":"Apricot (substance)"},{"code":"735215001","display":"Apple (substance)"},{"code":"735248001","display":"Cherry (substance)"},{"code":"735249009","display":"Avocado (substance)"},{"code":"735340006","display":"Lemon (substance)"},{"code":"735959004","display":"Marine mollusk (substance)"},{"code":"735971005","display":"Fish (substance)"},{"code":"735977009","display":"Marine crustacean (substance)"},{"code":"736027000","display":"Scallop (substance)"},{"code":"736030007","display":"Clam (substance)"},{"code":"736031006","display":"Oyster (substance)"},{"code":"736159005","display":"Crab (substance)"},{"code":"736162008","display":"Lobster (substance)"},{"code":"74801000","display":"Sugar (substance)"},{"code":"75665004","display":"Monosodium glutamate (substance)"},{"code":"762952008","display":"Peanut (substance)"},{"code":"7791007","display":"Soy protein (substance)"},{"code":"80259003","display":"Food flavoring agent (substance)"},{"code":"84489001","display":"Mold (organism)"},{"code":"89119000","display":"Nitrate salt (substance)"},{"code":"89707004","display":"Sesame oil (substance)"},{"code":"89811004","display":"Gluten (substance)"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-careteam-provider-roles.json b/resources/uscore_v3.0.1/ValueSet-us-core-careteam-provider-roles.json new file mode 100644 index 000000000..24f984cf4 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-careteam-provider-roles.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-careteam-provider-roles","text":{"status":"generated","div":"

    US Core CareTeam Provider Roles

    Provider roles codes consist of NUCC Health Care Provider Taxonomy Code Set for providers and SNOMED-CT for - non clinical and organization roles including codes from the SCTID 125676002 Person (person) heirarchy and the SCTID 394730007 Healthcare related organization (qualifier value) heirarchy.

    \n

    Copyright Statement: This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement. This value set includes content from NUCC Health Care Provider Taxonomy Code Set for providers which is copyright © 2016+ American Medical Association. For commercial use, including sales or licensing, a license must be obtained.

    This value set includes codes from the following code systems:

    • Include all codes defined in http://nucc.org/provider-taxonomy
    • Include codes from http://snomed.info/sct where concept is-a 125676002 (Person)
    • Include codes from http://snomed.info/sct where concept is-a 394730007 (Healthcare related organization)
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-careteam-provider-roles","version":"3.0.1","name":"USCoreCareTeamProviderRoles","title":"US Core CareTeam Provider Roles","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"Provider roles codes consist of NUCC Health Care Provider Taxonomy Code Set for providers and SNOMED-CT for - non clinical and organization roles including codes from the SCTID 125676002 Person (person) heirarchy and the SCTID 394730007 Healthcare related organization (qualifier value) heirarchy.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"purpose":"Codes that may be used for implementation of the Argonaut Procedures IG and MU2015 certification.","copyright":"This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement. This value set includes content from NUCC Health Care Provider Taxonomy Code Set for providers which is copyright © 2016+ American Medical Association. For commercial use, including sales or licensing, a license must be obtained.","compose":{"include":[{"system":"http://nucc.org/provider-taxonomy"},{"system":"http://snomed.info/sct","filter":[{"property":"concept","op":"is-a","value":"125676002"}]},{"system":"http://snomed.info/sct","filter":[{"property":"concept","op":"is-a","value":"394730007"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-clinical-note-type.json b/resources/uscore_v3.0.1/ValueSet-us-core-clinical-note-type.json new file mode 100644 index 000000000..dd14e1117 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-clinical-note-type.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-clinical-note-type","text":{"status":"generated","div":"

    US Core Clinical Note Type

    The US Core Clinical Note Type Value Set is a 'starter set' of types supported for fetching and storing clinical notes.

    \n

    Copyright Statement: This content LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-clinical-note-type","version":"3.0.1","name":"USCoreClinicalNoteType","title":"US Core Clinical Note Type","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"The US Core Clinical Note Type Value Set is a 'starter set' of types supported for fetching and storing clinical notes.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":" This content LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use","compose":{"include":[{"system":"http://loinc.org","concept":[{"code":"18842-5"},{"code":"11488-4"},{"code":"34117-2"},{"code":"11506-3"},{"code":"28570-0"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-condition-category.json b/resources/uscore_v3.0.1/ValueSet-us-core-condition-category.json new file mode 100644 index 000000000..bf2db875b --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-condition-category.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-condition-category","text":{"status":"generated","div":"

    US Core Condition Category Codes

    The US Core Condition Category Codes support the separate concepts of problems and health concerns in Condition.category in order for API consumers to be able to separate health concerns and problems. However this is not mandatory for 2015 certification

    \n

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-condition-category","version":"3.0.1","name":"USCoreConditionCategoryCodes","title":"US Core Condition Category Codes","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","description":"The US Core Condition Category Codes support the separate concepts of problems and health concerns in Condition.category in order for API consumers to be able to separate health concerns and problems. However this is not mandatory for 2015 certification","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"purpose":"So API consumers can separate health concerns and problems.","compose":{"include":[{"system":"http://terminology.hl7.org/CodeSystem/condition-category"},{"system":"http://hl7.org/fhir/us/core/CodeSystem/condition-category","concept":[{"code":"health-concern","display":"Health Concern"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-category.json b/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-category.json new file mode 100644 index 000000000..91ad1ce5a --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-category.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-diagnosticreport-category","text":{"status":"generated","div":"

    US Core DiagnosticReport Category

    The US Core Diagnostic Report Category Value Set is a 'starter set' of categories supported for fetching and Diagnostic Reports and notes.

    \n

    Copyright Statement: This content LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-category","version":"3.0.1","name":"USCoreDiagnosticReportCategory","title":"US Core DiagnosticReport Category","status":"active","date":"2019-05-21T00:00:00+00:00","description":"The US Core Diagnostic Report Category Value Set is a 'starter set' of categories supported for fetching and Diagnostic Reports and notes.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":" This content LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use","compose":{"include":[{"system":"http://loinc.org","concept":[{"code":"LP29684-5","display":"Radiology"},{"code":"LP29708-2","display":"Cardiology"},{"code":"LP7839-6","display":"Pathology"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-lab-codes.json b/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-lab-codes.json new file mode 100644 index 000000000..54abb22f3 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-lab-codes.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-diagnosticreport-lab-codes","text":{"status":"generated","div":"

    US Core Diagnostic Report Laboratory Codes

    The Document Type value set includes all LOINC values whose CLASSTYPE is LABORATORY in the LOINC database

    \n

    Copyright Statement: This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use.

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-lab-codes","version":"3.0.1","name":"USCoreDiagnosticReportLabCodes","title":"US Core Diagnostic Report Laboratory Codes","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"The Document Type value set includes all LOINC values whose CLASSTYPE is LABORATORY in the LOINC database","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use.","compose":{"include":[{"system":"http://loinc.org","filter":[{"property":"CLASSTYPE","op":"=","value":"1"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-report-and-note-codes.json b/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-report-and-note-codes.json new file mode 100644 index 000000000..c2dae528c --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-diagnosticreport-report-and-note-codes.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-diagnosticreport-report-and-note-codes","text":{"status":"generated","div":"

    US Core Diagnosticreport Report And Note Codes

    This value set currently contains all of LOINC. The codes selected should represent discrete and narrative diagnostic observations and reports

    \n

    Copyright Statement: This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use.

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-report-and-note-codes","version":"3.0.1","name":"USCoreDiagnosticreportReportAndNoteCodes","title":"US Core Diagnosticreport Report And Note Codes","status":"active","experimental":false,"date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"This value set currently contains all of LOINC. The codes selected should represent discrete and narrative diagnostic observations and reports","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use.","compose":{"include":[{"system":"http://loinc.org"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-documentreference-category.json b/resources/uscore_v3.0.1/ValueSet-us-core-documentreference-category.json new file mode 100644 index 000000000..ea4a4b439 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-documentreference-category.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-documentreference-category","text":{"status":"generated","div":"

    US Core DocumentReference Category

    The US Core DocumentReferences Category Value Set is a 'starter set' of categories supported for fetching and storing clinical notes.

    \n

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-documentreference-category","version":"3.0.1","name":"USCoreDocumentReferenceCategory","title":"US Core DocumentReference Category","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"The US Core DocumentReferences Category Value Set is a 'starter set' of categories supported for fetching and storing clinical notes.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-documentreference-type.json b/resources/uscore_v3.0.1/ValueSet-us-core-documentreference-type.json new file mode 100644 index 000000000..3c12fbd45 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-documentreference-type.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-documentreference-type","text":{"status":"generated","div":"

    US Core DocumentReference Type

    The US Core DocumentReference Type Value Set includes all LOINC values whose SCALE is DOC in the LOINC database and the HL7 v3 Code System NullFlavor concept 'unknown'

    \n

    Copyright Statement: This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use.

    This value set includes codes from the following code systems:

    • Include these codes as defined in http://terminology.hl7.org/CodeSystem/v3-NullFlavor
      CodeDisplay
      UNKunknownDescription:A proper value is applicable, but not known.
      \n \n Usage Notes: This means the actual value is not known. If the only thing that is unknown is how to properly express the value in the necessary constraints (value set, datatype, etc.), then the OTH or UNC flavor should be used. No properties should be included for a datatype with this property unless:
      \n \n Those properties themselves directly translate to a semantic of "unknown". (E.g. a local code sent as a translation that conveys 'unknown')\n Those properties further qualify the nature of what is unknown. (E.g. specifying a use code of "H" and a URL prefix of "tel:" to convey that it is the home phone number that is unknown.)
    • Include codes from http://loinc.org where SCALE_TYP = DOC
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-documentreference-type","version":"3.0.1","name":"USCoreDocumentReferenceType","title":"US Core DocumentReference Type","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"The US Core DocumentReference Type Value Set includes all LOINC values whose SCALE is DOC in the LOINC database and the HL7 v3 Code System NullFlavor concept 'unknown'","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use.","compose":{"include":[{"system":"http://terminology.hl7.org/CodeSystem/v3-NullFlavor","concept":[{"code":"UNK","display":"unknown"}]},{"system":"http://loinc.org","filter":[{"property":"SCALE_TYP","op":"=","value":"DOC"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-encounter-type.json b/resources/uscore_v3.0.1/ValueSet-us-core-encounter-type.json new file mode 100644 index 000000000..e915f5f56 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-encounter-type.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-encounter-type","text":{"status":"generated","div":"

    US Core Encounter Type

    The type of encounter: a specific code indicating type of service provided. This value set includes codes from SNOMED CT decending from the concept 308335008 (Patient encounter procedure (procedure)) and from the Current Procedure and Terminology(CPT) designated for Evaluation and Management (99200 – 99607) (subscription to AMA Required)

    \n

    Copyright Statement: This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement. This value set includes content from CPT copyright 2014 American Medical Association. All rights reserved.

    This value set includes codes from the following code systems:

    • Include codes from http://snomed.info/sct where concept is-a 308335008 (Patient encounter procedure)
    • Include all codes defined in http://www.ama-assn.org/go/cpt
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-encounter-type","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113883.3.88.12.80.32"}],"version":"3.0.1","name":"USCoreEncounterType","title":"US Core Encounter Type","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"The type of encounter: a specific code indicating type of service provided. This value set includes codes from SNOMED CT decending from the concept 308335008 (Patient encounter procedure (procedure)) and from the Current Procedure and Terminology(CPT) designated for Evaluation and Management (99200 – 99607) (subscription to AMA Required)","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement. This value set includes content from CPT copyright 2014 American Medical Association. All rights reserved.","compose":{"include":[{"system":"http://snomed.info/sct","filter":[{"property":"concept","op":"is-a","value":"308335008"}]},{"system":"http://www.ama-assn.org/go/cpt"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-medication-codes.json b/resources/uscore_v3.0.1/ValueSet-us-core-medication-codes.json new file mode 100644 index 000000000..f1646e361 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-medication-codes.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-medication-codes","text":{"status":"generated","div":"
    \n\t\t\t

    Medication Clinical Drug (RxNorm)

    \n\t\t\t

    All prescribable medication formulations represented using either a 'generic' or 'brand-specific' concept. This includes RxNorm codes whose Term Type is SCD (semantic clinical drug), SBD (semantic brand drug), GPCK (generic pack), BPCK (brand pack), SCDG (semantic clinical drug group), SBDG (semantic brand drug group), SCDF (semantic clinical drug form), or SBDF (semantic brand drug form)

    \n\t\t\t

    This value set includes codes from the following code systems:

    \n\t\t\t
      \n\t\t\t\t
    • Include codes from http://www.nlm.nih.gov/research/umls/rxnorm where TTY in SCD,SBD,GPCK,BPCK,SCDG,SBDG,SCDF,SBDF
    • \n\t\t\t
    \n\t\t
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-medication-codes","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113762.1.4.1010.4"}],"version":"3.0.1","name":"USCoreMedicationCodes","title":"US Core Medication Codes (RxNorm)","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"All prescribable medication formulations represented using either a 'generic' or 'brand-specific' concept. This includes RxNorm codes whose Term Type is SCD (semantic clinical drug), SBD (semantic brand drug), GPCK (generic pack), BPCK (brand pack), SCDG (semantic clinical drug group), SBDG (semantic brand drug group), SCDF (semantic clinical drug form), or SBDF (semantic brand drug form)","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"http://www.nlm.nih.gov/research/umls/rxnorm","filter":[{"property":"TTY","op":"in","value":"SCD,SBD,GPCK,BPCK,SCDG,SBDG,SCDF,SBDF"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-narrative-status.json b/resources/uscore_v3.0.1/ValueSet-us-core-narrative-status.json new file mode 100644 index 000000000..7154e0d18 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-narrative-status.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-narrative-status","text":{"status":"generated","div":"

    US Core Narrative Status

    The US Core Narrative Status Value Set limits the text status for the resource narrative.

    \n

    Copyright Statement: HL7

    This value set includes codes from the following code systems:

    • Include these codes as defined in http://hl7.org/fhir/narrative-status
      CodeDisplay
      additionaladditionalThe contents of the narrative may contain additional information not found in the structured data. Note that there is no computable way to determine what the extra information is, other than by human inspection.
      generatedgeneratedThe contents of the narrative are entirely generated from the core elements in the content.
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-narrative-status","version":"3.0.1","name":"NarrativeStatus","title":"US Core Narrative Status","status":"active","date":"2019-09-12T23:50:40+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"The US Core Narrative Status Value Set limits the text status for the resource narrative.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"HL7","compose":{"include":[{"system":"http://hl7.org/fhir/narrative-status","concept":[{"code":"additional","display":"additional"},{"code":"generated","display":"generated"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-ndc-vaccine-codes.json b/resources/uscore_v3.0.1/ValueSet-us-core-ndc-vaccine-codes.json new file mode 100644 index 000000000..03fd4aeb2 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-ndc-vaccine-codes.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-ndc-vaccine-codes","text":{"status":"generated","div":"

    US Core Vaccine National Drug Codes (NDC)

    This value set includes all the Vaccine National Drug Codes (NDC). This source of this data is provided by the CDC

    \n

    This value set includes codes from the following code systems:

    • Include these codes as defined in http://hl7.org/fhir/sid/ndc
      CodeDisplay
      00005-0100-02Trumenba
      00005-0100-05Trumenba
      00005-0100-10Trumenba
      00005-1970-50Prevnar
      00005-1971-02PREVNAR 13
      00005-1971-04PREVNAR 13
      00005-1971-05PREVNAR 13
      00006-4045-00GARDASIL
      00006-4045-41GARDASIL
      00006-4047-20RotaTeq
      00006-4047-41RotaTeq
      00006-4093-02RECOMBIVAX HB
      00006-4093-09RECOMBIVAX HB
      00006-4094-02RECOMBIVAX HB
      00006-4094-09RECOMBIVAX HB
      00006-4095-02VAQTA
      00006-4095-09VAQTA
      00006-4096-02VAQTA
      00006-4096-09VAQTA
      00006-4109-02GARDASIL
      00006-4109-09GARDASIL
      00006-4119-02GARDASIL 9
      00006-4119-03GARDASIL 9
      00006-4121-02GARDASIL 9
      00006-4133-41Tetanus and Diphtheria Toxoids Adsorbed
      00006-4171-00ProQuad
      00006-4681-00M-M-R II
      00006-4739-00PNEUMOVAX 23
      00006-4826-00VARIVAX
      00006-4827-00VARIVAX
      00006-4831-41VAQTA
      00006-4837-02PNEUMOVAX 23
      00006-4837-03PNEUMOVAX 23
      00006-4841-00VAQTA
      00006-4841-41VAQTA
      00006-4897-00PedvaxHIB
      00006-4898-00COMVAX
      00006-4943-00PNEUMOVAX 23
      00006-4963-00ZOSTAVAX
      00006-4963-41ZOSTAVAX
      00006-4980-00RECOMBIVAX HB
      00006-4981-00RECOMBIVAX HB
      00006-4992-00RECOMBIVAX HB
      00006-4995-00RECOMBIVAX HB
      00006-4995-41RECOMBIVAX HB
      00006-4999-00ProQuad
      00052-0603-02BCG VACCINE
      13533-0131-01Tetanus and Diphtheria Toxoids Adsorbed
      14362-0111-04Tetanus and Diphtheria Toxoids Adsorbed
      17478-0131-01Tetanus and Diphtheria Toxoids Adsorbed
      19515-0845-11FLULAVAL
      19515-0850-52FLULAVAL
      19515-0889-07FLULAVAL
      19515-0890-07FLULAVAL
      19515-0891-11Flulaval Quadrivalent
      19515-0893-07FLULAVAL
      19515-0894-52Flulaval Quadrivalent
      19515-0895-11Flulaval Quadrivalent
      19515-0896-11Flulaval Quadrivalent
      19515-0898-11Flulaval Quadrivalent
      19515-0900-11Flulaval Quadrivalent
      19515-0901-52Flulaval Quadrivalent
      19515-0903-11Flulaval Quadrivalent
      19515-0908-52Flulaval Quadrivalent
      19515-0909-52Flulaval Quadrivalent
      19515-0912-52Flulaval Quadrivalent
      21695-0413-01Tetanus and Diphtheria Toxoids Adsorbed
      33332-0010-01AFLURIA
      33332-0013-01AFLURIA
      33332-0014-01AFLURIA
      33332-0015-01AFLURIA
      33332-0016-01AFLURIA
      33332-0017-01AFLURIA
      33332-0018-01AFLURIA
      33332-0110-10AFLURIA
      33332-0113-10AFLURIA
      33332-0114-10AFLURIA
      33332-0115-10AFLURIA
      33332-0116-10AFLURIA
      33332-0117-10AFLURIA
      33332-0118-10AFLURIA
      33332-0316-01AFLURIA QUADRIVALENT
      33332-0317-01AFLURIA QUADRIVALENT
      33332-0318-01AFLURIA QUADRIVALENT
      33332-0416-10AFLURIA QUADRIVALENT
      33332-0417-10AFLURIA QUADRIVALENT
      33332-0418-10AFLURIA QUADRIVALENT
      33332-0519-01Influenza A
      33332-0519-25Influenza A
      33332-0629-10Influenza A
      42515-0001-01IXIARO
      42515-0001-01IXIARO
      42515-0001-01IXIARO
      42515-0001-01IXIARO
      42515-0002-01IXIARO
      42874-0012-10Flublok
      42874-0013-10Flublok
      42874-0014-10Flublok
      42874-0015-10Flublok
      42874-0016-10Flublok
      42874-0017-10Flublok
      42874-0117-10Flublok Quadrivalent
      43528-0002-05HEPLISAV-B
      43528-0003-05HEPLISAV-B
      46028-0114-01Bexsero
      46028-0114-02Bexsero
      46028-0208-01Menveo
      46028-0208-01Menveo
      49281-0010-10FLUZONE
      49281-0010-25FLUZONE
      49281-0010-50FLUZONE
      49281-0011-10FLUZONE
      49281-0011-50FLUZONE
      49281-0012-10FLUZONE
      49281-0012-50FLUZONE
      49281-0013-10FLUZONE
      49281-0013-50FLUZONE
      49281-0014-50FLUZONE
      49281-0111-25FLUZONE
      49281-0112-25FLUZONE
      49281-0113-25FLUZONE
      49281-0215-10TENIVAC
      49281-0215-15TENIVAC
      49281-0225-10DIPHTHERIA AND TETANUS TOXOIDS ADSORBED
      49281-0250-51IMOVAX RABIES
      49281-0278-10DIPHTHERIA AND TETANUS TOXOIDS ADSORBED
      49281-0286-01DAPTACEL
      49281-0286-05DAPTACEL
      49281-0286-10DAPTACEL
      49281-0291-10DECAVAC
      49281-0291-83DECAVAC
      49281-0298-10TRIPEDIA
      49281-0386-15FLUZONE
      49281-0387-65FLUZONE
      49281-0388-15FLUZONE
      49281-0389-65FLUZONE HIGH DOSE
      49281-0390-15FLUZONE
      49281-0391-65FLUZONE High-Dose
      49281-0392-15FLUZONE
      49281-0393-65FLUZONE High-Dose
      49281-0394-15FLUZONE
      49281-0395-65FLUZONE High-Dose
      49281-0396-15FLUZONE
      49281-0397-65FLUZONE High-Dose
      49281-0399-65FLUZONE High-Dose
      49281-0400-05Adacel
      49281-0400-10Adacel
      49281-0400-15Adacel
      49281-0400-20Adacel
      49281-0401-65FLUZONE High-Dose
      49281-0403-65FLUZONE High-Dose
      49281-0413-10FLUZONE QUADRIVALENT
      49281-0413-50FLUZONE QUADRIVALENT
      49281-0414-10FLUZONE QUADRIVALENT
      49281-0414-50FLUZONE QUADRIVALENT
      49281-0415-10FLUZONE QUADRIVALENT
      49281-0416-10FLUZONE QUADRIVALENT
      49281-0416-50FLUZONE QUADRIVALENT
      49281-0417-10FLUZONE QUADRIVALENT
      49281-0417-50FLUZONE QUADRIVALENT
      49281-0418-10FLUZONE QUADRIVALENT
      49281-0418-50FLUZONE QUADRIVALENT
      49281-0489-01MENOMUNE - A/C/Y/W-135 COMBINED
      49281-0489-91MENOMUNE - A/C/Y/W-135 COMBINED
      49281-0510-05PENTACEL
      49281-0510-05PENTACEL
      49281-0513-25FLUZONE QUADRIVALENT
      49281-0514-25FLUZONE QUADRIVALENT
      49281-0516-25FLUZONE QUADRIVALENT
      49281-0517-25FLUZONE QUADRIVALENT
      49281-0518-25FLUZONE QUADRIVALENT
      49281-0545-03ActHIB
      49281-0545-05ActHIB
      49281-0562-10QUADRACEL
      49281-0589-05Menactra
      49281-0621-15FLUZONE QUADRIVALENT
      49281-0625-15FLUZONE QUADRIVALENT
      49281-0627-15FLUZONE QUADRIVALENT
      49281-0629-15FLUZONE QUADRIVALENT
      49281-0640-15INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE
      49281-0650-10INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE
      49281-0650-25INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE
      49281-0650-50INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE
      49281-0650-70INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE
      49281-0650-90INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE
      49281-0703-55FLUZONE INTRADERMAL
      49281-0705-55FLUZONE
      49281-0707-55FLUZONE
      49281-0708-40FLUZONE INTRADERMAL QUADRIVALENT
      49281-0709-55FLUZONE Intradermal
      49281-0710-40FLUZONE INTRADERMAL QUADRIVALENT
      49281-0712-40FLUZONE INTRADERMAL QUADRIVALENT
      49281-0718-10Flublok Quadrivalent
      49281-0790-20Typhim Vi
      49281-0790-51Typhim Vi
      49281-0800-83TETANUS TOXOID ADSORBED
      49281-0820-10TETANUS TOXOID ADSORBED
      49281-0860-10IPOL
      49281-0860-10IPOL
      49281-0860-55IPOL
      49281-0913-01STAMARIL
      49281-0915-01YF-VAX
      49281-0915-05YF-VAX
      50090-1693-09IPOL
      50090-2883-00INFANRIX
      50090-3096-00RabAvert
      50090-3469-00HEPLISAV-B
      51285-0138-50Adenovirus Type 4 and Type 7 Vaccine, Live
      51285-0138-50Adenovirus Type 4 and Type 7 Vaccine, Live
      54868-0734-00ENGERIX-B
      54868-0980-00M-M-R II
      54868-2219-00RECOMBIVAX HB
      54868-2219-01RECOMBIVAX HB
      54868-3339-01PNEUMOVAX 23
      54868-4320-00PNEUMOVAX 23
      54868-6177-00FLUZONE
      54868-6180-00FLUZONE
      55045-3841-01HAVRIX
      58160-0801-11Menhibrix
      58160-0806-05HIBERIX
      58160-0808-15Influenza A (H5N1) Monovalent Vaccine, Adjuvanted
      58160-0808-15Influenza A (H5N1) Monovalent Vaccine, Adjuvanted
      58160-0809-05MENHIBRIX
      58160-0810-11INFANRIX
      58160-0810-52INFANRIX
      58160-0811-51PEDIARIX
      58160-0811-52PEDIARIX
      58160-0812-11KINRIX
      58160-0812-52KINRIX
      58160-0815-11TWINRIX
      58160-0815-34TWINRIX
      58160-0815-46TWINRIX
      58160-0815-48TWINRIX
      58160-0815-52TWINRIX
      58160-0816-05Hiberix
      58160-0818-11Hiberix
      58160-0819-12Shingrix
      58160-0820-11ENGERIX-B
      58160-0820-52ENGERIX-B
      58160-0821-11ENGERIX-B
      58160-0821-34ENGERIX-B
      58160-0821-52ENGERIX-B
      58160-0823-11Shingrix
      58160-0825-11HAVRIX
      58160-0825-52HAVRIX
      58160-0826-11HAVRIX
      58160-0826-34HAVRIX
      58160-0826-52HAVRIX
      58160-0830-34CERVARIX
      58160-0830-52CERVARIX
      58160-0842-11BOOSTRIX
      58160-0842-34BOOSTRIX
      58160-0842-51BOOSTRIX
      58160-0842-52BOOSTRIX
      58160-0854-52ROTARIX
      58160-0879-52FLUARIX
      58160-0880-52FLUARIX
      58160-0881-52FLUARIX
      58160-0883-52FLUARIX
      58160-0898-52FLUARIX QUADRIVALENT
      58160-0900-52FLUARIX QUADRIVALENT
      58160-0901-52FLUARIX QUADRIVALENT
      58160-0903-52FLUARIX QUADRIVALENT
      58160-0905-52FLUARIX QUADRIVALENT
      58160-0907-52FLUARIX QUADRIVALENT
      58160-0955-09Menveo
      58160-0955-09Menveo
      58160-0964-12RabAvert
      58160-0964-12RabAvert
      58160-0976-06Bexsero
      58160-0976-20Bexsero
      62195-0051-10Ixiaro
      62577-0613-01Flucelvax
      62577-0614-01Flucelvax
      63851-0501-01RabAvert
      63851-0501-02RabAvert
      63851-0612-01Flucelvax
      63851-0613-01FLUCELVAX
      64678-0211-01BioThrax
      66019-0107-01FLUMIST
      66019-0108-10FLUMIST
      66019-0109-10FLUMIST
      66019-0110-10FluMist
      66019-0200-10Influenza A H1N1 Intranasal
      66019-0300-10FluMist Quadrivalent
      66019-0301-10FluMist Quadrivalent
      66019-0302-10FluMist Quadrivalent
      66019-0303-10FluMist Quadrivalent
      66019-0304-10FluMist Quadrivalent
      66019-0305-10FluMist Quadrivalent
      66521-0000-01FLUAD
      66521-0112-02Fluvirin
      66521-0112-10Fluvirin
      66521-0113-02FLUVIRIN
      66521-0113-10FLUVIRIN
      66521-0114-02FLUVIRIN
      66521-0114-10FLUVIRIN
      66521-0115-02FLUVIRIN
      66521-0115-10FLUVIRIN
      66521-0116-02Fluvirin
      66521-0116-10Fluvirin
      66521-0117-02Fluvirin
      66521-0117-10Fluvirin
      66521-0118-02Fluvirin
      66521-0118-10Fluvirin
      66521-0200-02Influenza A (H1N1) 2009 Monovalent Vaccine
      66521-0200-10Influenza A (H1N1) 2009 Monovalent Vaccine
      69401-0000-01Vivotif
      69401-0000-02Vivotif
      70460-0001-01Vaxchora
      70461-0001-01FLUAD
      70461-0002-01FLUAD
      70461-0018-03FLUAD
      70461-0119-02Fluvirin
      70461-0119-10Fluvirin
      70461-0120-02Fluvirin
      70461-0120-10Fluvirin
      70461-0200-01FLUCELVAX QUADRIVALENT
      70461-0201-01FLUCELVAX QUADRIVALENT (PREFILLED SYRINGE)
      70461-0301-10FLUCELVAX QUADRIVALENT (MULTI-DOSE VIAL)
      70461-0318-03FLUCELVAX QUADRIVALENT (PREFILLED SYRINGE)
      70461-0418-10FLUCELVAX QUADRIVALENT (MULTI-DOSE VIAL)
      76420-0482-01Medical Provider Single Use EZ Flu Shot 2013-2014
      76420-0483-01Medical Provider Single Use EZ Flu Shot 2013-2014
      63361-0245-10VAXELIS
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-ndc-vaccine-codes","version":"3.0.1","name":"USCoreVaccineNationalDrugCode","title":"US Core Vaccine National Drug Codes (NDC)","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","description":"This value set includes all the Vaccine National Drug Codes (NDC). This source of this data is provided by the [CDC](https://www2a.cdc.gov/vaccines/iis/iisstandards/ndc_crosswalk.asp)","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"purpose":"Codes that are used as translations for CVS code for implementation of the Argonaut Immunization IG and MU2015 certification.","compose":{"include":[{"system":"http://hl7.org/fhir/sid/ndc","concept":[{"code":"00005-0100-02","display":"Trumenba"},{"code":"00005-0100-05","display":"Trumenba"},{"code":"00005-0100-10","display":"Trumenba"},{"code":"00005-1970-50","display":"Prevnar"},{"code":"00005-1971-02","display":"PREVNAR 13"},{"code":"00005-1971-04","display":"PREVNAR 13"},{"code":"00005-1971-05","display":"PREVNAR 13"},{"code":"00006-4045-00","display":"GARDASIL"},{"code":"00006-4045-41","display":"GARDASIL"},{"code":"00006-4047-20","display":"RotaTeq"},{"code":"00006-4047-41","display":"RotaTeq"},{"code":"00006-4093-02","display":"RECOMBIVAX HB"},{"code":"00006-4093-09","display":"RECOMBIVAX HB"},{"code":"00006-4094-02","display":"RECOMBIVAX HB"},{"code":"00006-4094-09","display":"RECOMBIVAX HB"},{"code":"00006-4095-02","display":"VAQTA"},{"code":"00006-4095-09","display":"VAQTA"},{"code":"00006-4096-02","display":"VAQTA"},{"code":"00006-4096-09","display":"VAQTA"},{"code":"00006-4109-02","display":"GARDASIL"},{"code":"00006-4109-09","display":"GARDASIL"},{"code":"00006-4119-02","display":"GARDASIL 9"},{"code":"00006-4119-03","display":"GARDASIL 9"},{"code":"00006-4121-02","display":"GARDASIL 9"},{"code":"00006-4133-41","display":"Tetanus and Diphtheria Toxoids Adsorbed"},{"code":"00006-4171-00","display":"ProQuad"},{"code":"00006-4681-00","display":"M-M-R II"},{"code":"00006-4739-00","display":"PNEUMOVAX 23"},{"code":"00006-4826-00","display":"VARIVAX"},{"code":"00006-4827-00","display":"VARIVAX"},{"code":"00006-4831-41","display":"VAQTA"},{"code":"00006-4837-02","display":"PNEUMOVAX 23"},{"code":"00006-4837-03","display":"PNEUMOVAX 23"},{"code":"00006-4841-00","display":"VAQTA"},{"code":"00006-4841-41","display":"VAQTA"},{"code":"00006-4897-00","display":"PedvaxHIB"},{"code":"00006-4898-00","display":"COMVAX"},{"code":"00006-4943-00","display":"PNEUMOVAX 23"},{"code":"00006-4963-00","display":"ZOSTAVAX"},{"code":"00006-4963-41","display":"ZOSTAVAX"},{"code":"00006-4980-00","display":"RECOMBIVAX HB"},{"code":"00006-4981-00","display":"RECOMBIVAX HB"},{"code":"00006-4992-00","display":"RECOMBIVAX HB"},{"code":"00006-4995-00","display":"RECOMBIVAX HB"},{"code":"00006-4995-41","display":"RECOMBIVAX HB"},{"code":"00006-4999-00","display":"ProQuad"},{"code":"00052-0603-02","display":"BCG VACCINE"},{"code":"13533-0131-01","display":"Tetanus and Diphtheria Toxoids Adsorbed"},{"code":"14362-0111-04","display":"Tetanus and Diphtheria Toxoids Adsorbed"},{"code":"17478-0131-01","display":"Tetanus and Diphtheria Toxoids Adsorbed"},{"code":"19515-0845-11","display":"FLULAVAL"},{"code":"19515-0850-52","display":"FLULAVAL"},{"code":"19515-0889-07","display":"FLULAVAL"},{"code":"19515-0890-07","display":"FLULAVAL"},{"code":"19515-0891-11","display":"Flulaval Quadrivalent"},{"code":"19515-0893-07","display":"FLULAVAL"},{"code":"19515-0894-52","display":"Flulaval Quadrivalent"},{"code":"19515-0895-11","display":"Flulaval Quadrivalent"},{"code":"19515-0896-11","display":"Flulaval Quadrivalent"},{"code":"19515-0898-11","display":"Flulaval Quadrivalent"},{"code":"19515-0900-11","display":"Flulaval Quadrivalent"},{"code":"19515-0901-52","display":"Flulaval Quadrivalent"},{"code":"19515-0903-11","display":"Flulaval Quadrivalent"},{"code":"19515-0908-52","display":"Flulaval Quadrivalent"},{"code":"19515-0909-52","display":"Flulaval Quadrivalent"},{"code":"19515-0912-52","display":"Flulaval Quadrivalent"},{"code":"21695-0413-01","display":"Tetanus and Diphtheria Toxoids Adsorbed"},{"code":"33332-0010-01","display":"AFLURIA"},{"code":"33332-0013-01","display":"AFLURIA"},{"code":"33332-0014-01","display":"AFLURIA"},{"code":"33332-0015-01","display":"AFLURIA"},{"code":"33332-0016-01","display":"AFLURIA"},{"code":"33332-0017-01","display":"AFLURIA"},{"code":"33332-0018-01","display":"AFLURIA"},{"code":"33332-0110-10","display":"AFLURIA"},{"code":"33332-0113-10","display":"AFLURIA"},{"code":"33332-0114-10","display":"AFLURIA"},{"code":"33332-0115-10","display":"AFLURIA"},{"code":"33332-0116-10","display":"AFLURIA"},{"code":"33332-0117-10","display":"AFLURIA"},{"code":"33332-0118-10","display":"AFLURIA"},{"code":"33332-0316-01","display":"AFLURIA QUADRIVALENT"},{"code":"33332-0317-01","display":"AFLURIA QUADRIVALENT"},{"code":"33332-0318-01","display":"AFLURIA QUADRIVALENT"},{"code":"33332-0416-10","display":"AFLURIA QUADRIVALENT"},{"code":"33332-0417-10","display":"AFLURIA QUADRIVALENT"},{"code":"33332-0418-10","display":"AFLURIA QUADRIVALENT"},{"code":"33332-0519-01","display":"Influenza A"},{"code":"33332-0519-25","display":"Influenza A"},{"code":"33332-0629-10","display":"Influenza A"},{"code":"42515-0001-01","display":"IXIARO"},{"code":"42515-0001-01","display":"IXIARO"},{"code":"42515-0001-01","display":"IXIARO"},{"code":"42515-0001-01","display":"IXIARO"},{"code":"42515-0002-01","display":"IXIARO"},{"code":"42874-0012-10","display":"Flublok"},{"code":"42874-0013-10","display":"Flublok"},{"code":"42874-0014-10","display":"Flublok"},{"code":"42874-0015-10","display":"Flublok"},{"code":"42874-0016-10","display":"Flublok"},{"code":"42874-0017-10","display":"Flublok"},{"code":"42874-0117-10","display":"Flublok Quadrivalent"},{"code":"43528-0002-05","display":"HEPLISAV-B"},{"code":"43528-0003-05","display":"HEPLISAV-B"},{"code":"46028-0114-01","display":"Bexsero"},{"code":"46028-0114-02","display":"Bexsero"},{"code":"46028-0208-01","display":"Menveo"},{"code":"46028-0208-01","display":"Menveo"},{"code":"49281-0010-10","display":"FLUZONE"},{"code":"49281-0010-25","display":"FLUZONE"},{"code":"49281-0010-50","display":"FLUZONE"},{"code":"49281-0011-10","display":"FLUZONE"},{"code":"49281-0011-50","display":"FLUZONE"},{"code":"49281-0012-10","display":"FLUZONE"},{"code":"49281-0012-50","display":"FLUZONE"},{"code":"49281-0013-10","display":"FLUZONE"},{"code":"49281-0013-50","display":"FLUZONE"},{"code":"49281-0014-50","display":"FLUZONE"},{"code":"49281-0111-25","display":"FLUZONE"},{"code":"49281-0112-25","display":"FLUZONE"},{"code":"49281-0113-25","display":"FLUZONE"},{"code":"49281-0215-10","display":"TENIVAC"},{"code":"49281-0215-15","display":"TENIVAC"},{"code":"49281-0225-10","display":"DIPHTHERIA AND TETANUS TOXOIDS ADSORBED"},{"code":"49281-0250-51","display":"IMOVAX RABIES"},{"code":"49281-0278-10","display":"DIPHTHERIA AND TETANUS TOXOIDS ADSORBED"},{"code":"49281-0286-01","display":"DAPTACEL"},{"code":"49281-0286-05","display":"DAPTACEL"},{"code":"49281-0286-10","display":"DAPTACEL"},{"code":"49281-0291-10","display":"DECAVAC"},{"code":"49281-0291-83","display":"DECAVAC"},{"code":"49281-0298-10","display":"TRIPEDIA"},{"code":"49281-0386-15","display":"FLUZONE"},{"code":"49281-0387-65","display":"FLUZONE"},{"code":"49281-0388-15","display":"FLUZONE"},{"code":"49281-0389-65","display":"FLUZONE HIGH DOSE"},{"code":"49281-0390-15","display":"FLUZONE"},{"code":"49281-0391-65","display":"FLUZONE High-Dose"},{"code":"49281-0392-15","display":"FLUZONE"},{"code":"49281-0393-65","display":"FLUZONE High-Dose"},{"code":"49281-0394-15","display":"FLUZONE"},{"code":"49281-0395-65","display":"FLUZONE High-Dose"},{"code":"49281-0396-15","display":"FLUZONE"},{"code":"49281-0397-65","display":"FLUZONE High-Dose"},{"code":"49281-0399-65","display":"FLUZONE High-Dose"},{"code":"49281-0400-05","display":"Adacel"},{"code":"49281-0400-10","display":"Adacel"},{"code":"49281-0400-15","display":"Adacel"},{"code":"49281-0400-20","display":"Adacel"},{"code":"49281-0401-65","display":"FLUZONE High-Dose"},{"code":"49281-0403-65","display":"FLUZONE High-Dose"},{"code":"49281-0413-10","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0413-50","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0414-10","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0414-50","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0415-10","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0416-10","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0416-50","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0417-10","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0417-50","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0418-10","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0418-50","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0489-01","display":"MENOMUNE - A/C/Y/W-135 COMBINED"},{"code":"49281-0489-91","display":"MENOMUNE - A/C/Y/W-135 COMBINED"},{"code":"49281-0510-05","display":"PENTACEL"},{"code":"49281-0510-05","display":"PENTACEL"},{"code":"49281-0513-25","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0514-25","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0516-25","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0517-25","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0518-25","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0545-03","display":"ActHIB"},{"code":"49281-0545-05","display":"ActHIB"},{"code":"49281-0562-10","display":"QUADRACEL"},{"code":"49281-0589-05","display":"Menactra"},{"code":"49281-0621-15","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0625-15","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0627-15","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0629-15","display":"FLUZONE QUADRIVALENT"},{"code":"49281-0640-15","display":"INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE"},{"code":"49281-0650-10","display":"INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE"},{"code":"49281-0650-25","display":"INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE"},{"code":"49281-0650-50","display":"INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE"},{"code":"49281-0650-70","display":"INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE"},{"code":"49281-0650-90","display":"INFLUENZA A (H1N1) 2009 MONOVALENT VACCINE"},{"code":"49281-0703-55","display":"FLUZONE INTRADERMAL"},{"code":"49281-0705-55","display":"FLUZONE"},{"code":"49281-0707-55","display":"FLUZONE"},{"code":"49281-0708-40","display":"FLUZONE INTRADERMAL QUADRIVALENT"},{"code":"49281-0709-55","display":"FLUZONE Intradermal"},{"code":"49281-0710-40","display":"FLUZONE INTRADERMAL QUADRIVALENT"},{"code":"49281-0712-40","display":"FLUZONE INTRADERMAL QUADRIVALENT"},{"code":"49281-0718-10","display":"Flublok Quadrivalent"},{"code":"49281-0790-20","display":"Typhim Vi"},{"code":"49281-0790-51","display":"Typhim Vi"},{"code":"49281-0800-83","display":"TETANUS TOXOID ADSORBED"},{"code":"49281-0820-10","display":"TETANUS TOXOID ADSORBED"},{"code":"49281-0860-10","display":"IPOL"},{"code":"49281-0860-10","display":"IPOL"},{"code":"49281-0860-55","display":"IPOL"},{"code":"49281-0913-01","display":"STAMARIL"},{"code":"49281-0915-01","display":"YF-VAX"},{"code":"49281-0915-05","display":"YF-VAX"},{"code":"50090-1693-09","display":"IPOL"},{"code":"50090-2883-00","display":"INFANRIX"},{"code":"50090-3096-00","display":"RabAvert"},{"code":"50090-3469-00","display":"HEPLISAV-B"},{"code":"51285-0138-50","display":"Adenovirus Type 4 and Type 7 Vaccine, Live"},{"code":"51285-0138-50","display":"Adenovirus Type 4 and Type 7 Vaccine, Live"},{"code":"54868-0734-00","display":"ENGERIX-B"},{"code":"54868-0980-00","display":"M-M-R II"},{"code":"54868-2219-00","display":"RECOMBIVAX HB"},{"code":"54868-2219-01","display":"RECOMBIVAX HB"},{"code":"54868-3339-01","display":"PNEUMOVAX 23"},{"code":"54868-4320-00","display":"PNEUMOVAX 23"},{"code":"54868-6177-00","display":"FLUZONE"},{"code":"54868-6180-00","display":"FLUZONE"},{"code":"55045-3841-01","display":"HAVRIX"},{"code":"58160-0801-11","display":"Menhibrix"},{"code":"58160-0806-05","display":"HIBERIX"},{"code":"58160-0808-15","display":"Influenza A (H5N1) Monovalent Vaccine, Adjuvanted"},{"code":"58160-0808-15","display":"Influenza A (H5N1) Monovalent Vaccine, Adjuvanted"},{"code":"58160-0809-05","display":"MENHIBRIX"},{"code":"58160-0810-11","display":"INFANRIX"},{"code":"58160-0810-52","display":"INFANRIX"},{"code":"58160-0811-51","display":"PEDIARIX"},{"code":"58160-0811-52","display":"PEDIARIX"},{"code":"58160-0812-11","display":"KINRIX"},{"code":"58160-0812-52","display":"KINRIX"},{"code":"58160-0815-11","display":"TWINRIX"},{"code":"58160-0815-34","display":"TWINRIX"},{"code":"58160-0815-46","display":"TWINRIX"},{"code":"58160-0815-48","display":"TWINRIX"},{"code":"58160-0815-52","display":"TWINRIX"},{"code":"58160-0816-05","display":"Hiberix"},{"code":"58160-0818-11","display":"Hiberix"},{"code":"58160-0819-12","display":"Shingrix"},{"code":"58160-0820-11","display":"ENGERIX-B"},{"code":"58160-0820-52","display":"ENGERIX-B"},{"code":"58160-0821-11","display":"ENGERIX-B"},{"code":"58160-0821-34","display":"ENGERIX-B"},{"code":"58160-0821-52","display":"ENGERIX-B"},{"code":"58160-0823-11","display":"Shingrix"},{"code":"58160-0825-11","display":"HAVRIX"},{"code":"58160-0825-52","display":"HAVRIX"},{"code":"58160-0826-11","display":"HAVRIX"},{"code":"58160-0826-34","display":"HAVRIX"},{"code":"58160-0826-52","display":"HAVRIX"},{"code":"58160-0830-34","display":"CERVARIX"},{"code":"58160-0830-52","display":"CERVARIX"},{"code":"58160-0842-11","display":"BOOSTRIX"},{"code":"58160-0842-34","display":"BOOSTRIX"},{"code":"58160-0842-51","display":"BOOSTRIX"},{"code":"58160-0842-52","display":"BOOSTRIX"},{"code":"58160-0854-52","display":"ROTARIX"},{"code":"58160-0879-52","display":"FLUARIX"},{"code":"58160-0880-52","display":"FLUARIX"},{"code":"58160-0881-52","display":"FLUARIX"},{"code":"58160-0883-52","display":"FLUARIX"},{"code":"58160-0898-52","display":"FLUARIX QUADRIVALENT"},{"code":"58160-0900-52","display":"FLUARIX QUADRIVALENT"},{"code":"58160-0901-52","display":"FLUARIX QUADRIVALENT"},{"code":"58160-0903-52","display":"FLUARIX QUADRIVALENT"},{"code":"58160-0905-52","display":"FLUARIX QUADRIVALENT"},{"code":"58160-0907-52","display":"FLUARIX QUADRIVALENT"},{"code":"58160-0955-09","display":"Menveo"},{"code":"58160-0955-09","display":"Menveo"},{"code":"58160-0964-12","display":"RabAvert"},{"code":"58160-0964-12","display":"RabAvert"},{"code":"58160-0976-06","display":"Bexsero"},{"code":"58160-0976-20","display":"Bexsero"},{"code":"62195-0051-10","display":"Ixiaro"},{"code":"62577-0613-01","display":"Flucelvax"},{"code":"62577-0614-01","display":"Flucelvax"},{"code":"63851-0501-01","display":"RabAvert"},{"code":"63851-0501-02","display":"RabAvert"},{"code":"63851-0612-01","display":"Flucelvax"},{"code":"63851-0613-01","display":"FLUCELVAX"},{"code":"64678-0211-01","display":"BioThrax"},{"code":"66019-0107-01","display":"FLUMIST"},{"code":"66019-0108-10","display":"FLUMIST"},{"code":"66019-0109-10","display":"FLUMIST"},{"code":"66019-0110-10","display":"FluMist"},{"code":"66019-0200-10","display":"Influenza A H1N1 Intranasal"},{"code":"66019-0300-10","display":"FluMist Quadrivalent"},{"code":"66019-0301-10","display":"FluMist Quadrivalent"},{"code":"66019-0302-10","display":"FluMist Quadrivalent"},{"code":"66019-0303-10","display":"FluMist Quadrivalent"},{"code":"66019-0304-10","display":"FluMist Quadrivalent"},{"code":"66019-0305-10","display":"FluMist Quadrivalent"},{"code":"66521-0000-01","display":"FLUAD"},{"code":"66521-0112-02","display":"Fluvirin"},{"code":"66521-0112-10","display":"Fluvirin"},{"code":"66521-0113-02","display":"FLUVIRIN"},{"code":"66521-0113-10","display":"FLUVIRIN"},{"code":"66521-0114-02","display":"FLUVIRIN"},{"code":"66521-0114-10","display":"FLUVIRIN"},{"code":"66521-0115-02","display":"FLUVIRIN"},{"code":"66521-0115-10","display":"FLUVIRIN"},{"code":"66521-0116-02","display":"Fluvirin"},{"code":"66521-0116-10","display":"Fluvirin"},{"code":"66521-0117-02","display":"Fluvirin"},{"code":"66521-0117-10","display":"Fluvirin"},{"code":"66521-0118-02","display":"Fluvirin"},{"code":"66521-0118-10","display":"Fluvirin"},{"code":"66521-0200-02","display":"Influenza A (H1N1) 2009 Monovalent Vaccine"},{"code":"66521-0200-10","display":"Influenza A (H1N1) 2009 Monovalent Vaccine"},{"code":"69401-0000-01","display":"Vivotif"},{"code":"69401-0000-02","display":"Vivotif"},{"code":"70460-0001-01","display":"Vaxchora"},{"code":"70461-0001-01","display":"FLUAD"},{"code":"70461-0002-01","display":"FLUAD"},{"code":"70461-0018-03","display":"FLUAD"},{"code":"70461-0119-02","display":"Fluvirin"},{"code":"70461-0119-10","display":"Fluvirin"},{"code":"70461-0120-02","display":"Fluvirin"},{"code":"70461-0120-10","display":"Fluvirin"},{"code":"70461-0200-01","display":"FLUCELVAX QUADRIVALENT"},{"code":"70461-0201-01","display":"FLUCELVAX QUADRIVALENT (PREFILLED SYRINGE)"},{"code":"70461-0301-10","display":"FLUCELVAX QUADRIVALENT (MULTI-DOSE VIAL)"},{"code":"70461-0318-03","display":"FLUCELVAX QUADRIVALENT (PREFILLED SYRINGE)"},{"code":"70461-0418-10","display":"FLUCELVAX QUADRIVALENT (MULTI-DOSE VIAL)"},{"code":"76420-0482-01","display":"Medical Provider Single Use EZ Flu Shot 2013-2014"},{"code":"76420-0483-01","display":"Medical Provider Single Use EZ Flu Shot 2013-2014"},{"code":"63361-0245-10","display":"VAXELIS"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-observation-smoking-status-status.json b/resources/uscore_v3.0.1/ValueSet-us-core-observation-smoking-status-status.json new file mode 100644 index 000000000..08798c0fb --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-observation-smoking-status-status.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-observation-smoking-status-status","text":{"status":"generated","div":"

    US Core Status for Smoking Status Observation

    Codes providing the status of an observation for smoking status. Constrained to finaland entered-in-error.

    \n

    This value set includes codes from the following code systems:

    • Include these codes as defined in http://hl7.org/fhir/observation-status
      CodeDisplay
      finalFinalThe observation is complete and there are no further actions needed. Additional information such "released", "signed", etc would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied.
      entered-in-errorEntered in ErrorThe observation has been withdrawn following previous final release. This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be "cancelled" rather than "entered-in-error".).
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-observation-smoking-status-status","version":"3.0.1","name":"USCoreObservationSmokingStatusStatus","title":"US Core Status for Smoking Status Observation","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"Codes providing the status of an observation for smoking status. Constrained to `final`and `entered-in-error`.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"http://hl7.org/fhir/observation-status","concept":[{"code":"final"},{"code":"entered-in-error"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-observation-smokingstatus.json b/resources/uscore_v3.0.1/ValueSet-us-core-observation-smokingstatus.json new file mode 100644 index 000000000..ba56fc333 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-observation-smokingstatus.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-observation-smokingstatus","text":{"status":"generated","div":"

    US Core Smoking Status

    This value set indicates the current smoking status of a patient.

    \n

    Copyright Statement: This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-observation-smokingstatus","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113883.4.642.2.602"}],"version":"3.0.1","name":"USCoreSmokingStatus","title":"US Core Smoking Status","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"This value set indicates the current smoking status of a patient.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement","compose":{"include":[{"system":"http://snomed.info/sct","concept":[{"code":"449868002","display":"Current every day smoker"},{"code":"428041000124106","display":"Current some day smoker"},{"code":"8517006","display":"Former smoker"},{"code":"266919005","display":"Never smoker"},{"code":"77176002","display":"Smoker, current status unknown"},{"code":"266927001","display":"Unknown if ever smoked"},{"code":"428071000124103","display":"Current Heavy tobacco smoker"},{"code":"428061000124105","display":"Current Light tobacco smoker"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-observation-value-codes.json b/resources/uscore_v3.0.1/ValueSet-us-core-observation-value-codes.json new file mode 100644 index 000000000..f790ca695 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-observation-value-codes.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-observation-value-codes","text":{"status":"generated","div":"

    US Core Observation Value Codes (SNOMED-CT)

    Snomed-CT concept codes for coded results

    \n

    Copyright Statement: This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-observation-value-codes","version":"3.0.1","name":"USCoreObservationValueCodes","title":"US Core Observation Value Codes (SNOMED-CT)","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"},{"system":"email","value":"fhir@lists.hl7.org"}]}],"description":"[Snomed-CT](http://www.ihtsdo.org/) concept codes for coded results","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement","compose":{"include":[{"system":"http://snomed.info/sct"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-problem.json b/resources/uscore_v3.0.1/ValueSet-us-core-problem.json new file mode 100644 index 000000000..3d7d757c3 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-problem.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-problem","text":{"status":"generated","div":"
    \n\t\t\t

    Problem Value Set

    \n\t\t\t

    This describes the problem. Diagnosis/Problem List is broadly defined as a series of brief statements that catalog a patient's medical, nursing, dental, social, preventative and psychiatric events and issues that are relevant to that patient's healthcare (e.g., signs, symptoms, and defined conditions)

    \n\t\t\t

    \n\t\t\t\tCopyright Statement: This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement\n

    \n\t\t\t

    This value set includes codes from the following code systems:

    \n\t\t\t
      \n\t\t\t\t
    • No current problems or disability 160245001
    • \n\t\t\t\t
    • Include codes from http://snomed.info/sct where concept is-a 404684003
    • \n\t\t\t\t
    • Include codes from http://snomed.info/sct where concept is-a 243796009
    • \n\t\t\t
    \n\t\t
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-problem","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113883.3.88.12.3221.7.4"}],"version":"3.0.1","name":"USCoreProblem","title":"US Core Problem","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"This describes the problem. Diagnosis/Problem List is broadly defined as a series of brief statements that catalog a patient's medical, nursing, dental, social, preventative and psychiatric events and issues that are relevant to that patient's healthcare (e.g., signs, symptoms, and defined conditions)","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement","compose":{"include":[{"system":"http://snomed.info/sct","concept":[{"code":"160245001"}]},{"system":"http://snomed.info/sct","filter":[{"property":"concept","op":"is-a","value":"404684003"}]},{"system":"http://snomed.info/sct","filter":[{"property":"concept","op":"is-a","value":"243796009"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-procedure-code.json b/resources/uscore_v3.0.1/ValueSet-us-core-procedure-code.json new file mode 100644 index 000000000..87e012231 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-procedure-code.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-procedure-code","text":{"status":"generated","div":"

    US Core Procedure Codes

    This example value set defines a set of codes that can be used to indicate the type of procedure: a specific code indicating type of procedure performed, from CPT or SNOMED CT.

    \n

    Copyright Statement: CPT copyright 2014 American Medical Association. All rights reserved. This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement

    This value set includes codes from the following code systems:

    • Include all codes defined in http://www.ama-assn.org/go/cpt
    • Include codes from http://snomed.info/sct where concept is-a 71388002 (Procedure)
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113883.4.642.2.607"}],"version":"3.0.1","name":"USCoreProcedureCodes","title":"US Core Procedure Codes","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"This example value set defines a set of codes that can be used to indicate the type of procedure: a specific code indicating type of procedure performed, from CPT or SNOMED CT.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"CPT copyright 2014 American Medical Association. All rights reserved. This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement","compose":{"include":[{"system":"http://www.ama-assn.org/go/cpt"},{"system":"http://snomed.info/sct","filter":[{"property":"concept","op":"is-a","value":"71388002"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-procedure-icd10pcs.json b/resources/uscore_v3.0.1/ValueSet-us-core-procedure-icd10pcs.json new file mode 100644 index 000000000..038681b50 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-procedure-icd10pcs.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-procedure-icd10pcs","text":{"status":"generated","div":"

    US Core ICD-10-PCS Procedure Codes

    This value set defines a set of codes from ICD10-PCS that can be used to indicate a type of procedure performed

    \n

    Copyright Statement: The International Classification of Diseases, Tenth Revision, Procedure Coding System (ICD-10-PCS) was developed for the Centers for Medicare and Medicaid Services (CMS). CMS is the U.S. governmental agency responsible for overseeing all changes and modifications to the ICD-10-PCS.

    This value set includes codes from the following code systems:

    • Include all codes defined in http://www.icd10data.com/icd10pcs
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-icd10pcs","version":"3.0.1","name":"USCoreIcd_10PcsProcedureCodes","title":"US Core ICD-10-PCS Procedure Codes","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"This value set defines a set of codes from ICD10-PCS that can be used to indicate a type of procedure performed","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"The International Classification of Diseases, Tenth Revision, Procedure Coding System (ICD-10-PCS) was developed for the Centers for Medicare and Medicaid Services (CMS). CMS is the U.S. governmental agency responsible for overseeing all changes and modifications to the ICD-10-PCS.","compose":{"include":[{"system":"http://www.icd10data.com/icd10pcs"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-provenance-participant-type.json b/resources/uscore_v3.0.1/ValueSet-us-core-provenance-participant-type.json new file mode 100644 index 000000000..ac95a09b6 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-provenance-participant-type.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-provenance-participant-type","text":{"status":"generated","div":"

    US Core Provenance Participant Type Codes

    The type of participation a provenance agent played for a given target.

    \n

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-provenance-participant-type","version":"3.0.1","name":"USCoreProvenancePaticipantTypeCodes","title":"US Core Provenance Participant Type Codes","status":"active","date":"2019-08-28T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","description":"The type of participation a provenance agent played for a given target.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"purpose":"So API consumers can identify the provenance participant type.","compose":{"include":[{"system":"http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type"},{"system":"http://terminology.hl7.org/CodeSystem/provenance-participant-type"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-provider-role.json b/resources/uscore_v3.0.1/ValueSet-us-core-provider-role.json new file mode 100644 index 000000000..e47b78ae1 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-provider-role.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-provider-role","text":{"status":"generated","div":"

    US Core Provider Role (NUCC)

    Provider roles codes which are composed of the NUCC Health Care Provider Taxonomy Code Set classification codes for providers. Only concepts with a classification and no specialization are included.

    \n

    Copyright Statement: This value set includes content from NUCC Health Care Provider Taxonomy Code Set for providers which is copyright © 2016+ American Medical Association. For commercial use, including sales or licensing, a license must be obtained.

    This value set includes codes from the following code systems:

    • Include these codes as defined in http://nucc.org/provider-taxonomy
      CodeDisplay
      101Y00000XCounselor
      102L00000XPsychoanalyst
      102X00000XPoetry Therapist
      103G00000XClinical Neuropsychologist
      103K00000XBehavior Analyst
      103T00000XPsychologist
      104100000XSocial Worker
      106E00000XAssistant Behavior Analyst
      106H00000XMarriage & Family Therapist
      106S00000XBehavior Technician
      111N00000XChiropractor
      122300000XDentist
      122400000XDenturist
      124Q00000XDental Hygienist
      125J00000XDental Therapist
      125K00000XAdvanced Practice Dental Therapist
      125Q00000XOral Medicinist
      126800000XDental Assistant
      126900000XDental Laboratory Technician
      132700000XDietary Manager
      133N00000XNutritionist
      133V00000XDietitian, Registered
      136A00000XDietetic Technician, Registered
      146D00000XPersonal Emergency Response Attendant
      146L00000XEmergency Medical Technician, Paramedic
      146M00000XEmergency Medical Technician, Intermediate
      146N00000XEmergency Medical Technician, Basic
      152W00000XOptometrist
      156F00000XTechnician/Technologist
      163W00000XRegistered Nurse
      164W00000XLicensed Practical Nurse
      164X00000XLicensed Vocational Nurse
      167G00000XLicensed Psychiatric Technician
      170100000XMedical Genetics, Ph.D. Medical Genetics
      170300000XGenetic Counselor, MS
      171000000XMilitary Health Care Provider
      171100000XAcupuncturist
      171M00000XCase Manager/Care Coordinator
      171R00000XInterpreter
      171W00000XContractor
      172A00000XDriver
      172M00000XMechanotherapist
      172P00000XNaprapath
      172V00000XCommunity Health Worker
      173000000XLegal Medicine
      173C00000XReflexologist
      173F00000XSleep Specialist, PhD
      174200000XMeals
      174400000XSpecialist
      174H00000XHealth Educator
      174M00000XVeterinarian
      174N00000XLactation Consultant, Non-RN
      174V00000XClinical Ethicist
      175F00000XNaturopath
      175L00000XHomeopath
      175M00000XMidwife, Lay
      175T00000XPeer Specialist
      176B00000XMidwife
      176P00000XFuneral Director
      177F00000XLodging
      183500000XPharmacist
      183700000XPharmacy Technician
      193200000XMulti-Specialty
      193400000XSingle Specialty
      202C00000XIndependent Medical Examiner
      202K00000XPhlebology
      204C00000XNeuromusculoskeletal Medicine, Sports Medicine
      204D00000XNeuromusculoskeletal Medicine & OMM
      204E00000XOral & Maxillofacial Surgery
      204F00000XTransplant Surgery
      204R00000XElectrodiagnostic Medicine
      207K00000XAllergy & Immunology
      207L00000XAnesthesiology
      207N00000XDermatology
      207P00000XEmergency Medicine
      207Q00000XFamily Medicine
      207R00000XInternal Medicine
      207T00000XNeurological Surgery
      207U00000XNuclear Medicine
      207V00000XObstetrics & Gynecology
      207W00000XOphthalmology
      207X00000XOrthopaedic Surgery
      207Y00000XOtolaryngology
      208000000XPediatrics
      208100000XPhysical Medicine & Rehabilitation
      208200000XPlastic Surgery
      208600000XSurgery
      208800000XUrology
      208C00000XColon & Rectal Surgery
      208D00000XGeneral Practice
      208G00000XThoracic Surgery (Cardiothoracic Vascular Surgery)
      208M00000XHospitalist
      208U00000XClinical Pharmacology
      209800000XLegal Medicine
      211D00000XAssistant, Podiatric
      213E00000XPodiatrist
      221700000XArt Therapist
      222Q00000XDevelopmental Therapist
      222Z00000XOrthotist
      224900000XMastectomy Fitter
      224L00000XPedorthist
      224P00000XProsthetist
      224Y00000XClinical Exercise Physiologist
      224Z00000XOccupational Therapy Assistant
      225000000XOrthotic Fitter
      225100000XPhysical Therapist
      225200000XPhysical Therapy Assistant
      225400000XRehabilitation Practitioner
      225500000XSpecialist/Technologist
      225600000XDance Therapist
      225700000XMassage Therapist
      225800000XRecreation Therapist
      225A00000XMusic Therapist
      225B00000XPulmonary Function Technologist
      225C00000XRehabilitation Counselor
      225X00000XOccupational Therapist
      226000000XRecreational Therapist Assistant
      226300000XKinesiotherapist
      227800000XRespiratory Therapist, Certified
      227900000XRespiratory Therapist, Registered
      229N00000XAnaplastologist
      231H00000XAudiologist
      235500000XSpecialist/Technologist
      235Z00000XSpeech-Language Pathologist
      237600000XAudiologist-Hearing Aid Fitter
      237700000XHearing Instrument Specialist
      242T00000XPerfusionist
      243U00000XRadiology Practitioner Assistant
      246Q00000XSpecialist/Technologist, Pathology
      246R00000XTechnician, Pathology
      246W00000XTechnician, Cardiology
      246X00000XSpecialist/Technologist Cardiovascular
      246Y00000XSpecialist/Technologist, Health Information
      246Z00000XSpecialist/Technologist, Other
      247000000XTechnician, Health Information
      247100000XRadiologic Technologist
      247200000XTechnician, Other
      251300000XLocal Education Agency (LEA)
      251B00000XCase Management
      251C00000XDay Training, Developmentally Disabled Services
      251E00000XHome Health
      251F00000XHome Infusion
      251G00000XHospice Care, Community Based
      251J00000XNursing Care
      251K00000XPublic Health or Welfare
      251S00000XCommunity/Behavioral Health
      251T00000XProgram of All-Inclusive Care for the Elderly (PACE) Provider Organization
      251V00000XVoluntary or Charitable
      251X00000XSupports Brokerage
      252Y00000XEarly Intervention Provider Agency
      253J00000XFoster Care Agency
      253Z00000XIn Home Supportive Care
      261Q00000XClinic/Center
      273100000XEpilepsy Unit
      273R00000XPsychiatric Unit
      273Y00000XRehabilitation Unit
      275N00000XMedicare Defined Swing Bed Unit
      276400000XRehabilitation, Substance Use Disorder Unit
      281P00000XChronic Disease Hospital
      282E00000XLong Term Care Hospital
      282J00000XReligious Nonmedical Health Care Institution
      282N00000XGeneral Acute Care Hospital
      283Q00000XPsychiatric Hospital
      283X00000XRehabilitation Hospital
      284300000XSpecial Hospital
      286500000XMilitary Hospital
      287300000XChristian Science Sanitorium
      291900000XMilitary Clinical Medical Laboratory
      291U00000XClinical Medical Laboratory
      292200000XDental Laboratory
      293D00000XPhysiological Laboratory
      302F00000XExclusive Provider Organization
      302R00000XHealth Maintenance Organization
      305R00000XPreferred Provider Organization
      305S00000XPoint of Service
      310400000XAssisted Living Facility
      310500000XIntermediate Care Facility, Mental Illness
      311500000XAlzheimer Center (Dementia Center)
      311Z00000XCustodial Care Facility
      313M00000XNursing Facility/Intermediate Care Facility
      314000000XSkilled Nursing Facility
      315D00000XHospice, Inpatient
      315P00000XIntermediate Care Facility, Mentally Retarded
      317400000XChristian Science Facility
      320600000XResidential Treatment Facility, Mental Retardation and/or Developmental Disabilities
      320700000XResidential Treatment Facility, Physical Disabilities
      320800000XCommunity Based Residential Treatment Facility, Mental Illness
      320900000XCommunity Based Residential Treatment Facility, Mental Retardation and/or Developmental Disabilities
      322D00000XResidential Treatment Facility, Emotionally Disturbed Children
      323P00000XPsychiatric Residential Treatment Facility
      324500000XSubstance Abuse Rehabilitation Facility
      331L00000XBlood Bank
      332000000XMilitary/U.S. Coast Guard Pharmacy
      332100000XDepartment of Veterans Affairs (VA) Pharmacy
      332800000XIndian Health Service/Tribal/Urban Indian Health (I/T/U) Pharmacy
      332900000XNon-Pharmacy Dispensing Site
      332B00000XDurable Medical Equipment & Medical Supplies
      332G00000XEye Bank
      332H00000XEyewear Supplier
      332S00000XHearing Aid Equipment
      332U00000XHome Delivered Meals
      333300000XEmergency Response System Companies
      333600000XPharmacy
      335E00000XProsthetic/Orthotic Supplier
      335G00000XMedical Foods Supplier
      335U00000XOrgan Procurement Organization
      335V00000XPortable X-ray and/or Other Portable Diagnostic Imaging Supplier
      341600000XAmbulance
      341800000XMilitary/U.S. Coast Guard Transport
      343800000XSecured Medical Transport (VAN)
      343900000XNon-emergency Medical Transport (VAN)
      344600000XTaxi
      344800000XAir Carrier
      347B00000XBus
      347C00000XPrivate Vehicle
      347D00000XTrain
      347E00000XTransportation Broker
      363A00000XPhysician Assistant
      363L00000XNurse Practitioner
      364S00000XClinical Nurse Specialist
      367500000XNurse Anesthetist, Certified Registered
      367A00000XAdvanced Practice Midwife
      367H00000XAnesthesiologist Assistant
      372500000XChore Provider
      372600000XAdult Companion
      373H00000XDay Training/Habilitation Specialist
      374700000XTechnician
      374J00000XDoula
      374K00000XReligious Nonmedical Practitioner
      374T00000XReligious Nonmedical Nursing Personnel
      374U00000XHome Health Aide
      376G00000XNursing Home Administrator
      376J00000XHomemaker
      376K00000XNurse's Aide
      385H00000XRespite Care
      390200000XStudent in an Organized Health Care Education/Training Program
      405300000XPrevention Professional
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-provider-role","version":"3.0.1","name":"USCoreProviderRoleNucc","title":"US Core Provider Role (NUCC)","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"Provider roles codes which are composed of the NUCC Health Care Provider Taxonomy Code Set classification codes for providers. Only concepts with a classification and no specialization are included. ","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This value set includes content from NUCC Health Care Provider Taxonomy Code Set for providers which is copyright © 2016+ American Medical Association. For commercial use, including sales or licensing, a license must be obtained.","compose":{"include":[{"system":"http://nucc.org/provider-taxonomy","concept":[{"code":"101Y00000X","display":"Counselor"},{"code":"102L00000X","display":"Psychoanalyst"},{"code":"102X00000X","display":"Poetry Therapist"},{"code":"103G00000X","display":"Clinical Neuropsychologist"},{"code":"103K00000X","display":"Behavior Analyst"},{"code":"103T00000X","display":"Psychologist"},{"code":"104100000X","display":"Social Worker"},{"code":"106E00000X","display":"Assistant Behavior Analyst"},{"code":"106H00000X","display":"Marriage & Family Therapist"},{"code":"106S00000X","display":"Behavior Technician"},{"code":"111N00000X","display":"Chiropractor"},{"code":"122300000X","display":"Dentist"},{"code":"122400000X","display":"Denturist"},{"code":"124Q00000X","display":"Dental Hygienist"},{"code":"125J00000X","display":"Dental Therapist"},{"code":"125K00000X","display":"Advanced Practice Dental Therapist"},{"code":"125Q00000X","display":"Oral Medicinist"},{"code":"126800000X","display":"Dental Assistant"},{"code":"126900000X","display":"Dental Laboratory Technician"},{"code":"132700000X","display":"Dietary Manager"},{"code":"133N00000X","display":"Nutritionist"},{"code":"133V00000X","display":"Dietitian, Registered"},{"code":"136A00000X","display":"Dietetic Technician, Registered"},{"code":"146D00000X","display":"Personal Emergency Response Attendant"},{"code":"146L00000X","display":"Emergency Medical Technician, Paramedic"},{"code":"146M00000X","display":"Emergency Medical Technician, Intermediate"},{"code":"146N00000X","display":"Emergency Medical Technician, Basic"},{"code":"152W00000X","display":"Optometrist"},{"code":"156F00000X","display":"Technician/Technologist"},{"code":"163W00000X","display":"Registered Nurse"},{"code":"164W00000X","display":"Licensed Practical Nurse"},{"code":"164X00000X","display":"Licensed Vocational Nurse"},{"code":"167G00000X","display":"Licensed Psychiatric Technician"},{"code":"170100000X","display":"Medical Genetics, Ph.D. Medical Genetics"},{"code":"170300000X","display":"Genetic Counselor, MS"},{"code":"171000000X","display":"Military Health Care Provider"},{"code":"171100000X","display":"Acupuncturist"},{"code":"171M00000X","display":"Case Manager/Care Coordinator"},{"code":"171R00000X","display":"Interpreter"},{"code":"171W00000X","display":"Contractor"},{"code":"172A00000X","display":"Driver"},{"code":"172M00000X","display":"Mechanotherapist"},{"code":"172P00000X","display":"Naprapath"},{"code":"172V00000X","display":"Community Health Worker"},{"code":"173000000X","display":"Legal Medicine"},{"code":"173C00000X","display":"Reflexologist"},{"code":"173F00000X","display":"Sleep Specialist, PhD"},{"code":"174200000X","display":"Meals"},{"code":"174400000X","display":"Specialist"},{"code":"174H00000X","display":"Health Educator"},{"code":"174M00000X","display":"Veterinarian"},{"code":"174N00000X","display":"Lactation Consultant, Non-RN"},{"code":"174V00000X","display":"Clinical Ethicist"},{"code":"175F00000X","display":"Naturopath"},{"code":"175L00000X","display":"Homeopath"},{"code":"175M00000X","display":"Midwife, Lay"},{"code":"175T00000X","display":"Peer Specialist"},{"code":"176B00000X","display":"Midwife"},{"code":"176P00000X","display":"Funeral Director"},{"code":"177F00000X","display":"Lodging"},{"code":"183500000X","display":"Pharmacist"},{"code":"183700000X","display":"Pharmacy Technician"},{"code":"193200000X","display":"Multi-Specialty"},{"code":"193400000X","display":"Single Specialty"},{"code":"202C00000X","display":"Independent Medical Examiner"},{"code":"202K00000X","display":"Phlebology"},{"code":"204C00000X","display":"Neuromusculoskeletal Medicine, Sports Medicine"},{"code":"204D00000X","display":"Neuromusculoskeletal Medicine & OMM"},{"code":"204E00000X","display":"Oral & Maxillofacial Surgery"},{"code":"204F00000X","display":"Transplant Surgery"},{"code":"204R00000X","display":"Electrodiagnostic Medicine"},{"code":"207K00000X","display":"Allergy & Immunology"},{"code":"207L00000X","display":"Anesthesiology"},{"code":"207N00000X","display":"Dermatology"},{"code":"207P00000X","display":"Emergency Medicine"},{"code":"207Q00000X","display":"Family Medicine"},{"code":"207R00000X","display":"Internal Medicine"},{"code":"207T00000X","display":"Neurological Surgery"},{"code":"207U00000X","display":"Nuclear Medicine"},{"code":"207V00000X","display":"Obstetrics & Gynecology"},{"code":"207W00000X","display":"Ophthalmology"},{"code":"207X00000X","display":"Orthopaedic Surgery"},{"code":"207Y00000X","display":"Otolaryngology"},{"code":"208000000X","display":"Pediatrics"},{"code":"208100000X","display":"Physical Medicine & Rehabilitation"},{"code":"208200000X","display":"Plastic Surgery"},{"code":"208600000X","display":"Surgery"},{"code":"208800000X","display":"Urology"},{"code":"208C00000X","display":"Colon & Rectal Surgery"},{"code":"208D00000X","display":"General Practice"},{"code":"208G00000X","display":"Thoracic Surgery (Cardiothoracic Vascular Surgery)"},{"code":"208M00000X","display":"Hospitalist"},{"code":"208U00000X","display":"Clinical Pharmacology"},{"code":"209800000X","display":"Legal Medicine"},{"code":"211D00000X","display":"Assistant, Podiatric"},{"code":"213E00000X","display":"Podiatrist"},{"code":"221700000X","display":"Art Therapist"},{"code":"222Q00000X","display":"Developmental Therapist"},{"code":"222Z00000X","display":"Orthotist"},{"code":"224900000X","display":"Mastectomy Fitter"},{"code":"224L00000X","display":"Pedorthist"},{"code":"224P00000X","display":"Prosthetist"},{"code":"224Y00000X","display":"Clinical Exercise Physiologist"},{"code":"224Z00000X","display":"Occupational Therapy Assistant"},{"code":"225000000X","display":"Orthotic Fitter"},{"code":"225100000X","display":"Physical Therapist"},{"code":"225200000X","display":"Physical Therapy Assistant"},{"code":"225400000X","display":"Rehabilitation Practitioner"},{"code":"225500000X","display":"Specialist/Technologist"},{"code":"225600000X","display":"Dance Therapist"},{"code":"225700000X","display":"Massage Therapist"},{"code":"225800000X","display":"Recreation Therapist"},{"code":"225A00000X","display":"Music Therapist"},{"code":"225B00000X","display":"Pulmonary Function Technologist"},{"code":"225C00000X","display":"Rehabilitation Counselor"},{"code":"225X00000X","display":"Occupational Therapist"},{"code":"226000000X","display":"Recreational Therapist Assistant"},{"code":"226300000X","display":"Kinesiotherapist"},{"code":"227800000X","display":"Respiratory Therapist, Certified"},{"code":"227900000X","display":"Respiratory Therapist, Registered"},{"code":"229N00000X","display":"Anaplastologist"},{"code":"231H00000X","display":"Audiologist"},{"code":"235500000X","display":"Specialist/Technologist"},{"code":"235Z00000X","display":"Speech-Language Pathologist"},{"code":"237600000X","display":"Audiologist-Hearing Aid Fitter"},{"code":"237700000X","display":"Hearing Instrument Specialist"},{"code":"242T00000X","display":"Perfusionist"},{"code":"243U00000X","display":"Radiology Practitioner Assistant"},{"code":"246Q00000X","display":"Specialist/Technologist, Pathology"},{"code":"246R00000X","display":"Technician, Pathology"},{"code":"246W00000X","display":"Technician, Cardiology"},{"code":"246X00000X","display":"Specialist/Technologist Cardiovascular"},{"code":"246Y00000X","display":"Specialist/Technologist, Health Information"},{"code":"246Z00000X","display":"Specialist/Technologist, Other"},{"code":"247000000X","display":"Technician, Health Information"},{"code":"247100000X","display":"Radiologic Technologist"},{"code":"247200000X","display":"Technician, Other"},{"code":"251300000X","display":"Local Education Agency (LEA)"},{"code":"251B00000X","display":"Case Management"},{"code":"251C00000X","display":"Day Training, Developmentally Disabled Services"},{"code":"251E00000X","display":"Home Health"},{"code":"251F00000X","display":"Home Infusion"},{"code":"251G00000X","display":"Hospice Care, Community Based"},{"code":"251J00000X","display":"Nursing Care"},{"code":"251K00000X","display":"Public Health or Welfare"},{"code":"251S00000X","display":"Community/Behavioral Health"},{"code":"251T00000X","display":"Program of All-Inclusive Care for the Elderly (PACE) Provider Organization"},{"code":"251V00000X","display":"Voluntary or Charitable"},{"code":"251X00000X","display":"Supports Brokerage"},{"code":"252Y00000X","display":"Early Intervention Provider Agency"},{"code":"253J00000X","display":"Foster Care Agency"},{"code":"253Z00000X","display":"In Home Supportive Care"},{"code":"261Q00000X","display":"Clinic/Center"},{"code":"273100000X","display":"Epilepsy Unit"},{"code":"273R00000X","display":"Psychiatric Unit"},{"code":"273Y00000X","display":"Rehabilitation Unit"},{"code":"275N00000X","display":"Medicare Defined Swing Bed Unit"},{"code":"276400000X","display":"Rehabilitation, Substance Use Disorder Unit"},{"code":"281P00000X","display":"Chronic Disease Hospital"},{"code":"282E00000X","display":"Long Term Care Hospital"},{"code":"282J00000X","display":"Religious Nonmedical Health Care Institution"},{"code":"282N00000X","display":"General Acute Care Hospital"},{"code":"283Q00000X","display":"Psychiatric Hospital"},{"code":"283X00000X","display":"Rehabilitation Hospital"},{"code":"284300000X","display":"Special Hospital"},{"code":"286500000X","display":"Military Hospital"},{"code":"287300000X","display":"Christian Science Sanitorium"},{"code":"291900000X","display":"Military Clinical Medical Laboratory"},{"code":"291U00000X","display":"Clinical Medical Laboratory"},{"code":"292200000X","display":"Dental Laboratory"},{"code":"293D00000X","display":"Physiological Laboratory"},{"code":"302F00000X","display":"Exclusive Provider Organization"},{"code":"302R00000X","display":"Health Maintenance Organization"},{"code":"305R00000X","display":"Preferred Provider Organization"},{"code":"305S00000X","display":"Point of Service"},{"code":"310400000X","display":"Assisted Living Facility"},{"code":"310500000X","display":"Intermediate Care Facility, Mental Illness"},{"code":"311500000X","display":"Alzheimer Center (Dementia Center)"},{"code":"311Z00000X","display":"Custodial Care Facility"},{"code":"313M00000X","display":"Nursing Facility/Intermediate Care Facility"},{"code":"314000000X","display":"Skilled Nursing Facility"},{"code":"315D00000X","display":"Hospice, Inpatient"},{"code":"315P00000X","display":"Intermediate Care Facility, Mentally Retarded"},{"code":"317400000X","display":"Christian Science Facility"},{"code":"320600000X","display":"Residential Treatment Facility, Mental Retardation and/or Developmental Disabilities"},{"code":"320700000X","display":"Residential Treatment Facility, Physical Disabilities"},{"code":"320800000X","display":"Community Based Residential Treatment Facility, Mental Illness"},{"code":"320900000X","display":"Community Based Residential Treatment Facility, Mental Retardation and/or Developmental Disabilities"},{"code":"322D00000X","display":"Residential Treatment Facility, Emotionally Disturbed Children"},{"code":"323P00000X","display":"Psychiatric Residential Treatment Facility"},{"code":"324500000X","display":"Substance Abuse Rehabilitation Facility"},{"code":"331L00000X","display":"Blood Bank"},{"code":"332000000X","display":"Military/U.S. Coast Guard Pharmacy"},{"code":"332100000X","display":"Department of Veterans Affairs (VA) Pharmacy"},{"code":"332800000X","display":"Indian Health Service/Tribal/Urban Indian Health (I/T/U) Pharmacy"},{"code":"332900000X","display":"Non-Pharmacy Dispensing Site"},{"code":"332B00000X","display":"Durable Medical Equipment & Medical Supplies"},{"code":"332G00000X","display":"Eye Bank"},{"code":"332H00000X","display":"Eyewear Supplier"},{"code":"332S00000X","display":"Hearing Aid Equipment"},{"code":"332U00000X","display":"Home Delivered Meals"},{"code":"333300000X","display":"Emergency Response System Companies"},{"code":"333600000X","display":"Pharmacy"},{"code":"335E00000X","display":"Prosthetic/Orthotic Supplier"},{"code":"335G00000X","display":"Medical Foods Supplier"},{"code":"335U00000X","display":"Organ Procurement Organization"},{"code":"335V00000X","display":"Portable X-ray and/or Other Portable Diagnostic Imaging Supplier"},{"code":"341600000X","display":"Ambulance"},{"code":"341800000X","display":"Military/U.S. Coast Guard Transport"},{"code":"343800000X","display":"Secured Medical Transport (VAN)"},{"code":"343900000X","display":"Non-emergency Medical Transport (VAN)"},{"code":"344600000X","display":"Taxi"},{"code":"344800000X","display":"Air Carrier"},{"code":"347B00000X","display":"Bus"},{"code":"347C00000X","display":"Private Vehicle"},{"code":"347D00000X","display":"Train"},{"code":"347E00000X","display":"Transportation Broker"},{"code":"363A00000X","display":"Physician Assistant"},{"code":"363L00000X","display":"Nurse Practitioner"},{"code":"364S00000X","display":"Clinical Nurse Specialist"},{"code":"367500000X","display":"Nurse Anesthetist, Certified Registered"},{"code":"367A00000X","display":"Advanced Practice Midwife"},{"code":"367H00000X","display":"Anesthesiologist Assistant"},{"code":"372500000X","display":"Chore Provider"},{"code":"372600000X","display":"Adult Companion"},{"code":"373H00000X","display":"Day Training/Habilitation Specialist"},{"code":"374700000X","display":"Technician"},{"code":"374J00000X","display":"Doula"},{"code":"374K00000X","display":"Religious Nonmedical Practitioner"},{"code":"374T00000X","display":"Religious Nonmedical Nursing Personnel"},{"code":"374U00000X","display":"Home Health Aide"},{"code":"376G00000X","display":"Nursing Home Administrator"},{"code":"376J00000X","display":"Homemaker"},{"code":"376K00000X","display":"Nurse's Aide"},{"code":"385H00000X","display":"Respite Care"},{"code":"390200000X","display":"Student in an Organized Health Care Education/Training Program"},{"code":"405300000X","display":"Prevention Professional"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-provider-specialty.json b/resources/uscore_v3.0.1/ValueSet-us-core-provider-specialty.json new file mode 100644 index 000000000..bc8a27f8c --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-provider-specialty.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-provider-specialty","text":{"status":"generated","div":"

    US Core Provider Speciality (NUCC)

    Provider speciality roles codes which are composed of the NUCC Health Care Provider Taxonomy Code Set for providers

    \n

    Copyright Statement: This value set includes content from NUCC Health Care Provider Taxonomy Code Set for providers which is copyright © 2016+ American Medical Association. For commercial use, including sales or licensing, a license must be obtained.

    This value set includes codes from the following code systems:

    • Include all codes defined in http://nucc.org/provider-taxonomy
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-provider-specialty","version":"3.0.1","name":"USCoreProviderSpecialityNucc","title":"US Core Provider Speciality (NUCC)","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"Provider speciality roles codes which are composed of the NUCC Health Care Provider Taxonomy Code Set for providers","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"This value set includes content from NUCC Health Care Provider Taxonomy Code Set for providers which is copyright © 2016+ American Medical Association. For commercial use, including sales or licensing, a license must be obtained.","compose":{"include":[{"system":"http://nucc.org/provider-taxonomy"}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-smoking-status-observation-codes.json b/resources/uscore_v3.0.1/ValueSet-us-core-smoking-status-observation-codes.json new file mode 100644 index 000000000..8ef2856e2 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-smoking-status-observation-codes.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-smoking-status-observation-codes","text":{"status":"generated","div":"

    US Core Smoking Status Observation Codes

    The US Core Smoking Status Observation Codes Value Set is a 'starter set' of concepts to capture smoking status.

    \n

    This value set includes codes from the following code systems:

    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-smoking-status-observation-codes","version":"3.0.1","name":"USCoreSmokingStatusObservationCodes","title":"US Core Smoking Status Observation Codes","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"The US Core Smoking Status Observation Codes Value Set is a 'starter set' of concepts to capture smoking status.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"http://loinc.org","concept":[{"code":"72166-2","display":"Tobacco smoking status NHIS"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-usps-state.json b/resources/uscore_v3.0.1/ValueSet-us-core-usps-state.json new file mode 100644 index 000000000..7e7150f42 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-usps-state.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-usps-state","text":{"status":"generated","div":"

    USPS Two Letter Alphabetic Codes

    This value set defines two letter USPS alphabetic codes.

    \n

    Copyright Statement: On July 1, 1963, the Post Office Department implemented the five-digit ZIP Code, which was placed after the state name in the last line of an address. To provide room for the ZIP Code, the Department issued two-letter abbreviations for all states and territories. Publication 59, Abbreviations for Use with ZIP Code, issued by the Department in October 1963. Currently there is no copyright restriction on this value set.

    This value set includes codes from the following code systems:

    • Include these codes as defined in https://www.usps.com/
      CodeDisplay
      AKAlaska
      ALAlabama
      ARArkansas
      ASAmerican Samoa
      AZArizona
      CACalifornia
      COColorado
      CTConnecticut
      DCDistrict of Columbia
      DEDelaware
      FLFlorida
      FMFederated States of Micronesia
      GAGeorgia
      GUGuam
      HIHawaii
      IAIowa
      IDIdaho
      ILIllinois
      INIndiana
      KSKansas
      KYKentucky
      LALouisiana
      MAMassachusetts
      MDMaryland
      MEMaine
      MHMarshall Islands
      MIMichigan
      MNMinnesota
      MOMissouri
      MPNorthern Mariana Islands
      MSMississippi
      MTMontana
      NCNorth Carolina
      NDNorth Dakota
      NENebraska
      NHNew Hampshire
      NJNew Jersey
      NMNew Mexico
      NVNevada
      NYNew York
      OHOhio
      OKOklahoma
      OROregon
      PAPennsylvania
      PRPuerto Rico
      PWPalau
      RIRhode Island
      SCSouth Carolina
      SDSouth Dakota
      TNTennessee
      TXTexas
      UMU.S. Minor Outlying Islands
      UTUtah
      VAVirginia
      VIVirgin Islands of the U.S.
      VTVermont
      WAWashington
      WIWisconsin
      WVWest Virginia
      WYWyoming
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113883.4.642.3.40"}],"version":"3.0.1","name":"UspsTwoLetterAlphabeticCodes","title":"USPS Two Letter Alphabetic Codes","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"This value set defines two letter USPS alphabetic codes.","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"On July 1, 1963, the Post Office Department implemented the five-digit ZIP Code, which was placed after the state name in the last line of an address. To provide room for the ZIP Code, the Department issued two-letter abbreviations for all states and territories. Publication 59, Abbreviations for Use with ZIP Code, issued by the Department in October 1963. Currently there is no copyright restriction on this value set.","compose":{"include":[{"system":"https://www.usps.com/","concept":[{"code":"AK","display":"Alaska"},{"code":"AL","display":"Alabama"},{"code":"AR","display":"Arkansas"},{"code":"AS","display":"American Samoa"},{"code":"AZ","display":"Arizona"},{"code":"CA","display":"California"},{"code":"CO","display":"Colorado"},{"code":"CT","display":"Connecticut"},{"code":"DC","display":"District of Columbia"},{"code":"DE","display":"Delaware"},{"code":"FL","display":"Florida"},{"code":"FM","display":"Federated States of Micronesia"},{"code":"GA","display":"Georgia"},{"code":"GU","display":"Guam"},{"code":"HI","display":"Hawaii"},{"code":"IA","display":"Iowa"},{"code":"ID","display":"Idaho"},{"code":"IL","display":"Illinois"},{"code":"IN","display":"Indiana"},{"code":"KS","display":"Kansas"},{"code":"KY","display":"Kentucky"},{"code":"LA","display":"Louisiana"},{"code":"MA","display":"Massachusetts"},{"code":"MD","display":"Maryland"},{"code":"ME","display":"Maine"},{"code":"MH","display":"Marshall Islands"},{"code":"MI","display":"Michigan"},{"code":"MN","display":"Minnesota"},{"code":"MO","display":"Missouri"},{"code":"MP","display":"Northern Mariana Islands"},{"code":"MS","display":"Mississippi"},{"code":"MT","display":"Montana"},{"code":"NC","display":"North Carolina"},{"code":"ND","display":"North Dakota"},{"code":"NE","display":"Nebraska"},{"code":"NH","display":"New Hampshire"},{"code":"NJ","display":"New Jersey"},{"code":"NM","display":"New Mexico"},{"code":"NV","display":"Nevada"},{"code":"NY","display":"New York"},{"code":"OH","display":"Ohio"},{"code":"OK","display":"Oklahoma"},{"code":"OR","display":"Oregon"},{"code":"PA","display":"Pennsylvania"},{"code":"PR","display":"Puerto Rico"},{"code":"PW","display":"Palau"},{"code":"RI","display":"Rhode Island"},{"code":"SC","display":"South Carolina"},{"code":"SD","display":"South Dakota"},{"code":"TN","display":"Tennessee"},{"code":"TX","display":"Texas"},{"code":"UM","display":"U.S. Minor Outlying Islands"},{"code":"UT","display":"Utah"},{"code":"VA","display":"Virginia"},{"code":"VI","display":"Virgin Islands of the U.S."},{"code":"VT","display":"Vermont"},{"code":"WA","display":"Washington"},{"code":"WI","display":"Wisconsin"},{"code":"WV","display":"West Virginia"},{"code":"WY","display":"Wyoming"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ValueSet-us-core-vaccines-cvx.json b/resources/uscore_v3.0.1/ValueSet-us-core-vaccines-cvx.json new file mode 100644 index 000000000..c9c863886 --- /dev/null +++ b/resources/uscore_v3.0.1/ValueSet-us-core-vaccines-cvx.json @@ -0,0 +1 @@ +{"resourceType":"ValueSet","id":"us-core-vaccines-cvx","text":{"status":"generated","div":"

    US Core Vaccine Administered Value Set (CVX)

    This identifies the vaccine substance administered - CVX codes. Inclusion Criteria: Any CVX code with CVX 'status' (VSAC Property) = Active,Inactive, Non-US except those noted in exclusions. Exclusion Criteria: CVX codes that have a CVX 'status' of either Pending or Never Active AND CVX codes with CVX 'Nonvaccine' property = True. Available at http://www2a.cdc.gov/vaccines/iis/iisstandards/vaccines.asp?rpt=cvx

    \n

    This value set includes codes from the following code systems:

    • Include these codes as defined in http://hl7.org/fhir/sid/cvx
      CodeDisplay
      01diphtheria, tetanus toxoids and pertussis vaccine
      02trivalent poliovirus vaccine, live, oral
      03measles, mumps and rubella virus vaccine
      04measles and rubella virus vaccine
      05measles virus vaccine
      06rubella virus vaccine
      07mumps virus vaccine
      08hepatitis B vaccine, pediatric or pediatric/adolescent dosage
      09tetanus and diphtheria toxoids, adsorbed, preservative free, for adult use (2 Lf of tetanus toxoid and 2 Lf of diphtheria toxoid)
      10poliovirus vaccine, inactivated
      100pneumococcal conjugate vaccine, 7 valent
      101typhoid Vi capsular polysaccharide vaccine
      102DTP- Haemophilus influenzae type b conjugate and hepatitis b vaccine
      103meningococcal C conjugate vaccine
      104hepatitis A and hepatitis B vaccine
      105vaccinia (smallpox) vaccine, diluted
      106diphtheria, tetanus toxoids and acellular pertussis vaccine, 5 pertussis antigens
      107diphtheria, tetanus toxoids and acellular pertussis vaccine, unspecified formulation
      108meningococcal ACWY vaccine, unspecified formulation
      109pneumococcal vaccine, unspecified formulation
      11pertussis vaccine
      110DTaP-hepatitis B and poliovirus vaccine
      111influenza virus vaccine, live, attenuated, for intranasal use
      112tetanus toxoid, unspecified formulation
      113tetanus and diphtheria toxoids, adsorbed, preservative free, for adult use (5 Lf of tetanus toxoid and 2 Lf of diphtheria toxoid)
      114meningococcal polysaccharide (groups A, C, Y and W-135) diphtheria toxoid conjugate vaccine (MCV4P)
      115tetanus toxoid, reduced diphtheria toxoid, and acellular pertussis vaccine, adsorbed
      116rotavirus, live, pentavalent vaccine
      117varicella zoster immune globulin (Investigational New Drug)
      118human papilloma virus vaccine, bivalent
      119rotavirus, live, monovalent vaccine
      12diphtheria antitoxin
      120diphtheria, tetanus toxoids and acellular pertussis vaccine, Haemophilus influenzae type b conjugate, and poliovirus vaccine, inactivated (DTaP-Hib-IPV)
      121zoster vaccine, live
      122rotavirus vaccine, unspecified formulation
      123influenza virus vaccine, H5N1, A/Vietnam/1203/2004 (national stockpile)
      125Novel Influenza-H1N1-09, live virus for nasal administration
      126Novel influenza-H1N1-09, preservative-free, injectable
      127Novel influenza-H1N1-09, injectable
      128Novel influenza-H1N1-09, all formulations
      129Japanese Encephalitis vaccine, unspecified formulation
      13tetanus immune globulin
      130Diphtheria, tetanus toxoids and acellular pertussis vaccine, and poliovirus vaccine, inactivated
      131Historical record of a typhus vaccination
      132Historical diphtheria and tetanus toxoids and acellular pertussis, poliovirus, Haemophilus b conjugate and hepatitis B (recombinant) vaccine.
      133pneumococcal conjugate vaccine, 13 valent
      134Japanese Encephalitis vaccine for intramuscular administration
      135influenza, high dose seasonal, preservative-free
      136meningococcal oligosaccharide (groups A, C, Y and W-135) diphtheria toxoid conjugate vaccine (MCV4O)
      137HPV, unspecified formulation
      138tetanus and diphtheria toxoids, not adsorbed, for adult use
      139Td(adult) unspecified formulation
      14immune globulin, unspecified formulation
      140Influenza, seasonal, injectable, preservative free
      141Influenza, seasonal, injectable
      142tetanus toxoid, not adsorbed
      143Adenovirus, type 4 and type 7, live, oral
      144seasonal influenza, intradermal, preservative free
      147Meningococcal, MCV4, unspecified conjugate formulation(groups A, C, Y and W-135)
      148Meningococcal Groups C and Y and Haemophilus b Tetanus Toxoid Conjugate Vaccine
      149influenza, live, intranasal, quadrivalent
      15influenza virus vaccine, split virus (incl. purified surface antigen)-retired CODE
      150Influenza, injectable, quadrivalent, preservative free
      151influenza nasal, unspecified formulation
      152Pneumococcal Conjugate, unspecified formulation
      153Influenza, injectable, Madin Darby Canine Kidney, preservative free
      155Seasonal, trivalent, recombinant, injectable influenza vaccine, preservative free
      156Rho(D) Immune globulin- IV or IM
      157Rho(D) Immune globulin - IM
      158influenza, injectable, quadrivalent, contains preservative
      159Rho(D) Unspecified formulation
      16influenza virus vaccine, whole virus
      160Influenza A monovalent (H5N1), adjuvanted, National stockpile 2013
      161Influenza, injectable,quadrivalent, preservative free, pediatric
      162meningococcal B vaccine, fully recombinant
      163meningococcal B vaccine, recombinant, OMV, adjuvanted
      164meningococcal B, unspecified formulation
      165Human Papillomavirus 9-valent vaccine
      166influenza, intradermal, quadrivalent, preservative free, injectable
      167meningococcal vaccine of unknown formulation and unknown serogroups
      168Seasonal trivalent influenza vaccine, adjuvanted, preservative free
      169Hep A, live attenuated-IM
      17Haemophilus influenzae type b vaccine, conjugate unspecified formulation
      170non-US diphtheria, tetanus toxoids and acellular pertussis vaccine, Haemophilus influenzae type b conjugate, and poliovirus vaccine, inactivated (DTaP-Hib-IPV)
      171Influenza, injectable, Madin Darby Canine Kidney, preservative free, quadrivalent
      172cholera, WC-rBS
      173cholera, BivWC
      174cholera, live attenuated
      175Human Rabies vaccine from human diploid cell culture
      176Human rabies vaccine from Chicken fibroblast culture
      177pneumococcal conjugate vaccine, 10 valent
      178Non-US bivalent oral polio vaccine (types 1 and 3)
      179Non-US monovalent oral polio vaccine, unspecified formulation
      18rabies vaccine, for intramuscular injection RETIRED CODE
      180tetanus immune globulin
      181anthrax immune globulin
      182Oral Polio Vaccine, Unspecified formulation
      183Yellow fever vaccine alternative formulation
      184Yellow fever vaccine, unspecified formulation
      185Seasonal, quadrivalent, recombinant, injectable influenza vaccine, preservative free
      186Influenza, injectable, Madin Darby Canine Kidney, quadrivalent with preservative
      187zoster vaccine recombinant
      188zoster vaccine, unspecified formulation
      189Hepatitis B vaccine (recombinant), CpG adjuvanted
      19Bacillus Calmette-Guerin vaccine
      20diphtheria, tetanus toxoids and acellular pertussis vaccine
      21varicella virus vaccine
      22DTP-Haemophilus influenzae type b conjugate vaccine
      23plague vaccine
      24anthrax vaccine
      25typhoid vaccine, live, oral
      26cholera vaccine, unspecified formulation
      27botulinum antitoxin
      28diphtheria and tetanus toxoids, adsorbed for pediatric use
      29cytomegalovirus immune globulin, intravenous
      30hepatitis B immune globulin
      31hepatitis A vaccine, pediatric dosage, unspecified formulation
      32meningococcal polysaccharide vaccine (MPSV4)
      33pneumococcal polysaccharide vaccine, 23 valent
      34rabies immune globulin
      35tetanus toxoid, adsorbed
      36varicella zoster immune globulin
      37yellow fever vaccine
      38rubella and mumps virus vaccine
      39Japanese Encephalitis Vaccine SC
      40rabies vaccine, for intradermal injection
      41typhoid vaccine, parenteral, other than acetone-killed, dried
      42hepatitis B vaccine, adolescent/high risk infant dosage
      43hepatitis B vaccine, adult dosage
      44hepatitis B vaccine, dialysis patient dosage
      45hepatitis B vaccine, unspecified formulation
      46Haemophilus influenzae type b vaccine, PRP-D conjugate
      47Haemophilus influenzae type b vaccine, HbOC conjugate
      48Haemophilus influenzae type b vaccine, PRP-T conjugate
      49Haemophilus influenzae type b vaccine, PRP-OMP conjugate
      50DTaP-Haemophilus influenzae type b conjugate vaccine
      51Haemophilus influenzae type b conjugate and Hepatitis B vaccine
      52hepatitis A vaccine, adult dosage
      53typhoid vaccine, parenteral, acetone-killed, dried (U.S. military)
      54adenovirus vaccine, type 4, live, oral
      55adenovirus vaccine, type 7, live, oral
      62human papilloma virus vaccine, quadrivalent
      66Lyme disease vaccine
      69parainfluenza-3 virus vaccine
      71respiratory syncytial virus immune globulin, intravenous
      74rotavirus, live, tetravalent vaccine
      75vaccinia (smallpox) vaccine
      76Staphylococcus bacteriophage lysate
      77tick-borne encephalitis vaccine
      78tularemia vaccine
      79vaccinia immune globulin
      80Venezuelan equine encephalitis, live, attenuated
      801AS03 Adjuvant
      81Venezuelan equine encephalitis, inactivated
      82adenovirus vaccine, unspecified formulation
      83hepatitis A vaccine, pediatric/adolescent dosage, 2 dose schedule
      84hepatitis A vaccine, pediatric/adolescent dosage, 3 dose schedule
      85hepatitis A vaccine, unspecified formulation
      86immune globulin, intramuscular
      87immune globulin, intravenous
      88influenza virus vaccine, unspecified formulation
      89poliovirus vaccine, unspecified formulation
      90rabies vaccine, unspecified formulation
      91typhoid vaccine, unspecified formulation
      92Venezuelan equine encephalitis vaccine, unspecified formulation
      93respiratory syncytial virus monoclonal antibody (palivizumab), intramuscular
      94measles, mumps, rubella, and varicella virus vaccine
      95tuberculin skin test; old tuberculin, multipuncture device
      96tuberculin skin test; purified protein derivative solution, intradermal
      97tuberculin skin test; purified protein derivative, multipuncture device
      98tuberculin skin test; unspecified formulation
      998no vaccine administered
    "},"url":"http://hl7.org/fhir/us/core/ValueSet/us-core-vaccines-cvx","identifier":[{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113762.1.4.1010.6"},{"system":"urn:ietf:rfc:3986","value":"urn:oid:2.16.840.1.113883.3.88.12.80.22"}],"version":"3.0.1","name":"USCoreVaccineAdministeredValueSetCvx","title":"US Core Vaccine Administered Value Set (CVX)","status":"active","date":"2019-05-21T00:00:00+00:00","publisher":"HL7 US Realm Steering Committee","contact":[{"telecom":[{"system":"other","value":"http://hl7.org/fhir"}]}],"description":"This identifies the vaccine substance administered - CVX codes. **Inclusion Criteria:** Any CVX code with CVX 'status' (VSAC Property) = `Active`,` Inactive`, `Non-US` except those noted in exclusions. **Exclusion Criteria:** CVX codes that have a CVX 'status' of either `Pending` or `Never Active` AND CVX codes with CVX 'Nonvaccine' property = True. Available at http://www2a.cdc.gov/vaccines/iis/iisstandards/vaccines.asp?rpt=cvx","jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"compose":{"include":[{"system":"http://hl7.org/fhir/sid/cvx","concept":[{"code":"01","display":"diphtheria, tetanus toxoids and pertussis vaccine"},{"code":"02","display":"trivalent poliovirus vaccine, live, oral"},{"code":"03","display":"measles, mumps and rubella virus vaccine"},{"code":"04","display":"measles and rubella virus vaccine"},{"code":"05","display":"measles virus vaccine"},{"code":"06","display":"rubella virus vaccine"},{"code":"07","display":"mumps virus vaccine"},{"code":"08","display":"hepatitis B vaccine, pediatric or pediatric/adolescent dosage"},{"code":"09","display":"tetanus and diphtheria toxoids, adsorbed, preservative free, for adult use (2 Lf of tetanus toxoid and 2 Lf of diphtheria toxoid)"},{"code":"10","display":"poliovirus vaccine, inactivated"},{"code":"100","display":"pneumococcal conjugate vaccine, 7 valent"},{"code":"101","display":"typhoid Vi capsular polysaccharide vaccine"},{"code":"102","display":"DTP- Haemophilus influenzae type b conjugate and hepatitis b vaccine"},{"code":"103","display":"meningococcal C conjugate vaccine"},{"code":"104","display":"hepatitis A and hepatitis B vaccine"},{"code":"105","display":"vaccinia (smallpox) vaccine, diluted"},{"code":"106","display":"diphtheria, tetanus toxoids and acellular pertussis vaccine, 5 pertussis antigens"},{"code":"107","display":"diphtheria, tetanus toxoids and acellular pertussis vaccine, unspecified formulation"},{"code":"108","display":"meningococcal ACWY vaccine, unspecified formulation"},{"code":"109","display":"pneumococcal vaccine, unspecified formulation"},{"code":"11","display":"pertussis vaccine"},{"code":"110","display":"DTaP-hepatitis B and poliovirus vaccine"},{"code":"111","display":"influenza virus vaccine, live, attenuated, for intranasal use"},{"code":"112","display":"tetanus toxoid, unspecified formulation"},{"code":"113","display":"tetanus and diphtheria toxoids, adsorbed, preservative free, for adult use (5 Lf of tetanus toxoid and 2 Lf of diphtheria toxoid)"},{"code":"114","display":"meningococcal polysaccharide (groups A, C, Y and W-135) diphtheria toxoid conjugate vaccine (MCV4P)"},{"code":"115","display":"tetanus toxoid, reduced diphtheria toxoid, and acellular pertussis vaccine, adsorbed"},{"code":"116","display":"rotavirus, live, pentavalent vaccine"},{"code":"117","display":"varicella zoster immune globulin (Investigational New Drug)"},{"code":"118","display":"human papilloma virus vaccine, bivalent"},{"code":"119","display":"rotavirus, live, monovalent vaccine"},{"code":"12","display":"diphtheria antitoxin"},{"code":"120","display":"diphtheria, tetanus toxoids and acellular pertussis vaccine, Haemophilus influenzae type b conjugate, and poliovirus vaccine, inactivated (DTaP-Hib-IPV)"},{"code":"121","display":"zoster vaccine, live"},{"code":"122","display":"rotavirus vaccine, unspecified formulation"},{"code":"123","display":"influenza virus vaccine, H5N1, A/Vietnam/1203/2004 (national stockpile)"},{"code":"125","display":"Novel Influenza-H1N1-09, live virus for nasal administration"},{"code":"126","display":"Novel influenza-H1N1-09, preservative-free, injectable"},{"code":"127","display":"Novel influenza-H1N1-09, injectable"},{"code":"128","display":"Novel influenza-H1N1-09, all formulations"},{"code":"129","display":"Japanese Encephalitis vaccine, unspecified formulation"},{"code":"13","display":"tetanus immune globulin"},{"code":"130","display":"Diphtheria, tetanus toxoids and acellular pertussis vaccine, and poliovirus vaccine, inactivated"},{"code":"131","display":"Historical record of a typhus vaccination"},{"code":"132","display":"Historical diphtheria and tetanus toxoids and acellular pertussis, poliovirus, Haemophilus b conjugate and hepatitis B (recombinant) vaccine."},{"code":"133","display":"pneumococcal conjugate vaccine, 13 valent"},{"code":"134","display":"Japanese Encephalitis vaccine for intramuscular administration"},{"code":"135","display":"influenza, high dose seasonal, preservative-free"},{"code":"136","display":"meningococcal oligosaccharide (groups A, C, Y and W-135) diphtheria toxoid conjugate vaccine (MCV4O)"},{"code":"137","display":"HPV, unspecified formulation"},{"code":"138","display":"tetanus and diphtheria toxoids, not adsorbed, for adult use"},{"code":"139","display":"Td(adult) unspecified formulation"},{"code":"14","display":"immune globulin, unspecified formulation"},{"code":"140","display":"Influenza, seasonal, injectable, preservative free"},{"code":"141","display":"Influenza, seasonal, injectable"},{"code":"142","display":"tetanus toxoid, not adsorbed"},{"code":"143","display":"Adenovirus, type 4 and type 7, live, oral"},{"code":"144","display":"seasonal influenza, intradermal, preservative free"},{"code":"147","display":"Meningococcal, MCV4, unspecified conjugate formulation(groups A, C, Y and W-135)"},{"code":"148","display":"Meningococcal Groups C and Y and Haemophilus b Tetanus Toxoid Conjugate Vaccine"},{"code":"149","display":"influenza, live, intranasal, quadrivalent"},{"code":"15","display":"influenza virus vaccine, split virus (incl. purified surface antigen)-retired CODE"},{"code":"150","display":"Influenza, injectable, quadrivalent, preservative free"},{"code":"151","display":"influenza nasal, unspecified formulation"},{"code":"152","display":"Pneumococcal Conjugate, unspecified formulation"},{"code":"153","display":"Influenza, injectable, Madin Darby Canine Kidney, preservative free"},{"code":"155","display":"Seasonal, trivalent, recombinant, injectable influenza vaccine, preservative free"},{"code":"156","display":"Rho(D) Immune globulin- IV or IM"},{"code":"157","display":"Rho(D) Immune globulin - IM"},{"code":"158","display":"influenza, injectable, quadrivalent, contains preservative"},{"code":"159","display":"Rho(D) Unspecified formulation"},{"code":"16","display":"influenza virus vaccine, whole virus"},{"code":"160","display":"Influenza A monovalent (H5N1), adjuvanted, National stockpile 2013"},{"code":"161","display":"Influenza, injectable,quadrivalent, preservative free, pediatric"},{"code":"162","display":"meningococcal B vaccine, fully recombinant"},{"code":"163","display":"meningococcal B vaccine, recombinant, OMV, adjuvanted"},{"code":"164","display":"meningococcal B, unspecified formulation"},{"code":"165","display":"Human Papillomavirus 9-valent vaccine"},{"code":"166","display":"influenza, intradermal, quadrivalent, preservative free, injectable"},{"code":"167","display":"meningococcal vaccine of unknown formulation and unknown serogroups"},{"code":"168","display":"Seasonal trivalent influenza vaccine, adjuvanted, preservative free"},{"code":"169","display":"Hep A, live attenuated-IM"},{"code":"17","display":"Haemophilus influenzae type b vaccine, conjugate unspecified formulation"},{"code":"170","display":"non-US diphtheria, tetanus toxoids and acellular pertussis vaccine, Haemophilus influenzae type b conjugate, and poliovirus vaccine, inactivated (DTaP-Hib-IPV)"},{"code":"171","display":"Influenza, injectable, Madin Darby Canine Kidney, preservative free, quadrivalent"},{"code":"172","display":"cholera, WC-rBS"},{"code":"173","display":"cholera, BivWC"},{"code":"174","display":"cholera, live attenuated"},{"code":"175","display":"Human Rabies vaccine from human diploid cell culture"},{"code":"176","display":"Human rabies vaccine from Chicken fibroblast culture"},{"code":"177","display":"pneumococcal conjugate vaccine, 10 valent"},{"code":"178","display":"Non-US bivalent oral polio vaccine (types 1 and 3)"},{"code":"179","display":"Non-US monovalent oral polio vaccine, unspecified formulation"},{"code":"18","display":"rabies vaccine, for intramuscular injection RETIRED CODE"},{"code":"180","display":"tetanus immune globulin"},{"code":"181","display":"anthrax immune globulin"},{"code":"182","display":"Oral Polio Vaccine, Unspecified formulation"},{"code":"183","display":"Yellow fever vaccine alternative formulation"},{"code":"184","display":"Yellow fever vaccine, unspecified formulation"},{"code":"185","display":"Seasonal, quadrivalent, recombinant, injectable influenza vaccine, preservative free"},{"code":"186","display":"Influenza, injectable, Madin Darby Canine Kidney, quadrivalent with preservative"},{"code":"187","display":"zoster vaccine recombinant"},{"code":"188","display":"zoster vaccine, unspecified formulation"},{"code":"189","display":"Hepatitis B vaccine (recombinant), CpG adjuvanted"},{"code":"19","display":"Bacillus Calmette-Guerin vaccine"},{"code":"20","display":"diphtheria, tetanus toxoids and acellular pertussis vaccine"},{"code":"21","display":"varicella virus vaccine"},{"code":"22","display":"DTP-Haemophilus influenzae type b conjugate vaccine"},{"code":"23","display":"plague vaccine"},{"code":"24","display":"anthrax vaccine"},{"code":"25","display":"typhoid vaccine, live, oral"},{"code":"26","display":"cholera vaccine, unspecified formulation"},{"code":"27","display":"botulinum antitoxin"},{"code":"28","display":"diphtheria and tetanus toxoids, adsorbed for pediatric use"},{"code":"29","display":"cytomegalovirus immune globulin, intravenous"},{"code":"30","display":"hepatitis B immune globulin"},{"code":"31","display":"hepatitis A vaccine, pediatric dosage, unspecified formulation"},{"code":"32","display":"meningococcal polysaccharide vaccine (MPSV4)"},{"code":"33","display":"pneumococcal polysaccharide vaccine, 23 valent"},{"code":"34","display":"rabies immune globulin"},{"code":"35","display":"tetanus toxoid, adsorbed"},{"code":"36","display":"varicella zoster immune globulin"},{"code":"37","display":"yellow fever vaccine"},{"code":"38","display":"rubella and mumps virus vaccine"},{"code":"39","display":"Japanese Encephalitis Vaccine SC"},{"code":"40","display":"rabies vaccine, for intradermal injection"},{"code":"41","display":"typhoid vaccine, parenteral, other than acetone-killed, dried"},{"code":"42","display":"hepatitis B vaccine, adolescent/high risk infant dosage"},{"code":"43","display":"hepatitis B vaccine, adult dosage"},{"code":"44","display":"hepatitis B vaccine, dialysis patient dosage"},{"code":"45","display":"hepatitis B vaccine, unspecified formulation"},{"code":"46","display":"Haemophilus influenzae type b vaccine, PRP-D conjugate"},{"code":"47","display":"Haemophilus influenzae type b vaccine, HbOC conjugate"},{"code":"48","display":"Haemophilus influenzae type b vaccine, PRP-T conjugate"},{"code":"49","display":"Haemophilus influenzae type b vaccine, PRP-OMP conjugate"},{"code":"50","display":"DTaP-Haemophilus influenzae type b conjugate vaccine"},{"code":"51","display":"Haemophilus influenzae type b conjugate and Hepatitis B vaccine"},{"code":"52","display":"hepatitis A vaccine, adult dosage"},{"code":"53","display":"typhoid vaccine, parenteral, acetone-killed, dried (U.S. military)"},{"code":"54","display":"adenovirus vaccine, type 4, live, oral"},{"code":"55","display":"adenovirus vaccine, type 7, live, oral"},{"code":"62","display":"human papilloma virus vaccine, quadrivalent"},{"code":"66","display":"Lyme disease vaccine"},{"code":"69","display":"parainfluenza-3 virus vaccine"},{"code":"71","display":"respiratory syncytial virus immune globulin, intravenous"},{"code":"74","display":"rotavirus, live, tetravalent vaccine"},{"code":"75","display":"vaccinia (smallpox) vaccine"},{"code":"76","display":"Staphylococcus bacteriophage lysate"},{"code":"77","display":"tick-borne encephalitis vaccine"},{"code":"78","display":"tularemia vaccine"},{"code":"79","display":"vaccinia immune globulin"},{"code":"80","display":"Venezuelan equine encephalitis, live, attenuated"},{"code":"801","display":"AS03 Adjuvant"},{"code":"81","display":"Venezuelan equine encephalitis, inactivated"},{"code":"82","display":"adenovirus vaccine, unspecified formulation"},{"code":"83","display":"hepatitis A vaccine, pediatric/adolescent dosage, 2 dose schedule"},{"code":"84","display":"hepatitis A vaccine, pediatric/adolescent dosage, 3 dose schedule"},{"code":"85","display":"hepatitis A vaccine, unspecified formulation"},{"code":"86","display":"immune globulin, intramuscular"},{"code":"87","display":"immune globulin, intravenous"},{"code":"88","display":"influenza virus vaccine, unspecified formulation"},{"code":"89","display":"poliovirus vaccine, unspecified formulation"},{"code":"90","display":"rabies vaccine, unspecified formulation"},{"code":"91","display":"typhoid vaccine, unspecified formulation"},{"code":"92","display":"Venezuelan equine encephalitis vaccine, unspecified formulation"},{"code":"93","display":"respiratory syncytial virus monoclonal antibody (palivizumab), intramuscular"},{"code":"94","display":"measles, mumps, rubella, and varicella virus vaccine"},{"code":"95","display":"tuberculin skin test; old tuberculin, multipuncture device"},{"code":"96","display":"tuberculin skin test; purified protein derivative solution, intradermal"},{"code":"97","display":"tuberculin skin test; purified protein derivative, multipuncture device"},{"code":"98","display":"tuberculin skin test; unspecified formulation"},{"code":"998","display":"no vaccine administered"}]}]}} \ No newline at end of file diff --git a/resources/uscore_v3.0.1/ig-r4.json b/resources/uscore_v3.0.1/ig-r4.json new file mode 100644 index 000000000..c13a059c7 --- /dev/null +++ b/resources/uscore_v3.0.1/ig-r4.json @@ -0,0 +1 @@ +{"resourceType":"ImplementationGuide","id":"hl7.fhir.us.core","text":{"status":"generated","div":"

    USCore

    The official URL for this implementation guide is:

    http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core
    "},"url":"http://hl7.org/fhir/us/core/ImplementationGuide/hl7.fhir.us.core","version":"3.0.1","name":"USCore","title":"US Core","status":"active","date":"2019-09-12T23:50:40+00:00","publisher":"HL7 International - US Realm Steering Committee","contact":[{"telecom":[{"system":"url","value":"http://www.hl7.org/Special/committees/usrealm/index.cfm"}]}],"jurisdiction":[{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America"}]}],"copyright":"Used by permission of HL7 International, all rights reserved Creative Commons License","packageId":"hl7.fhir.us.core","license":"CC0-1.0","fhirVersion":["4.0.0"],"definition":{"grouping":[{"name":"base"},{"id":"implantable-device-us-core-profile-spreadsheet.xml","name":"USCoreImplantableDeviceProfile"},{"id":"medicationrequest-us-core-profile-spreadsheet.xml","name":"USCoreMedicationRequestProfile"},{"id":"goal-us-core-profile-spreadsheet.xml","name":"USCoreGoalProfile"},{"id":"observation-us-core-pediatric-weight-for-height-spreadsheet.xml","name":"USCorePediatricWeightForHeightObservationProfile"},{"id":"condition-us-core-profile-spreadsheet.xml","name":"USCoreCondition"},{"id":"organization-us-core-profile-spreadsheet.xml","name":"USCoreOrganizationProfile"},{"id":"observation-us-core-smokingstatus-profile-spreadsheet.xml","name":"USCoreSmokingStatusProfile"},{"id":"careplan-us-core-profile-spreadsheet.xml","name":"USCoreCarePlanProfile"},{"id":"careteam-us-core-profile-spreadsheet.xml","name":"USCoreCareTeam"},{"id":"documentreference-us-core-profile-spreadsheet.xml","name":"USCoreDocumentReferenceProfile"},{"id":"medication-us-core-profile-spreadsheet.xml","name":"USCoreMedicationProfile"},{"id":"procedure-us-core-profile-spreadsheet.xml","name":"USCoreProcedureProfile"},{"id":"location-us-core-profile-spreadsheet.xml","name":"USCoreLocation"},{"id":"observation-us-core-pulse-oximetry-spreadsheet.xml","name":"USCorePulseOximetryProfile"},{"id":"patient-us-core-profile-spreadsheet.xml","name":"USCorePatientProfile"},{"id":"encounter-us-core-profile-spreadsheet.xml","name":"/scratch/ig-build-temp-E7MEA4/repo/source/resources/encounter-us-core-profile-spreadsheet"},{"id":"practitioner-us-core-profile-spreadsheet.xml","name":"USCorePractitionerProfile"},{"id":"allergyintolerance-us-core-profile-spreadsheet.xml","name":"USCoreAllergyIntolerance"},{"id":"observation-us-core-pediatric-bmi-for age-spreadsheet.xml","name":"USCorePediatricBMIforAgeObservationProfile"},{"id":"us-core-observation-lab-profile-spreadsheet.xml","name":"USCoreLaboratoryResultObservationProfile"},{"id":"practitionerrole-us-core-profile-spreadsheet.xml","name":"/scratch/ig-build-temp-E7MEA4/repo/source/resources/practitionerrole-us-core-profile-spreadsheet"},{"id":"immunization-us-core-profile-spreadsheet.xml","name":"USCoreImmunizationProfile"}],"resource":[{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-glucose.html"}],"reference":{"reference":"Observation/urine-glucose"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Procedure"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Procedure-rehab.html"}],"reference":{"reference":"Procedure/rehab"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CareTeam"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CareTeam-example.html"}],"reference":{"reference":"CareTeam/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-leukocyte-esterase.html"}],"reference":{"reference":"Observation/urine-leukocyte-esterase"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Bundle"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-66c8856b-ba11-4876-8aa8-467aad8c11a2.html"}],"reference":{"reference":"Bundle/66c8856b-ba11-4876-8aa8-467aad8c11a2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-bilirubin.html"}],"reference":{"reference":"Observation/urine-bilirubin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Condition"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Condition-hc1.html"}],"reference":{"reference":"Condition/hc1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-sediment.html"}],"reference":{"reference":"Observation/urine-sediment"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Immunization"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Immunization-imm-1.html"}],"reference":{"reference":"Immunization/imm-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-pediatric-wt-example.html"}],"reference":{"reference":"Observation/pediatric-wt-example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Organization"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-saint-luke-w-endpoint.html"}],"reference":{"reference":"Organization/saint-luke-w-endpoint"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-ph.html"}],"reference":{"reference":"Observation/urine-ph"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Encounter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Encounter-example-1.html"}],"reference":{"reference":"Encounter/example-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-chest-xray-report.html"}],"reference":{"reference":"DiagnosticReport/chest-xray-report"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-sodium.html"}],"reference":{"reference":"Observation/serum-sodium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-cbc.html"}],"reference":{"reference":"DiagnosticReport/cbc"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-potassium.html"}],"reference":{"reference":"Observation/serum-potassium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Encounter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Encounter-1036.html"}],"reference":{"reference":"Encounter/1036"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-some-day-smoker.html"}],"reference":{"reference":"Observation/some-day-smoker"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Location"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Location-hl7east.html"}],"reference":{"reference":"Location/hl7east"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-co2.html"}],"reference":{"reference":"Observation/serum-co2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-protein.html"}],"reference":{"reference":"Observation/urine-protein"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Procedure"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Procedure-defib-implant.html"}],"reference":{"reference":"Procedure/defib-implant"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-usg.html"}],"reference":{"reference":"Observation/usg"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-chloride.html"}],"reference":{"reference":"Observation/serum-chloride"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-calcium.html"}],"reference":{"reference":"Observation/serum-calcium"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-color.html"}],"reference":{"reference":"Observation/urine-color"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bp-data-absent.html"}],"reference":{"reference":"Observation/bp-data-absent"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Patient"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Patient-example.html"}],"reference":{"reference":"Patient/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-temperature.html"}],"reference":{"reference":"Observation/temperature"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bmi.html"}],"reference":{"reference":"Observation/bmi"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Medication"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Medication-uscore-med2.html"}],"reference":{"reference":"Medication/uscore-med2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-cells.html"}],"reference":{"reference":"Observation/urine-cells"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-length.html"}],"reference":{"reference":"Observation/length"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Device"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Device-udi-2.html"}],"reference":{"reference":"Device/udi-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"MedicationRequest"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationRequest-uscore-mo1.html"}],"reference":{"reference":"MedicationRequest/uscore-mo1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Practitioner"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Practitioner-practitioner-2.html"}],"reference":{"reference":"Practitioner/practitioner-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Goal"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Goal-goal-1.html"}],"reference":{"reference":"Goal/goal-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-rbcs.html"}],"reference":{"reference":"Observation/urine-rbcs"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urobilinogen.html"}],"reference":{"reference":"Observation/urobilinogen"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Medication"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Medication-uscore-med1.html"}],"reference":{"reference":"Medication/uscore-med1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-bacteria.html"}],"reference":{"reference":"Observation/urine-bacteria"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Bundle"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-uscore-mo3.html"}],"reference":{"reference":"Bundle/uscore-mo3"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-head-circumference.html"}],"reference":{"reference":"Observation/head-circumference"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"MedicationRequest"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationRequest-self-tylenol.html"}],"reference":{"reference":"MedicationRequest/self-tylenol"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-metabolic-panel.html"}],"reference":{"reference":"DiagnosticReport/metabolic-panel"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Device"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Device-udi-3.html"}],"reference":{"reference":"Device/udi-3"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"MedicationRequest"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"MedicationRequest-uscore-mo2.html"}],"reference":{"reference":"MedicationRequest/uscore-mo2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Bundle"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Bundle-c887e62f-6166-419f-8268-b5ecd6c7b901.html"}],"reference":{"reference":"Bundle/c887e62f-6166-419f-8268-b5ecd6c7b901"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-bun.html"}],"reference":{"reference":"Observation/bun"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Practitioner"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Practitioner-practitioner-1.html"}],"reference":{"reference":"Practitioner/practitioner-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-neutrophils.html"}],"reference":{"reference":"Observation/neutrophils"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-nitrite.html"}],"reference":{"reference":"Observation/urine-nitrite"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-oxygen-saturation.html"}],"reference":{"reference":"Observation/oxygen-saturation"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-cardiology-report.html"}],"reference":{"reference":"DiagnosticReport/cardiology-report"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-vitals-panel.html"}],"reference":{"reference":"Observation/vitals-panel"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-blood-pressure.html"}],"reference":{"reference":"Observation/blood-pressure"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-wbcs.html"}],"reference":{"reference":"Observation/urine-wbcs"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-height.html"}],"reference":{"reference":"Observation/height"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Organization"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-acme-lab.html"}],"reference":{"reference":"Organization/acme-lab"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Device"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Device-udi-1.html"}],"reference":{"reference":"Device/udi-1"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-hemoglobin.html"}],"reference":{"reference":"Observation/hemoglobin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DocumentReference"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DocumentReference-episode-summary.html"}],"reference":{"reference":"DocumentReference/episode-summary"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-hemoglobin.html"}],"reference":{"reference":"Observation/urine-hemoglobin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-heart-rate.html"}],"reference":{"reference":"Observation/heart-rate"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-epi-cells.html"}],"reference":{"reference":"Observation/urine-epi-cells"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"AllergyIntolerance"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"AllergyIntolerance-example.html"}],"reference":{"reference":"AllergyIntolerance/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-blood-glucose.html"}],"reference":{"reference":"Observation/blood-glucose"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"DiagnosticReport"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"DiagnosticReport-urinalysis.html"}],"reference":{"reference":"DiagnosticReport/urinalysis"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Condition"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Condition-example.html"}],"reference":{"reference":"Condition/example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-creatinine.html"}],"reference":{"reference":"Observation/serum-creatinine"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-satO2-fiO2.html"}],"reference":{"reference":"Observation/satO2-fiO2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-serum-total-bilirubin.html"}],"reference":{"reference":"Observation/serum-total-bilirubin"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-pediatric-bmi-example.html"}],"reference":{"reference":"Observation/pediatric-bmi-example"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Organization"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Organization-example-organization-2.html"}],"reference":{"reference":"Organization/example-organization-2"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-weight.html"}],"reference":{"reference":"Observation/weight"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-mchc.html"}],"reference":{"reference":"Observation/mchc"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-clarity.html"}],"reference":{"reference":"Observation/urine-clarity"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CarePlan"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CarePlan-colonoscopy.html"}],"reference":{"reference":"CarePlan/colonoscopy"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-erythrocytes.html"}],"reference":{"reference":"Observation/erythrocytes"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-urine-ketone.html"}],"reference":{"reference":"Observation/urine-ketone"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"Observation"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"Observation-respiratory-rate.html"}],"reference":{"reference":"Observation/respiratory-rate"},"exampleBoolean":true},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-medication-codes.html"}],"reference":{"reference":"ValueSet/us-core-medication-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-immunization.html"}],"reference":{"reference":"StructureDefinition/us-core-immunization"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-state.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-state"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitionerrole-practitioner.html"}],"reference":{"reference":"SearchParameter/us-core-practitionerrole-practitioner"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-smokingstatus.html"}],"reference":{"reference":"ValueSet/us-core-observation-smokingstatus"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-omb-race-category.html"}],"reference":{"reference":"ValueSet/omb-race-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-practitionerrole.html"}],"reference":{"reference":"StructureDefinition/us-core-practitionerrole"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-allergy-substance.html"}],"reference":{"reference":"ValueSet/us-core-allergy-substance"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-narrative-status.html"}],"reference":{"reference":"ValueSet/us-core-narrative-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-cdcrec.html"}],"reference":{"reference":"CodeSystem/cdcrec"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-organization-name.html"}],"reference":{"reference":"SearchParameter/us-core-organization-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-observation-lab.html"}],"reference":{"reference":"StructureDefinition/us-core-observation-lab"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-code.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-pediatric-bmi-for-age.html"}],"reference":{"reference":"StructureDefinition/pediatric-bmi-for-age"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-allergyintolerance.html"}],"reference":{"reference":"StructureDefinition/us-core-allergyintolerance"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-lifecycle-status.html"}],"reference":{"reference":"SearchParameter/us-core-goal-lifecycle-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-code.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-documentreference-type.html"}],"reference":{"reference":"ValueSet/us-core-documentreference-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-provenance-participant-type.html"}],"reference":{"reference":"ValueSet/us-core-provenance-participant-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-gender.html"}],"reference":{"reference":"SearchParameter/us-core-patient-gender"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-practitioner.html"}],"reference":{"reference":"StructureDefinition/us-core-practitioner"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-diagnosticreport-note.html"}],"reference":{"reference":"StructureDefinition/us-core-diagnosticreport-note"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-omb-ethnicity-category.html"}],"reference":{"reference":"ValueSet/omb-ethnicity-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-provenance.html"}],"reference":{"reference":"StructureDefinition/us-core-provenance"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"OperationDefinition"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"OperationDefinition-docref.html"}],"reference":{"reference":"OperationDefinition/docref"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-clinical-status.html"}],"reference":{"reference":"SearchParameter/us-core-condition-clinical-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:extension"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-birthsex.html"}],"reference":{"reference":"StructureDefinition/us-core-birthsex"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-id.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-category.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-class.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-class"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-patient.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CapabilityStatement"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CapabilityStatement-us-core-server.html"}],"reference":{"reference":"CapabilityStatement/us-core-server"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-condition-category.html"}],"reference":{"reference":"ValueSet/us-core-condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-detailed-ethnicity.html"}],"reference":{"reference":"ValueSet/detailed-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-patient.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-encounter.html"}],"reference":{"reference":"StructureDefinition/us-core-encounter"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-ndc-vaccine-codes.html"}],"reference":{"reference":"ValueSet/us-core-ndc-vaccine-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-patient.html"}],"reference":{"reference":"StructureDefinition/us-core-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-date.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-procedure-icd10pcs.html"}],"reference":{"reference":"ValueSet/us-core-procedure-icd10pcs"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-provider-specialty.html"}],"reference":{"reference":"ValueSet/us-core-provider-specialty"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-date.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-vaccines-cvx.html"}],"reference":{"reference":"ValueSet/us-core-vaccines-cvx"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-pulse-oximetry.html"}],"reference":{"reference":"StructureDefinition/us-core-pulse-oximetry"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-allergyintolerance-clinical-status.html"}],"reference":{"reference":"SearchParameter/us-core-allergyintolerance-clinical-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-date.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-intent.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-intent"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-location.html"}],"reference":{"reference":"StructureDefinition/us-core-location"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address.html"}],"reference":{"reference":"SearchParameter/us-core-location-address"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-smoking-status-status.html"}],"reference":{"reference":"ValueSet/us-core-observation-smoking-status-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-usps-state.html"}],"reference":{"reference":"ValueSet/us-core-usps-state"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitioner-name.html"}],"reference":{"reference":"SearchParameter/us-core-practitioner-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-encounter-type.html"}],"reference":{"reference":"ValueSet/us-core-encounter-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-period.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-period"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-code.html"}],"reference":{"reference":"SearchParameter/us-core-observation-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-name.html"}],"reference":{"reference":"SearchParameter/us-core-location-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-onset-date.html"}],"reference":{"reference":"SearchParameter/us-core-condition-onset-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-given.html"}],"reference":{"reference":"SearchParameter/us-core-patient-given"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-procedure.html"}],"reference":{"reference":"StructureDefinition/us-core-procedure"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-type.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-problem.html"}],"reference":{"reference":"ValueSet/us-core-problem"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-condition-category.html"}],"reference":{"reference":"CodeSystem/condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-encounter.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-encounter"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-patient.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-organization-address.html"}],"reference":{"reference":"SearchParameter/us-core-organization-address"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-category.html"}],"reference":{"reference":"SearchParameter/us-core-observation-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-medication.html"}],"reference":{"reference":"StructureDefinition/us-core-medication"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-status.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-date.html"}],"reference":{"reference":"SearchParameter/us-core-observation-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-birthsex.html"}],"reference":{"reference":"ValueSet/birthsex"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-category.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-status.html"}],"reference":{"reference":"SearchParameter/us-core-observation-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-report-and-note-codes.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-report-and-note-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-provider-role.html"}],"reference":{"reference":"ValueSet/us-core-provider-role"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-ethnicity.html"}],"reference":{"reference":"SearchParameter/us-core-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-documentreference.html"}],"reference":{"reference":"StructureDefinition/us-core-documentreference"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:extension"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-direct.html"}],"reference":{"reference":"StructureDefinition/us-core-direct"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-smoking-status-observation-codes.html"}],"reference":{"reference":"ValueSet/us-core-smoking-status-observation-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-careteam-provider-roles.html"}],"reference":{"reference":"ValueSet/us-core-careteam-provider-roles"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-type.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-date.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-category.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-birthdate.html"}],"reference":{"reference":"SearchParameter/us-core-patient-birthdate"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-careteam.html"}],"reference":{"reference":"StructureDefinition/us-core-careteam"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-status.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-clinical-note-type.html"}],"reference":{"reference":"ValueSet/us-core-clinical-note-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-status.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ConceptMap"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ConceptMap-ndc-cvx.html"}],"reference":{"reference":"ConceptMap/ndc-cvx"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:extension"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-ethnicity.html"}],"reference":{"reference":"StructureDefinition/us-core-ethnicity"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-status.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-careplan.html"}],"reference":{"reference":"StructureDefinition/us-core-careplan"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-patient.html"}],"reference":{"reference":"SearchParameter/us-core-condition-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-allergyintolerance-patient.html"}],"reference":{"reference":"SearchParameter/us-core-allergyintolerance-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-device-patient.html"}],"reference":{"reference":"SearchParameter/us-core-device-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-code.html"}],"reference":{"reference":"SearchParameter/us-core-condition-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-observation-patient.html"}],"reference":{"reference":"SearchParameter/us-core-observation-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-race.html"}],"reference":{"reference":"SearchParameter/us-core-race"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-patient.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-family.html"}],"reference":{"reference":"SearchParameter/us-core-patient-family"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-smokingstatus.html"}],"reference":{"reference":"StructureDefinition/us-core-smokingstatus"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-status.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:extension"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-race.html"}],"reference":{"reference":"StructureDefinition/us-core-race"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-postalcode.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-postalcode"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-id.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-medicationrequest-authoredon.html"}],"reference":{"reference":"SearchParameter/us-core-medicationrequest-authoredon"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-status.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-documentreference-category.html"}],"reference":{"reference":"ValueSet/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-procedure-patient.html"}],"reference":{"reference":"SearchParameter/us-core-procedure-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-target-date.html"}],"reference":{"reference":"SearchParameter/us-core-goal-target-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-diagnosticreport-patient.html"}],"reference":{"reference":"SearchParameter/us-core-diagnosticreport-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careplan-date.html"}],"reference":{"reference":"SearchParameter/us-core-careplan-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careteam-patient.html"}],"reference":{"reference":"SearchParameter/us-core-careteam-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-organization.html"}],"reference":{"reference":"StructureDefinition/us-core-organization"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-date.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-date"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-encounter-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-encounter-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitionerrole-specialty.html"}],"reference":{"reference":"SearchParameter/us-core-practitionerrole-specialty"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-name.html"}],"reference":{"reference":"SearchParameter/us-core-patient-name"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-device-type.html"}],"reference":{"reference":"SearchParameter/us-core-device-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-procedure-code.html"}],"reference":{"reference":"ValueSet/us-core-procedure-code"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-diagnosticreport-lab.html"}],"reference":{"reference":"StructureDefinition/us-core-diagnosticreport-lab"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-goal-patient.html"}],"reference":{"reference":"SearchParameter/us-core-goal-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-simple-language.html"}],"reference":{"reference":"ValueSet/simple-language"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-patient.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-patient"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-condition.html"}],"reference":{"reference":"StructureDefinition/us-core-condition"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-pediatric-weight-for-height.html"}],"reference":{"reference":"StructureDefinition/pediatric-weight-for-height"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-observation-value-codes.html"}],"reference":{"reference":"ValueSet/us-core-observation-value-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-id.html"}],"reference":{"reference":"SearchParameter/us-core-patient-id"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-location-address-city.html"}],"reference":{"reference":"SearchParameter/us-core-location-address-city"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-goal.html"}],"reference":{"reference":"StructureDefinition/us-core-goal"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-careteam-status.html"}],"reference":{"reference":"SearchParameter/us-core-careteam-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-us-core-documentreference-category.html"}],"reference":{"reference":"CodeSystem/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-us-core-provenance-participant-type.html"}],"reference":{"reference":"CodeSystem/us-core-provenance-participant-type"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-us-core-diagnosticreport-lab-codes.html"}],"reference":{"reference":"ValueSet/us-core-diagnosticreport-lab-codes"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CodeSystem"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CodeSystem-careplan-category.html"}],"reference":{"reference":"CodeSystem/careplan-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-documentreference-category.html"}],"reference":{"reference":"SearchParameter/us-core-documentreference-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"CapabilityStatement"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"CapabilityStatement-us-core-client.html"}],"reference":{"reference":"CapabilityStatement/us-core-client"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-practitioner-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-practitioner-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-patient-identifier.html"}],"reference":{"reference":"SearchParameter/us-core-patient-identifier"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-condition-category.html"}],"reference":{"reference":"SearchParameter/us-core-condition-category"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"SearchParameter"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"SearchParameter-us-core-immunization-status.html"}],"reference":{"reference":"SearchParameter/us-core-immunization-status"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-medicationrequest.html"}],"reference":{"reference":"StructureDefinition/us-core-medicationrequest"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"StructureDefinition:resource"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"StructureDefinition-us-core-implantable-device.html"}],"reference":{"reference":"StructureDefinition/us-core-implantable-device"},"exampleBoolean":false},{"extension":[{"url":"http://hl7.org/fhir/tools/StructureDefinition/resource-information","valueString":"ValueSet"},{"url":"http://hl7.org/fhir/StructureDefinition/implementationguide-page","valueUri":"ValueSet-detailed-race.html"}],"reference":{"reference":"ValueSet/detailed-race"},"exampleBoolean":false}],"page":{"nameUrl":"index.html","title":"Home","generation":"markdown","page":[{"nameUrl":"guidance.html","title":"Guidance","generation":"markdown","page":[{"nameUrl":"general-guidance.html","title":"General Guidance","generation":"markdown"},{"nameUrl":"clinical-notes-guidance.html","title":"Clinical Notes Guidance","generation":"markdown"},{"nameUrl":"all-meds.html","title":"Medication List Guidance","generation":"markdown"},{"nameUrl":"basic-provenance.html","title":"Basic Provenance","generation":"markdown"},{"nameUrl":"r2-r4-guidance.html","title":"DSTU2 to R4 Conversion","generation":"markdown"},{"nameUrl":"future-of-us-core.html","title":"Future of US Core","generation":"markdown"}]},{"nameUrl":"profiles.html","title":"Profiles and Extensions","generation":"markdown","page":[{"nameUrl":"StructureDefinition-us-core-immunization.html","title":"StructureDefinition US Core Immunization","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-practitionerrole.html","title":"StructureDefinition US Core PractitionerRole","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-observation-lab.html","title":"StructureDefinition US Core Observation Lab","generation":"generated"},{"nameUrl":"StructureDefinition-pediatric-bmi-for-age.html","title":"StructureDefinition Pediatric Bmi For Age","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-allergyintolerance.html","title":"StructureDefinition US Core AllergyIntolerance","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-practitioner.html","title":"StructureDefinition US Core Practitioner","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-diagnosticreport-note.html","title":"StructureDefinition US Core DiagnosticReport Note","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-provenance.html","title":"StructureDefinition US Core Provenance","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-birthsex.html","title":"StructureDefinition US Core Birthsex","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-encounter.html","title":"StructureDefinition US Core Encounter","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-patient.html","title":"StructureDefinition US Core Patient","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-pulse-oximetry.html","title":"StructureDefinition US Core Pulse Oximetry","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-location.html","title":"StructureDefinition US Core Location","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-procedure.html","title":"StructureDefinition US Core Procedure","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-medication.html","title":"StructureDefinition US Core Medication","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-documentreference.html","title":"StructureDefinition US Core DocumentReference","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-direct.html","title":"StructureDefinition US Core Direct","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-careteam.html","title":"StructureDefinition US Core CareTeam","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-ethnicity.html","title":"StructureDefinition US Core Ethnicity","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-careplan.html","title":"StructureDefinition US Core CarePlan","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-smokingstatus.html","title":"StructureDefinition US Core Smokingstatus","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-race.html","title":"StructureDefinition US Core Race","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-organization.html","title":"StructureDefinition US Core Organization","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-diagnosticreport-lab.html","title":"StructureDefinition US Core DiagnosticReport Lab","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-condition.html","title":"StructureDefinition US Core Condition","generation":"generated"},{"nameUrl":"StructureDefinition-pediatric-weight-for-height.html","title":"StructureDefinition Pediatric Weight For Height","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-goal.html","title":"StructureDefinition US Core Goal","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-medicationrequest.html","title":"StructureDefinition US Core MedicationRequest","generation":"generated"},{"nameUrl":"StructureDefinition-us-core-implantable-device.html","title":"StructureDefinition US Core Implantable Device","generation":"generated"}]},{"nameUrl":"operations.html","title":"Operations","generation":"markdown","page":[{"nameUrl":"OperationDefinition-docref.html","title":"OperationDefinition Docref","generation":"generated"}]},{"nameUrl":"terminology.html","title":"Terminology","generation":"markdown","page":[{"nameUrl":"ValueSet-us-core-medication-codes.html","title":"ValueSet US Core Medication Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-smokingstatus.html","title":"ValueSet US Core Observation Smokingstatus","generation":"generated"},{"nameUrl":"ValueSet-omb-race-category.html","title":"ValueSet Omb Race Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-allergy-substance.html","title":"ValueSet US Core Allergy Substance","generation":"generated"},{"nameUrl":"ValueSet-us-core-narrative-status.html","title":"ValueSet US Core Narrative Status","generation":"generated"},{"nameUrl":"ValueSet-us-core-documentreference-type.html","title":"ValueSet US Core DocumentReference Type","generation":"generated"},{"nameUrl":"ValueSet-omb-ethnicity-category.html","title":"ValueSet Omb Ethnicity Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-condition-category.html","title":"ValueSet US Core Condition Category","generation":"generated"},{"nameUrl":"ValueSet-detailed-ethnicity.html","title":"ValueSet Detailed Ethnicity","generation":"generated"},{"nameUrl":"ValueSet-us-core-ndc-vaccine-codes.html","title":"ValueSet US Core Ndc Vaccine Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-procedure-icd10pcs.html","title":"ValueSet US Core Procedure Icd10pcs","generation":"generated"},{"nameUrl":"ValueSet-us-core-provider-specialty.html","title":"ValueSet US Core Provider Specialty","generation":"generated"},{"nameUrl":"ValueSet-us-core-vaccines-cvx.html","title":"ValueSet US Core Vaccines Cvx","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-smoking-status-status.html","title":"ValueSet US Core Observation Smoking Status Status","generation":"generated"},{"nameUrl":"ValueSet-us-core-usps-state.html","title":"ValueSet US Core Usps State","generation":"generated"},{"nameUrl":"ValueSet-us-core-encounter-type.html","title":"ValueSet US Core Encounter Type","generation":"generated"},{"nameUrl":"ValueSet-us-core-problem.html","title":"ValueSet US Core Problem","generation":"generated"},{"nameUrl":"ValueSet-birthsex.html","title":"ValueSet Birthsex","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-report-and-note-codes.html","title":"ValueSet US Core DiagnosticReport Report And Note Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-provider-role.html","title":"ValueSet US Core Provider Role","generation":"generated"},{"nameUrl":"ValueSet-us-core-smoking-status-observation-codes.html","title":"ValueSet US Core Smoking Status Observation Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-careteam-provider-roles.html","title":"ValueSet US Core CareTeam Provider Roles","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-category.html","title":"ValueSet US Core DiagnosticReport Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-clinical-note-type.html","title":"ValueSet US Core Clinical Note Type","generation":"generated"},{"nameUrl":"ValueSet-us-core-documentreference-category.html","title":"ValueSet US Core DocumentReference Category","generation":"generated"},{"nameUrl":"ValueSet-us-core-procedure-code.html","title":"ValueSet US Core Procedure Code","generation":"generated"},{"nameUrl":"ValueSet-simple-language.html","title":"ValueSet Simple Language","generation":"generated"},{"nameUrl":"ValueSet-us-core-observation-value-codes.html","title":"ValueSet US Core Observation Value Codes","generation":"generated"},{"nameUrl":"ValueSet-us-core-diagnosticreport-lab-codes.html","title":"ValueSet US Core DiagnosticReport Lab Codes","generation":"generated"},{"nameUrl":"ValueSet-detailed-race.html","title":"ValueSet Detailed Race","generation":"generated"},{"nameUrl":"CodeSystem-cdcrec.html","title":"CodeSystem Cdcrec","generation":"generated"},{"nameUrl":"CodeSystem-condition-category.html","title":"CodeSystem Condition Category","generation":"generated"},{"nameUrl":"CodeSystem-us-core-documentreference-category.html","title":"CodeSystem US Core DocumentReference Category","generation":"generated"},{"nameUrl":"CodeSystem-careplan-category.html","title":"CodeSystem CarePlan Category","generation":"generated"},{"nameUrl":"ConceptMap-ndc-cvx.html","title":"ConceptMap Ndc Cvx","generation":"generated"}]},{"nameUrl":"searchparameters.html","title":"Search Parameters","generation":"markdown","page":[{"nameUrl":"SearchParameter-us-core-location-address-state.html","title":"SearchParameter US Core Location Address State","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitionerrole-practitioner.html","title":"SearchParameter US Core PractitionerRole Practitioner","generation":"generated"},{"nameUrl":"SearchParameter-us-core-organization-name.html","title":"SearchParameter US Core Organization Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-code.html","title":"SearchParameter US Core DiagnosticReport Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-lifecycle-status.html","title":"SearchParameter US Core Goal Lifecycle Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-code.html","title":"SearchParameter US Core Procedure Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-gender.html","title":"SearchParameter US Core Patient Gender","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-clinical-status.html","title":"SearchParameter US Core Condition Clinical Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-id.html","title":"SearchParameter US Core DocumentReference Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-category.html","title":"SearchParameter US Core CarePlan Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-class.html","title":"SearchParameter US Core Encounter Class","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-patient.html","title":"SearchParameter US Core MedicationRequest Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-patient.html","title":"SearchParameter US Core DocumentReference Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-date.html","title":"SearchParameter US Core DiagnosticReport Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-date.html","title":"SearchParameter US Core Procedure Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-allergyintolerance-clinical-status.html","title":"SearchParameter US Core AllergyIntolerance Clinical Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-date.html","title":"SearchParameter US Core DocumentReference Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-intent.html","title":"SearchParameter US Core MedicationRequest Intent","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address.html","title":"SearchParameter US Core Location Address","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitioner-name.html","title":"SearchParameter US Core Practitioner Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-period.html","title":"SearchParameter US Core DocumentReference Period","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-code.html","title":"SearchParameter US Core Observation Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-name.html","title":"SearchParameter US Core Location Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-onset-date.html","title":"SearchParameter US Core Condition Onset Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-given.html","title":"SearchParameter US Core Patient Given","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-type.html","title":"SearchParameter US Core Encounter Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-encounter.html","title":"SearchParameter US Core MedicationRequest Encounter","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-patient.html","title":"SearchParameter US Core Encounter Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-organization-address.html","title":"SearchParameter US Core Organization Address","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-category.html","title":"SearchParameter US Core Observation Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-status.html","title":"SearchParameter US Core DiagnosticReport Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-date.html","title":"SearchParameter US Core Observation Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-category.html","title":"SearchParameter US Core DiagnosticReport Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-status.html","title":"SearchParameter US Core Observation Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-ethnicity.html","title":"SearchParameter US Core Ethnicity","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-type.html","title":"SearchParameter US Core DocumentReference Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-date.html","title":"SearchParameter US Core Encounter Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-birthdate.html","title":"SearchParameter US Core Patient Birthdate","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-status.html","title":"SearchParameter US Core Procedure Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-status.html","title":"SearchParameter US Core Encounter Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-status.html","title":"SearchParameter US Core CarePlan Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-patient.html","title":"SearchParameter US Core Condition Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-allergyintolerance-patient.html","title":"SearchParameter US Core AllergyIntolerance Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-device-patient.html","title":"SearchParameter US Core Device Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-code.html","title":"SearchParameter US Core Condition Code","generation":"generated"},{"nameUrl":"SearchParameter-us-core-observation-patient.html","title":"SearchParameter US Core Observation Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-race.html","title":"SearchParameter US Core Race","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-patient.html","title":"SearchParameter US Core CarePlan Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-family.html","title":"SearchParameter US Core Patient Family","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-status.html","title":"SearchParameter US Core MedicationRequest Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address-postalcode.html","title":"SearchParameter US Core Location Address Postalcode","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-id.html","title":"SearchParameter US Core Encounter Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-medicationrequest-authoredon.html","title":"SearchParameter US Core MedicationRequest Authoredon","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-status.html","title":"SearchParameter US Core DocumentReference Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-procedure-patient.html","title":"SearchParameter US Core Procedure Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-target-date.html","title":"SearchParameter US Core Goal Target Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-diagnosticreport-patient.html","title":"SearchParameter US Core DiagnosticReport Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careplan-date.html","title":"SearchParameter US Core CarePlan Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careteam-patient.html","title":"SearchParameter US Core CareTeam Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-date.html","title":"SearchParameter US Core Immunization Date","generation":"generated"},{"nameUrl":"SearchParameter-us-core-encounter-identifier.html","title":"SearchParameter US Core Encounter Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitionerrole-specialty.html","title":"SearchParameter US Core PractitionerRole Specialty","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-name.html","title":"SearchParameter US Core Patient Name","generation":"generated"},{"nameUrl":"SearchParameter-us-core-device-type.html","title":"SearchParameter US Core Device Type","generation":"generated"},{"nameUrl":"SearchParameter-us-core-goal-patient.html","title":"SearchParameter US Core Goal Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-patient.html","title":"SearchParameter US Core Immunization Patient","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-id.html","title":"SearchParameter US Core Patient Id","generation":"generated"},{"nameUrl":"SearchParameter-us-core-location-address-city.html","title":"SearchParameter US Core Location Address City","generation":"generated"},{"nameUrl":"SearchParameter-us-core-careteam-status.html","title":"SearchParameter US Core CareTeam Status","generation":"generated"},{"nameUrl":"SearchParameter-us-core-documentreference-category.html","title":"SearchParameter US Core DocumentReference Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-practitioner-identifier.html","title":"SearchParameter US Core Practitioner Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-patient-identifier.html","title":"SearchParameter US Core Patient Identifier","generation":"generated"},{"nameUrl":"SearchParameter-us-core-condition-category.html","title":"SearchParameter US Core Condition Category","generation":"generated"},{"nameUrl":"SearchParameter-us-core-immunization-status.html","title":"SearchParameter US Core Immunization Status","generation":"generated"}]},{"nameUrl":"capstatements.html","title":"Capability Statements","generation":"markdown","page":[{"nameUrl":"CapabilityStatement-us-core-server.html","title":"CapabilityStatement US Core Server","generation":"generated"},{"nameUrl":"CapabilityStatement-us-core-client.html","title":"CapabilityStatement US Core Client","generation":"generated"}]},{"nameUrl":"security.html","title":"Security","generation":"markdown"},{"nameUrl":"downloads.html","title":"Downloads","generation":"markdown"},{"nameUrl":"all-examples.html","title":"All Examples","generation":"markdown"},{"nameUrl":"toc.html","title":"Table of Contents","generation":"html"}]}}} \ No newline at end of file From 6831ae9a0a2a852e454595d0fcffae0b57456da3 Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Fri, 20 Sep 2019 15:39:51 -0400 Subject: [PATCH 012/144] Fix tests that are hardcoded to certain sequences that moved. --- lib/app/modules/us_core_guidance/README.md | 3 + .../clinicalnotes_sequence.rb | 0 .../r4_provenance_sequence.rb | 0 .../us_core_patient_read_only_sequence.rb | 0 ...s_core_r4_capability_statement_sequence.rb | 0 .../pediatric_bmi_for_age_sequence.rb | 337 --------------- .../pediatric_weight_for_height_sequence.rb | 337 --------------- .../us_core_allergyintolerance_sequence.rb | 217 ---------- .../us_core_r4/us_core_careplan_sequence.rb | 292 ------------- .../us_core_r4/us_core_careteam_sequence.rb | 191 --------- .../us_core_r4/us_core_condition_sequence.rb | 309 -------------- .../us_core_r4/us_core_device_sequence.rb | 218 ---------- .../us_core_diagnosticreport_lab_sequence.rb | 386 ----------------- .../us_core_diagnosticreport_note_sequence.rb | 386 ----------------- .../us_core_documentreference_sequence.rb | 387 ------------------ .../us_core_r4/us_core_encounter_sequence.rb | 371 ----------------- .../us_core_r4/us_core_goal_sequence.rb | 256 ------------ .../us_core_immunization_sequence.rb | 257 ------------ .../us_core_r4/us_core_location_sequence.rb | 299 -------------- .../us_core_r4/us_core_medication_sequence.rb | 128 ------ .../us_core_medicationrequest_sequence.rb | 247 ----------- .../us_core_medicationstatement_sequence.rb | 258 ------------ .../us_core_observation_lab_sequence.rb | 327 --------------- .../us_core_organization_sequence.rb | 224 ---------- .../us_core_r4/us_core_patient_sequence.rb | 378 ----------------- .../us_core_practitioner_sequence.rb | 226 ---------- .../us_core_practitionerrole_sequence.rb | 221 ---------- .../us_core_r4/us_core_procedure_sequence.rb | 290 ------------- .../us_core_smokingstatus_sequence.rb | 314 -------------- .../us_core_r4/clinicalnotes_sequence_test.rb | 2 +- test/unit/test_instance_test.rb | 2 +- 31 files changed, 5 insertions(+), 6858 deletions(-) create mode 100644 lib/app/modules/us_core_guidance/README.md rename lib/app/modules/{us_core_r4 => us_core_guidance}/clinicalnotes_sequence.rb (100%) rename lib/app/modules/{us_core_r4 => us_core_guidance}/r4_provenance_sequence.rb (100%) rename lib/app/modules/{us_core_r4 => us_core_guidance}/us_core_patient_read_only_sequence.rb (100%) rename lib/app/modules/{us_core_r4 => us_core_guidance}/us_core_r4_capability_statement_sequence.rb (100%) delete mode 100644 lib/app/modules/us_core_r4/pediatric_bmi_for_age_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/pediatric_weight_for_height_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_allergyintolerance_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_careplan_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_careteam_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_condition_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_device_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_diagnosticreport_lab_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_diagnosticreport_note_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_documentreference_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_encounter_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_goal_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_immunization_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_location_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_medication_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_medicationrequest_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_medicationstatement_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_observation_lab_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_organization_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_patient_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_practitioner_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_practitionerrole_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_procedure_sequence.rb delete mode 100644 lib/app/modules/us_core_r4/us_core_smokingstatus_sequence.rb diff --git a/lib/app/modules/us_core_guidance/README.md b/lib/app/modules/us_core_guidance/README.md new file mode 100644 index 000000000..4ce116f5e --- /dev/null +++ b/lib/app/modules/us_core_guidance/README.md @@ -0,0 +1,3 @@ +This folder is for guidance-based tests for US Core on FHIR R4. This allows us +to separate the autogenerated-tests from the manually created tests that are based +from guidance text. This solution could be improved. diff --git a/lib/app/modules/us_core_r4/clinicalnotes_sequence.rb b/lib/app/modules/us_core_guidance/clinicalnotes_sequence.rb similarity index 100% rename from lib/app/modules/us_core_r4/clinicalnotes_sequence.rb rename to lib/app/modules/us_core_guidance/clinicalnotes_sequence.rb diff --git a/lib/app/modules/us_core_r4/r4_provenance_sequence.rb b/lib/app/modules/us_core_guidance/r4_provenance_sequence.rb similarity index 100% rename from lib/app/modules/us_core_r4/r4_provenance_sequence.rb rename to lib/app/modules/us_core_guidance/r4_provenance_sequence.rb diff --git a/lib/app/modules/us_core_r4/us_core_patient_read_only_sequence.rb b/lib/app/modules/us_core_guidance/us_core_patient_read_only_sequence.rb similarity index 100% rename from lib/app/modules/us_core_r4/us_core_patient_read_only_sequence.rb rename to lib/app/modules/us_core_guidance/us_core_patient_read_only_sequence.rb diff --git a/lib/app/modules/us_core_r4/us_core_r4_capability_statement_sequence.rb b/lib/app/modules/us_core_guidance/us_core_r4_capability_statement_sequence.rb similarity index 100% rename from lib/app/modules/us_core_r4/us_core_r4_capability_statement_sequence.rb rename to lib/app/modules/us_core_guidance/us_core_r4_capability_statement_sequence.rb diff --git a/lib/app/modules/us_core_r4/pediatric_bmi_for_age_sequence.rb b/lib/app/modules/us_core_r4/pediatric_bmi_for_age_sequence.rb deleted file mode 100644 index 46815dbdf..000000000 --- a/lib/app/modules/us_core_r4/pediatric_bmi_for_age_sequence.rb +++ /dev/null @@ -1,337 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class PediatricBmiForAgeSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Pediatric BMI for Age Observation Tests' - - description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Observation' # change me - - requires :token, :patient_id - conformance_supports :Observation - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'code' - value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'code on resource does not match code requested' - - when 'date' - value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'date on resource does not match date requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [PediatricBmiForAge Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age) - - ) - - @resources_found = false - - test 'Server rejects Observation search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { patient: @instance.patient_id, code: '59576-9' } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Observation search by patient+code' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { patient: @instance.patient_id, code: '59576-9' } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) - @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_bmi_age]) - save_delayed_sequence_references(@observation) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - end - - test 'Server returns expected results from Observation search by patient+category' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - search_params = { 'patient': patient_val, 'category': category_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Observation search by patient+category+date' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - date_val = resolve_element_from_path(@observation, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Observation search by patient+code+date' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@observation, 'code.coding.code') - date_val = resolve_element_from_path(@observation, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Observation search by patient+category+status' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - status_val = resolve_element_from_path(@observation, 'status') - search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - end - - test 'Observation read resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation vread resource supported' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation history resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '10' - link 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_bmi_age]) - end - - test 'At least one of every must support element is provided in any Observation for this patient.' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Observation.status', - 'Observation.category', - 'Observation.category', - 'Observation.category.coding', - 'Observation.category.coding.system', - 'Observation.category.coding.code', - 'Observation.subject', - 'Observation.effectiveDateTime', - 'Observation.effectivePeriod', - 'Observation.valueQuantity.value', - 'Observation.valueQuantity.unit', - 'Observation.valueQuantity.system', - 'Observation.valueQuantity.code', - 'Observation.dataAbsentReason', - 'Observation.component', - 'Observation.component.code', - 'Observation.component.valueQuantity', - 'Observation.component.valueCodeableConcept', - 'Observation.component.valueString', - 'Observation.component.valueBoolean', - 'Observation.component.valueInteger', - 'Observation.component.valueRange', - 'Observation.component.valueRatio', - 'Observation.component.valueSampledData', - 'Observation.component.valueTime', - 'Observation.component.valueDateTime', - 'Observation.component.valuePeriod', - 'Observation.component.dataAbsentReason' - ] - must_support_elements.each do |path| - @observation_ary&.each do |resource| - truncated_path = path.gsub('Observation.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @observation_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '12' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@observation) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/pediatric_weight_for_height_sequence.rb b/lib/app/modules/us_core_r4/pediatric_weight_for_height_sequence.rb deleted file mode 100644 index 2224b7511..000000000 --- a/lib/app/modules/us_core_r4/pediatric_weight_for_height_sequence.rb +++ /dev/null @@ -1,337 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class PediatricWeightForHeightSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Pediatric Weight for Height Observation Tests' - - description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Observation' # change me - - requires :token, :patient_id - conformance_supports :Observation - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'code' - value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'code on resource does not match code requested' - - when 'date' - value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'date on resource does not match date requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [PediatricWeightForHeight Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height) - - ) - - @resources_found = false - - test 'Server rejects Observation search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { patient: @instance.patient_id, code: '77606-2' } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Observation search by patient+code' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { patient: @instance.patient_id, code: '77606-2' } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) - @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_weight_height]) - save_delayed_sequence_references(@observation) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - end - - test 'Server returns expected results from Observation search by patient+category' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - search_params = { 'patient': patient_val, 'category': category_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Observation search by patient+category+date' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - date_val = resolve_element_from_path(@observation, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Observation search by patient+code+date' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@observation, 'code.coding.code') - date_val = resolve_element_from_path(@observation, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Observation search by patient+category+status' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - status_val = resolve_element_from_path(@observation, 'status') - search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - end - - test 'Observation read resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation vread resource supported' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation history resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '10' - link 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:pediatric_weight_height]) - end - - test 'At least one of every must support element is provided in any Observation for this patient.' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Observation.status', - 'Observation.category', - 'Observation.category', - 'Observation.category.coding', - 'Observation.category.coding.system', - 'Observation.category.coding.code', - 'Observation.subject', - 'Observation.effectiveDateTime', - 'Observation.effectivePeriod', - 'Observation.valueQuantity.value', - 'Observation.valueQuantity.unit', - 'Observation.valueQuantity.system', - 'Observation.valueQuantity.code', - 'Observation.dataAbsentReason', - 'Observation.component', - 'Observation.component.code', - 'Observation.component.valueQuantity', - 'Observation.component.valueCodeableConcept', - 'Observation.component.valueString', - 'Observation.component.valueBoolean', - 'Observation.component.valueInteger', - 'Observation.component.valueRange', - 'Observation.component.valueRatio', - 'Observation.component.valueSampledData', - 'Observation.component.valueTime', - 'Observation.component.valueDateTime', - 'Observation.component.valuePeriod', - 'Observation.component.dataAbsentReason' - ] - must_support_elements.each do |path| - @observation_ary&.each do |resource| - truncated_path = path.gsub('Observation.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @observation_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '12' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@observation) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_allergyintolerance_sequence.rb b/lib/app/modules/us_core_r4/us_core_allergyintolerance_sequence.rb deleted file mode 100644 index 31af9bc12..000000000 --- a/lib/app/modules/us_core_r4/us_core_allergyintolerance_sequence.rb +++ /dev/null @@ -1,217 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4AllergyintoleranceSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'AllergyIntolerance Tests' - - description 'Verify that AllergyIntolerance resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'AllergyIntolerance' # change me - - requires :token, :patient_id - conformance_supports :AllergyIntolerance - - def validate_resource_item(resource, property, value) - case property - - when 'clinical-status' - value_found = can_resolve_path(resource, 'clinicalStatus.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'clinical-status on resource does not match clinical-status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Allergyintolerance Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance) - - ) - - @resources_found = false - - test 'Server rejects AllergyIntolerance search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from AllergyIntolerance search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @allergyintolerance = reply.try(:resource).try(:entry).try(:first).try(:resource) - @allergyintolerance_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('AllergyIntolerance'), reply) - save_delayed_sequence_references(@allergyintolerance) - validate_search_reply(versioned_resource_class('AllergyIntolerance'), reply, search_params) - end - - test 'Server returns expected results from AllergyIntolerance search by patient+clinical-status' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@allergyintolerance.nil?, 'Expected valid AllergyIntolerance resource to be present' - - patient_val = @instance.patient_id - clinical_status_val = resolve_element_from_path(@allergyintolerance, 'clinicalStatus.coding.code') - search_params = { 'patient': patient_val, 'clinical-status': clinical_status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('AllergyIntolerance'), search_params) - validate_search_reply(versioned_resource_class('AllergyIntolerance'), reply, search_params) - assert_response_ok(reply) - end - - test 'AllergyIntolerance read resource supported' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:AllergyIntolerance, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) - end - - test 'AllergyIntolerance vread resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:AllergyIntolerance, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) - end - - test 'AllergyIntolerance history resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:AllergyIntolerance, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@allergyintolerance, versioned_resource_class('AllergyIntolerance')) - end - - test 'AllergyIntolerance resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '07' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('AllergyIntolerance') - end - - test 'At least one of every must support element is provided in any AllergyIntolerance for this patient.' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @allergyintolerance_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'AllergyIntolerance.clinicalStatus', - 'AllergyIntolerance.verificationStatus', - 'AllergyIntolerance.code', - 'AllergyIntolerance.patient' - ] - must_support_elements.each do |path| - @allergyintolerance_ary&.each do |resource| - truncated_path = path.gsub('AllergyIntolerance.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @allergyintolerance_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided AllergyIntolerance resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '09' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:AllergyIntolerance, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@allergyintolerance) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_careplan_sequence.rb b/lib/app/modules/us_core_r4/us_core_careplan_sequence.rb deleted file mode 100644 index e91f0f73f..000000000 --- a/lib/app/modules/us_core_r4/us_core_careplan_sequence.rb +++ /dev/null @@ -1,292 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4CareplanSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'CarePlan Tests' - - description 'Verify that CarePlan resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'CarePlan' # change me - - requires :token, :patient_id - conformance_supports :CarePlan - - def validate_resource_item(resource, property, value) - case property - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'date' - value_found = can_resolve_path(resource, 'period') do |period| - validate_period_search(value, period) - end - assert value_found, 'date on resource does not match date requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Careplan Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan) - - ) - - @resources_found = false - - test 'Server rejects CarePlan search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { patient: @instance.patient_id, category: 'assess-plan' } - - reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from CarePlan search by patient+category' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { patient: @instance.patient_id, category: 'assess-plan' } - - reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @careplan = reply.try(:resource).try(:entry).try(:first).try(:resource) - @careplan_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('CarePlan'), reply) - save_delayed_sequence_references(@careplan) - validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) - end - - test 'Server returns expected results from CarePlan search by patient+category+status' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@careplan, 'category.coding.code') - status_val = resolve_element_from_path(@careplan, 'status') - search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) - validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from CarePlan search by patient+category+status+date' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@careplan, 'category.coding.code') - status_val = resolve_element_from_path(@careplan, 'status') - date_val = resolve_element_from_path(@careplan, 'period.start') - search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) - validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('CarePlan'), comparator_search_params) - validate_search_reply(versioned_resource_class('CarePlan'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from CarePlan search by patient+category+date' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@careplan.nil?, 'Expected valid CarePlan resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@careplan, 'category.coding.code') - date_val = resolve_element_from_path(@careplan, 'period.start') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('CarePlan'), search_params) - validate_search_reply(versioned_resource_class('CarePlan'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('CarePlan'), comparator_search_params) - validate_search_reply(versioned_resource_class('CarePlan'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'CarePlan read resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:CarePlan, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@careplan, versioned_resource_class('CarePlan')) - end - - test 'CarePlan vread resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:CarePlan, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@careplan, versioned_resource_class('CarePlan')) - end - - test 'CarePlan history resource supported' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:CarePlan, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@careplan, versioned_resource_class('CarePlan')) - end - - test 'CarePlan resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '09' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('CarePlan') - end - - test 'At least one of every must support element is provided in any CarePlan for this patient.' do - metadata do - id '10' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @careplan_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'CarePlan.text', - 'CarePlan.text.status', - 'CarePlan.status', - 'CarePlan.intent', - 'CarePlan.category', - 'CarePlan.category', - 'CarePlan.subject' - ] - must_support_elements.each do |path| - @careplan_ary&.each do |resource| - truncated_path = path.gsub('CarePlan.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @careplan_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided CarePlan resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '11' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:CarePlan, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@careplan) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_careteam_sequence.rb b/lib/app/modules/us_core_r4/us_core_careteam_sequence.rb deleted file mode 100644 index 507bb20fb..000000000 --- a/lib/app/modules/us_core_r4/us_core_careteam_sequence.rb +++ /dev/null @@ -1,191 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4CareteamSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'CareTeam Tests' - - description 'Verify that CareTeam resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'CareTeam' # change me - - requires :token, :patient_id - conformance_supports :CareTeam - - def validate_resource_item(resource, property, value) - case property - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Careteam Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam) - - ) - - @resources_found = false - - test 'Server rejects CareTeam search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { patient: @instance.patient_id, status: 'active' } - - reply = get_resource_by_params(versioned_resource_class('CareTeam'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from CareTeam search by patient+status' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { patient: @instance.patient_id, status: 'active' } - - reply = get_resource_by_params(versioned_resource_class('CareTeam'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @careteam = reply.try(:resource).try(:entry).try(:first).try(:resource) - @careteam_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('CareTeam'), reply) - save_delayed_sequence_references(@careteam) - validate_search_reply(versioned_resource_class('CareTeam'), reply, search_params) - end - - test 'CareTeam read resource supported' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:CareTeam, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@careteam, versioned_resource_class('CareTeam')) - end - - test 'CareTeam vread resource supported' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:CareTeam, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@careteam, versioned_resource_class('CareTeam')) - end - - test 'CareTeam history resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:CareTeam, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@careteam, versioned_resource_class('CareTeam')) - end - - test 'CareTeam resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '06' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('CareTeam') - end - - test 'At least one of every must support element is provided in any CareTeam for this patient.' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @careteam_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'CareTeam.status', - 'CareTeam.subject', - 'CareTeam.participant', - 'CareTeam.participant.role', - 'CareTeam.participant.member' - ] - must_support_elements.each do |path| - @careteam_ary&.each do |resource| - truncated_path = path.gsub('CareTeam.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @careteam_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided CareTeam resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '08' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:CareTeam, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@careteam) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_condition_sequence.rb b/lib/app/modules/us_core_r4/us_core_condition_sequence.rb deleted file mode 100644 index 68c76b689..000000000 --- a/lib/app/modules/us_core_r4/us_core_condition_sequence.rb +++ /dev/null @@ -1,309 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4ConditionSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Condition Tests' - - description 'Verify that Condition resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Condition' # change me - - requires :token, :patient_id - conformance_supports :Condition - - def validate_resource_item(resource, property, value) - case property - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'clinical-status' - value_found = can_resolve_path(resource, 'clinicalStatus.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'clinical-status on resource does not match clinical-status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'onset-date' - value_found = can_resolve_path(resource, 'onsetDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'onset-date on resource does not match onset-date requested' - - when 'code' - value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'code on resource does not match code requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Condition Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition) - - ) - - @resources_found = false - - test 'Server rejects Condition search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Condition search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @condition = reply.try(:resource).try(:entry).try(:first).try(:resource) - @condition_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Condition'), reply) - save_delayed_sequence_references(@condition) - validate_search_reply(versioned_resource_class('Condition'), reply, search_params) - end - - test 'Server returns expected results from Condition search by patient+onset-date' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@condition.nil?, 'Expected valid Condition resource to be present' - - patient_val = @instance.patient_id - onset_date_val = resolve_element_from_path(@condition, 'onsetDateTime') - search_params = { 'patient': patient_val, 'onset-date': onset_date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) - validate_search_reply(versioned_resource_class('Condition'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, onset_date_val) - comparator_search_params = { 'patient': patient_val, 'onset-date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Condition'), comparator_search_params) - validate_search_reply(versioned_resource_class('Condition'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Condition search by patient+category' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@condition.nil?, 'Expected valid Condition resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@condition, 'category.coding.code') - search_params = { 'patient': patient_val, 'category': category_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) - validate_search_reply(versioned_resource_class('Condition'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Condition search by patient+code' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@condition.nil?, 'Expected valid Condition resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@condition, 'code.coding.code') - search_params = { 'patient': patient_val, 'code': code_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) - validate_search_reply(versioned_resource_class('Condition'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Condition search by patient+clinical-status' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@condition.nil?, 'Expected valid Condition resource to be present' - - patient_val = @instance.patient_id - clinical_status_val = resolve_element_from_path(@condition, 'clinicalStatus.coding.code') - search_params = { 'patient': patient_val, 'clinical-status': clinical_status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Condition'), search_params) - validate_search_reply(versioned_resource_class('Condition'), reply, search_params) - assert_response_ok(reply) - end - - test 'Condition read resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Condition, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@condition, versioned_resource_class('Condition')) - end - - test 'Condition vread resource supported' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Condition, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@condition, versioned_resource_class('Condition')) - end - - test 'Condition history resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Condition, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@condition, versioned_resource_class('Condition')) - end - - test 'Condition resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '10' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Condition') - end - - test 'At least one of every must support element is provided in any Condition for this patient.' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @condition_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Condition.clinicalStatus', - 'Condition.verificationStatus', - 'Condition.category', - 'Condition.code', - 'Condition.subject' - ] - must_support_elements.each do |path| - @condition_ary&.each do |resource| - truncated_path = path.gsub('Condition.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @condition_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Condition resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '12' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Condition, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@condition) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_device_sequence.rb b/lib/app/modules/us_core_r4/us_core_device_sequence.rb deleted file mode 100644 index fc099f4dd..000000000 --- a/lib/app/modules/us_core_r4/us_core_device_sequence.rb +++ /dev/null @@ -1,218 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4DeviceSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Device Tests' - - description 'Verify that Device resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Device' # change me - - requires :token, :patient_id - conformance_supports :Device - - def validate_resource_item(resource, property, value) - case property - - when 'patient' - value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'type' - value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'type on resource does not match type requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Device Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-device) - - ) - - @resources_found = false - - test 'Server rejects Device search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Device'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Device search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Device'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @device = reply.try(:resource).try(:entry).try(:first).try(:resource) - @device_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Device'), reply) - save_delayed_sequence_references(@device) - validate_search_reply(versioned_resource_class('Device'), reply, search_params) - end - - test 'Server returns expected results from Device search by patient+type' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@device.nil?, 'Expected valid Device resource to be present' - - patient_val = @instance.patient_id - type_val = resolve_element_from_path(@device, 'type.coding.code') - search_params = { 'patient': patient_val, 'type': type_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Device'), search_params) - validate_search_reply(versioned_resource_class('Device'), reply, search_params) - assert_response_ok(reply) - end - - test 'Device read resource supported' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Device, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@device, versioned_resource_class('Device')) - end - - test 'Device vread resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Device, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@device, versioned_resource_class('Device')) - end - - test 'Device history resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Device, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@device, versioned_resource_class('Device')) - end - - test 'Device resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '07' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-device' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Device') - end - - test 'At least one of every must support element is provided in any Device for this patient.' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @device_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Device.udiCarrier', - 'Device.udiCarrier.carrierAIDC', - 'Device.udiCarrier.carrierHRF', - 'Device.type', - 'Device.patient' - ] - must_support_elements.each do |path| - @device_ary&.each do |resource| - truncated_path = path.gsub('Device.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @device_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Device resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '09' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Device, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@device) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_diagnosticreport_lab_sequence.rb b/lib/app/modules/us_core_r4/us_core_diagnosticreport_lab_sequence.rb deleted file mode 100644 index 6760be109..000000000 --- a/lib/app/modules/us_core_r4/us_core_diagnosticreport_lab_sequence.rb +++ /dev/null @@ -1,386 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4DiagnosticreportLabSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'DiagnosticReport for Laboratory Results Reporting Tests' - - description 'Verify that DiagnosticReport resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'DiagnosticReport' # change me - - requires :token, :patient_id - conformance_supports :DiagnosticReport - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'code' - value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'code on resource does not match code requested' - - when 'date' - value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'date on resource does not match date requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [DiagnosticreportLab Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab) - - ) - - @resources_found = false - - test 'Server rejects DiagnosticReport search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { patient: @instance.patient_id, category: 'LAB' } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from DiagnosticReport search by patient+category' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { patient: @instance.patient_id, category: 'LAB' } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @diagnosticreport = reply.try(:resource).try(:entry).try(:first).try(:resource) - @diagnosticreport_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('DiagnosticReport'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_lab]) - save_delayed_sequence_references(@diagnosticreport) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - end - - test 'Server returns expected results from DiagnosticReport search by patient+code' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') - search_params = { 'patient': patient_val, 'code': code_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DiagnosticReport search by patient+category+date' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') - date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from DiagnosticReport search by patient+code+date' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') - date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from DiagnosticReport search by patient+status' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - status_val = resolve_element_from_path(@diagnosticreport, 'status') - search_params = { 'patient': patient_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DiagnosticReport search by patient+category' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - search_params = { patient: @instance.patient_id, category: 'LAB' } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DiagnosticReport search by patient+category+date' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') - date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'DiagnosticReport create resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:create]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_create_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) - end - - test 'DiagnosticReport read resource supported' do - metadata do - id '10' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) - end - - test 'DiagnosticReport vread resource supported' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) - end - - test 'DiagnosticReport history resource supported' do - metadata do - id '12' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) - end - - test 'DiagnosticReport resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '13' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('DiagnosticReport', Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_lab]) - end - - test 'At least one of every must support element is provided in any DiagnosticReport for this patient.' do - metadata do - id '14' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @diagnosticreport_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'DiagnosticReport.status', - 'DiagnosticReport.category', - 'DiagnosticReport.code', - 'DiagnosticReport.subject', - 'DiagnosticReport.effectiveDateTime', - 'DiagnosticReport.effectivePeriod', - 'DiagnosticReport.issued', - 'DiagnosticReport.performer', - 'DiagnosticReport.result', - 'DiagnosticReport.media', - 'DiagnosticReport.presentedForm' - ] - must_support_elements.each do |path| - @diagnosticreport_ary&.each do |resource| - truncated_path = path.gsub('DiagnosticReport.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @diagnosticreport_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided DiagnosticReport resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '15' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@diagnosticreport) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_diagnosticreport_note_sequence.rb b/lib/app/modules/us_core_r4/us_core_diagnosticreport_note_sequence.rb deleted file mode 100644 index f423aadd5..000000000 --- a/lib/app/modules/us_core_r4/us_core_diagnosticreport_note_sequence.rb +++ /dev/null @@ -1,386 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4DiagnosticreportNoteSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'DiagnosticReport for Report and Note exchange Tests' - - description 'Verify that DiagnosticReport resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'DiagnosticReport' # change me - - requires :token, :patient_id - conformance_supports :DiagnosticReport - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'code' - value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'code on resource does not match code requested' - - when 'date' - value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'date on resource does not match date requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [DiagnosticreportNote Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note) - - ) - - @resources_found = false - - test 'Server rejects DiagnosticReport search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { patient: @instance.patient_id, code: 'LP29684-5' } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from DiagnosticReport search by patient+category' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { patient: @instance.patient_id, code: 'LP29684-5' } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @diagnosticreport = reply.try(:resource).try(:entry).try(:first).try(:resource) - @diagnosticreport_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('DiagnosticReport'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_note]) - save_delayed_sequence_references(@diagnosticreport) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - end - - test 'Server returns expected results from DiagnosticReport search by patient+code' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') - search_params = { 'patient': patient_val, 'code': code_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DiagnosticReport search by patient+category+date' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') - date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from DiagnosticReport search by patient+code+date' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@diagnosticreport, 'code.coding.code') - date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from DiagnosticReport search by patient+status' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - status_val = resolve_element_from_path(@diagnosticreport, 'status') - search_params = { 'patient': patient_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DiagnosticReport search by patient+category' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - search_params = { patient: @instance.patient_id, code: 'LP29684-5' } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DiagnosticReport search by patient+category+date' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@diagnosticreport.nil?, 'Expected valid DiagnosticReport resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@diagnosticreport, 'category.coding.code') - date_val = resolve_element_from_path(@diagnosticreport, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('DiagnosticReport'), comparator_search_params) - validate_search_reply(versioned_resource_class('DiagnosticReport'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'DiagnosticReport create resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:create]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_create_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) - end - - test 'DiagnosticReport read resource supported' do - metadata do - id '10' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) - end - - test 'DiagnosticReport vread resource supported' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) - end - - test 'DiagnosticReport history resource supported' do - metadata do - id '12' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@diagnosticreport, versioned_resource_class('DiagnosticReport')) - end - - test 'DiagnosticReport resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '13' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('DiagnosticReport', Inferno::ValidationUtil::US_CORE_R4_URIS[:diagnostic_report_note]) - end - - test 'At least one of every must support element is provided in any DiagnosticReport for this patient.' do - metadata do - id '14' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @diagnosticreport_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'DiagnosticReport.status', - 'DiagnosticReport.category', - 'DiagnosticReport.code', - 'DiagnosticReport.subject', - 'DiagnosticReport.encounter', - 'DiagnosticReport.effectiveDateTime', - 'DiagnosticReport.effectivePeriod', - 'DiagnosticReport.issued', - 'DiagnosticReport.performer', - 'DiagnosticReport.media', - 'DiagnosticReport.presentedForm' - ] - must_support_elements.each do |path| - @diagnosticreport_ary&.each do |resource| - truncated_path = path.gsub('DiagnosticReport.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @diagnosticreport_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided DiagnosticReport resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '15' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DiagnosticReport, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@diagnosticreport) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_documentreference_sequence.rb b/lib/app/modules/us_core_r4/us_core_documentreference_sequence.rb deleted file mode 100644 index a901a219b..000000000 --- a/lib/app/modules/us_core_r4/us_core_documentreference_sequence.rb +++ /dev/null @@ -1,387 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4DocumentreferenceSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'DocumentReference Tests' - - description 'Verify that DocumentReference resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'DocumentReference' # change me - - requires :token, :patient_id - conformance_supports :DocumentReference - - def validate_resource_item(resource, property, value) - case property - - when '_id' - value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } - assert value_found, '_id on resource does not match _id requested' - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'type' - value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'type on resource does not match type requested' - - when 'date' - value_found = can_resolve_path(resource, 'date') { |value_in_resource| value_in_resource == value } - assert value_found, 'date on resource does not match date requested' - - when 'period' - value_found = can_resolve_path(resource, 'context.period') do |period| - validate_period_search(value, period) - end - assert value_found, 'period on resource does not match period requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Documentreference Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference) - - ) - - @resources_found = false - - test 'Server rejects DocumentReference search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from DocumentReference search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @documentreference = reply.try(:resource).try(:entry).try(:first).try(:resource) - @documentreference_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('DocumentReference'), reply) - save_delayed_sequence_references(@documentreference) - validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) - end - - test 'Server returns expected results from DocumentReference search by _id' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' - - id_val = resolve_element_from_path(@documentreference, 'id') - search_params = { '_id': id_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) - validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DocumentReference search by patient+category' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@documentreference, 'category.coding.code') - search_params = { 'patient': patient_val, 'category': category_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) - validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DocumentReference search by patient+category+date' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@documentreference, 'category.coding.code') - date_val = resolve_element_from_path(@documentreference, 'date') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) - validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DocumentReference search by patient+type' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' - - patient_val = @instance.patient_id - type_val = resolve_element_from_path(@documentreference, 'type.coding.code') - search_params = { 'patient': patient_val, 'type': type_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) - validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DocumentReference search by patient+status' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' - - patient_val = @instance.patient_id - status_val = resolve_element_from_path(@documentreference, 'status') - search_params = { 'patient': patient_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) - validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from DocumentReference search by patient+type+period' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@documentreference.nil?, 'Expected valid DocumentReference resource to be present' - - patient_val = @instance.patient_id - type_val = resolve_element_from_path(@documentreference, 'type.coding.code') - period_val = resolve_element_from_path(@documentreference, 'context.period.start') - search_params = { 'patient': patient_val, 'type': type_val, 'period': period_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), search_params) - validate_search_reply(versioned_resource_class('DocumentReference'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, period_val) - comparator_search_params = { 'patient': patient_val, 'type': type_val, 'period': comparator_val } - reply = get_resource_by_params(versioned_resource_class('DocumentReference'), comparator_search_params) - validate_search_reply(versioned_resource_class('DocumentReference'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'DocumentReference create resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DocumentReference, [:create]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_create_reply(@documentreference, versioned_resource_class('DocumentReference')) - end - - test 'DocumentReference read resource supported' do - metadata do - id '10' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DocumentReference, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@documentreference, versioned_resource_class('DocumentReference')) - end - - test 'DocumentReference vread resource supported' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DocumentReference, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@documentreference, versioned_resource_class('DocumentReference')) - end - - test 'DocumentReference history resource supported' do - metadata do - id '12' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DocumentReference, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@documentreference, versioned_resource_class('DocumentReference')) - end - - test 'DocumentReference resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '13' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('DocumentReference') - end - - test 'At least one of every must support element is provided in any DocumentReference for this patient.' do - metadata do - id '14' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @documentreference_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'DocumentReference.identifier', - 'DocumentReference.status', - 'DocumentReference.type', - 'DocumentReference.category', - 'DocumentReference.subject', - 'DocumentReference.date', - 'DocumentReference.author', - 'DocumentReference.custodian', - 'DocumentReference.content', - 'DocumentReference.content.attachment', - 'DocumentReference.content.attachment.contentType', - 'DocumentReference.content.attachment.data', - 'DocumentReference.content.attachment.url', - 'DocumentReference.content.format', - 'DocumentReference.context', - 'DocumentReference.context.encounter', - 'DocumentReference.context.period' - ] - must_support_elements.each do |path| - @documentreference_ary&.each do |resource| - truncated_path = path.gsub('DocumentReference.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @documentreference_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided DocumentReference resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '15' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:DocumentReference, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@documentreference) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_encounter_sequence.rb b/lib/app/modules/us_core_r4/us_core_encounter_sequence.rb deleted file mode 100644 index d196b2c4e..000000000 --- a/lib/app/modules/us_core_r4/us_core_encounter_sequence.rb +++ /dev/null @@ -1,371 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4EncounterSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Encounter Tests' - - description 'Verify that Encounter resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Encounter' # change me - - requires :token, :patient_id - conformance_supports :Encounter - - def validate_resource_item(resource, property, value) - case property - - when '_id' - value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } - assert value_found, '_id on resource does not match _id requested' - - when 'class' - value_found = can_resolve_path(resource, 'local_class.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'class on resource does not match class requested' - - when 'date' - value_found = can_resolve_path(resource, 'period') do |period| - validate_period_search(value, period) - end - assert value_found, 'date on resource does not match date requested' - - when 'identifier' - value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } - assert value_found, 'identifier on resource does not match identifier requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'type' - value_found = can_resolve_path(resource, 'type.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'type on resource does not match type requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Encounter Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter) - - ) - - @resources_found = false - - test 'Server rejects Encounter search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Encounter search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @encounter = reply.try(:resource).try(:entry).try(:first).try(:resource) - @encounter_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Encounter'), reply) - save_delayed_sequence_references(@encounter) - validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) - end - - test 'Server returns expected results from Encounter search by _id' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@encounter.nil?, 'Expected valid Encounter resource to be present' - - id_val = resolve_element_from_path(@encounter, 'id') - search_params = { '_id': id_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) - validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Encounter search by date+patient' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@encounter.nil?, 'Expected valid Encounter resource to be present' - - date_val = resolve_element_from_path(@encounter, 'period.start') - patient_val = @instance.patient_id - search_params = { 'date': date_val, 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) - validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'date': comparator_val, 'patient': patient_val } - reply = get_resource_by_params(versioned_resource_class('Encounter'), comparator_search_params) - validate_search_reply(versioned_resource_class('Encounter'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Encounter search by identifier' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@encounter.nil?, 'Expected valid Encounter resource to be present' - - identifier_val = resolve_element_from_path(@encounter, 'identifier.value') - search_params = { 'identifier': identifier_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) - validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Encounter search by patient+status' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@encounter.nil?, 'Expected valid Encounter resource to be present' - - patient_val = @instance.patient_id - status_val = resolve_element_from_path(@encounter, 'status') - search_params = { 'patient': patient_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) - validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Encounter search by class+patient' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@encounter.nil?, 'Expected valid Encounter resource to be present' - - class_val = resolve_element_from_path(@encounter, 'class.code') - patient_val = @instance.patient_id - search_params = { 'class': class_val, 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) - validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Encounter search by patient+type' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@encounter.nil?, 'Expected valid Encounter resource to be present' - - patient_val = @instance.patient_id - type_val = resolve_element_from_path(@encounter, 'type.coding.code') - search_params = { 'patient': patient_val, 'type': type_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Encounter'), search_params) - validate_search_reply(versioned_resource_class('Encounter'), reply, search_params) - assert_response_ok(reply) - end - - test 'Encounter read resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Encounter, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@encounter, versioned_resource_class('Encounter')) - end - - test 'Encounter vread resource supported' do - metadata do - id '10' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Encounter, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@encounter, versioned_resource_class('Encounter')) - end - - test 'Encounter history resource supported' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Encounter, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@encounter, versioned_resource_class('Encounter')) - end - - test 'Encounter resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '12' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Encounter') - end - - test 'At least one of every must support element is provided in any Encounter for this patient.' do - metadata do - id '13' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @encounter_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Encounter.identifier', - 'Encounter.identifier.system', - 'Encounter.identifier.value', - 'Encounter.status', - 'Encounter.local_class', - 'Encounter.type', - 'Encounter.subject', - 'Encounter.participant', - 'Encounter.participant.type', - 'Encounter.participant.period', - 'Encounter.participant.individual', - 'Encounter.period', - 'Encounter.reasonCode', - 'Encounter.hospitalization', - 'Encounter.hospitalization.dischargeDisposition', - 'Encounter.location', - 'Encounter.location.location' - ] - must_support_elements.each do |path| - @encounter_ary&.each do |resource| - truncated_path = path.gsub('Encounter.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @encounter_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Encounter resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '14' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Encounter, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@encounter) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_goal_sequence.rb b/lib/app/modules/us_core_r4/us_core_goal_sequence.rb deleted file mode 100644 index 9c155df24..000000000 --- a/lib/app/modules/us_core_r4/us_core_goal_sequence.rb +++ /dev/null @@ -1,256 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4GoalSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Goal Tests' - - description 'Verify that Goal resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Goal' # change me - - requires :token, :patient_id - conformance_supports :Goal - - def validate_resource_item(resource, property, value) - case property - - when 'lifecycle-status' - value_found = can_resolve_path(resource, 'lifecycleStatus') { |value_in_resource| value_in_resource == value } - assert value_found, 'lifecycle-status on resource does not match lifecycle-status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'target-date' - value_found = can_resolve_path(resource, 'target.dueDate') do |date| - validate_date_search(value, date) - end - assert value_found, 'target-date on resource does not match target-date requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Goal Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal) - - ) - - @resources_found = false - - test 'Server rejects Goal search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Goal search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @goal = reply.try(:resource).try(:entry).try(:first).try(:resource) - @goal_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Goal'), reply) - save_delayed_sequence_references(@goal) - validate_search_reply(versioned_resource_class('Goal'), reply, search_params) - end - - test 'Server returns expected results from Goal search by patient+target-date' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@goal.nil?, 'Expected valid Goal resource to be present' - - patient_val = @instance.patient_id - target_date_val = resolve_element_from_path(@goal, 'target.dueDate') - search_params = { 'patient': patient_val, 'target-date': target_date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) - validate_search_reply(versioned_resource_class('Goal'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, target_date_val) - comparator_search_params = { 'patient': patient_val, 'target-date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Goal'), comparator_search_params) - validate_search_reply(versioned_resource_class('Goal'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Goal search by patient+lifecycle-status' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@goal.nil?, 'Expected valid Goal resource to be present' - - patient_val = @instance.patient_id - lifecycle_status_val = resolve_element_from_path(@goal, 'lifecycleStatus') - search_params = { 'patient': patient_val, 'lifecycle-status': lifecycle_status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Goal'), search_params) - validate_search_reply(versioned_resource_class('Goal'), reply, search_params) - assert_response_ok(reply) - end - - test 'Goal read resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Goal, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@goal, versioned_resource_class('Goal')) - end - - test 'Goal vread resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Goal, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@goal, versioned_resource_class('Goal')) - end - - test 'Goal history resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Goal, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@goal, versioned_resource_class('Goal')) - end - - test 'Goal resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '08' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Goal') - end - - test 'At least one of every must support element is provided in any Goal for this patient.' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @goal_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Goal.lifecycleStatus', - 'Goal.description', - 'Goal.subject', - 'Goal.target', - 'Goal.target.dueDate', - 'Goal.target.dueDuration' - ] - must_support_elements.each do |path| - @goal_ary&.each do |resource| - truncated_path = path.gsub('Goal.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @goal_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Goal resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '10' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Goal, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@goal) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_immunization_sequence.rb b/lib/app/modules/us_core_r4/us_core_immunization_sequence.rb deleted file mode 100644 index fae1ad326..000000000 --- a/lib/app/modules/us_core_r4/us_core_immunization_sequence.rb +++ /dev/null @@ -1,257 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4ImmunizationSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Immunization Tests' - - description 'Verify that Immunization resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Immunization' # change me - - requires :token, :patient_id - conformance_supports :Immunization - - def validate_resource_item(resource, property, value) - case property - - when 'patient' - value_found = can_resolve_path(resource, 'patient.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'date' - value_found = can_resolve_path(resource, 'occurrenceDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'date on resource does not match date requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Immunization Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization) - - ) - - @resources_found = false - - test 'Server rejects Immunization search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Immunization search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @immunization = reply.try(:resource).try(:entry).try(:first).try(:resource) - @immunization_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Immunization'), reply) - save_delayed_sequence_references(@immunization) - validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) - end - - test 'Server returns expected results from Immunization search by patient+date' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@immunization.nil?, 'Expected valid Immunization resource to be present' - - patient_val = @instance.patient_id - date_val = resolve_element_from_path(@immunization, 'occurrenceDateTime') - search_params = { 'patient': patient_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) - validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Immunization'), comparator_search_params) - validate_search_reply(versioned_resource_class('Immunization'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Immunization search by patient+status' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@immunization.nil?, 'Expected valid Immunization resource to be present' - - patient_val = @instance.patient_id - status_val = resolve_element_from_path(@immunization, 'status') - search_params = { 'patient': patient_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Immunization'), search_params) - validate_search_reply(versioned_resource_class('Immunization'), reply, search_params) - assert_response_ok(reply) - end - - test 'Immunization read resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Immunization, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@immunization, versioned_resource_class('Immunization')) - end - - test 'Immunization vread resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Immunization, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@immunization, versioned_resource_class('Immunization')) - end - - test 'Immunization history resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Immunization, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@immunization, versioned_resource_class('Immunization')) - end - - test 'Immunization resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '08' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Immunization') - end - - test 'At least one of every must support element is provided in any Immunization for this patient.' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @immunization_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Immunization.status', - 'Immunization.statusReason', - 'Immunization.vaccineCode', - 'Immunization.patient', - 'Immunization.occurrenceDateTime', - 'Immunization.occurrenceString', - 'Immunization.primarySource' - ] - must_support_elements.each do |path| - @immunization_ary&.each do |resource| - truncated_path = path.gsub('Immunization.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @immunization_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Immunization resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '10' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Immunization, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@immunization) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_location_sequence.rb b/lib/app/modules/us_core_r4/us_core_location_sequence.rb deleted file mode 100644 index 30e308a3d..000000000 --- a/lib/app/modules/us_core_r4/us_core_location_sequence.rb +++ /dev/null @@ -1,299 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4LocationSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Location Tests' - - description 'Verify that Location resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Location' # change me - - requires :token - conformance_supports :Location - delayed_sequence - - def validate_resource_item(resource, property, value) - case property - - when 'name' - value_found = can_resolve_path(resource, 'name') { |value_in_resource| value_in_resource == value } - assert value_found, 'name on resource does not match name requested' - - when 'address' - value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } - assert value_found, 'address on resource does not match address requested' - - when 'address-city' - value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } - assert value_found, 'address-city on resource does not match address-city requested' - - when 'address-state' - value_found = can_resolve_path(resource, 'address.state') { |value_in_resource| value_in_resource == value } - assert value_found, 'address-state on resource does not match address-state requested' - - when 'address-postalcode' - value_found = can_resolve_path(resource, 'address.postalCode') { |value_in_resource| value_in_resource == value } - assert value_found, 'address-postalcode on resource does not match address-postalcode requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Location Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-location) - - ) - - @resources_found = false - - test 'Can read Location from the server' do - metadata do - id '01' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - location_id = @instance.resource_references.find { |reference| reference.resource_type == 'Location' }&.resource_id - skip 'No Location references found from the prior searches' if location_id.nil? - @location = fetch_resource('Location', location_id) - @resources_found = !@location.nil? - end - - test 'Server rejects Location search without authorization' do - metadata do - id '02' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - name_val = resolve_element_from_path(@location, 'name') - search_params = { 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Location'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Location search by name' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - name_val = resolve_element_from_path(@location, 'name') - search_params = { 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Location'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @location = reply.try(:resource).try(:entry).try(:first).try(:resource) - @location_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Location'), reply) - save_delayed_sequence_references(@location) - validate_search_reply(versioned_resource_class('Location'), reply, search_params) - end - - test 'Server returns expected results from Location search by address' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@location.nil?, 'Expected valid Location resource to be present' - - address_val = resolve_element_from_path(@location, 'address.city') - search_params = { 'address': address_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Location'), search_params) - validate_search_reply(versioned_resource_class('Location'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Location search by address-city' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@location.nil?, 'Expected valid Location resource to be present' - - address_city_val = resolve_element_from_path(@location, 'address.city') - search_params = { 'address-city': address_city_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Location'), search_params) - validate_search_reply(versioned_resource_class('Location'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Location search by address-state' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@location.nil?, 'Expected valid Location resource to be present' - - address_state_val = resolve_element_from_path(@location, 'address.state') - search_params = { 'address-state': address_state_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Location'), search_params) - validate_search_reply(versioned_resource_class('Location'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Location search by address-postalcode' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@location.nil?, 'Expected valid Location resource to be present' - - address_postalcode_val = resolve_element_from_path(@location, 'address.postalCode') - search_params = { 'address-postalcode': address_postalcode_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Location'), search_params) - validate_search_reply(versioned_resource_class('Location'), reply, search_params) - assert_response_ok(reply) - end - - test 'Location vread resource supported' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Location, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@location, versioned_resource_class('Location')) - end - - test 'Location history resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Location, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@location, versioned_resource_class('Location')) - end - - test 'Location resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '10' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-location' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Location') - end - - test 'At least one of every must support element is provided in any Location for this patient.' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @location_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Location.status', - 'Location.name', - 'Location.telecom', - 'Location.address', - 'Location.address.line', - 'Location.address.city', - 'Location.address.state', - 'Location.address.postalCode', - 'Location.managingOrganization' - ] - must_support_elements.each do |path| - @location_ary&.each do |resource| - truncated_path = path.gsub('Location.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @location_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Location resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '12' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Location, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@location) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_medication_sequence.rb b/lib/app/modules/us_core_r4/us_core_medication_sequence.rb deleted file mode 100644 index 42ed88a8c..000000000 --- a/lib/app/modules/us_core_r4/us_core_medication_sequence.rb +++ /dev/null @@ -1,128 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4MedicationSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Medication Tests' - - description 'Verify that Medication resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Medication' # change me - - requires :token - conformance_supports :Medication - delayed_sequence - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Medication Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication) - - ) - - @resources_found = false - - test 'Can read Medication from the server' do - metadata do - id '01' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - medication_id = @instance.resource_references.find { |reference| reference.resource_type == 'Medication' }&.resource_id - skip 'No Medication references found from the prior searches' if medication_id.nil? - @medication = fetch_resource('Medication', medication_id) - @resources_found = !@medication.nil? - end - - test 'Medication vread resource supported' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Medication, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@medication, versioned_resource_class('Medication')) - end - - test 'Medication history resource supported' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Medication, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@medication, versioned_resource_class('Medication')) - end - - test 'Medication resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '04' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Medication') - end - - test 'At least one of every must support element is provided in any Medication for this patient.' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @medication_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Medication.code' - ] - must_support_elements.each do |path| - @medication_ary&.each do |resource| - truncated_path = path.gsub('Medication.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @medication_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Medication resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '06' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Medication, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@medication) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_medicationrequest_sequence.rb b/lib/app/modules/us_core_r4/us_core_medicationrequest_sequence.rb deleted file mode 100644 index 289efd0c9..000000000 --- a/lib/app/modules/us_core_r4/us_core_medicationrequest_sequence.rb +++ /dev/null @@ -1,247 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4MedicationrequestSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'MedicationRequest Tests' - - description 'Verify that MedicationRequest resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'MedicationRequest' # change me - - requires :token, :patient_id - conformance_supports :MedicationRequest - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'authoredon' - value_found = can_resolve_path(resource, 'authoredOn') { |value_in_resource| value_in_resource == value } - assert value_found, 'authoredon on resource does not match authoredon requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Medicationrequest Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest) - - ) - - @resources_found = false - - test 'Server rejects MedicationRequest search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from MedicationRequest search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @medicationrequest = reply.try(:resource).try(:entry).try(:first).try(:resource) - @medicationrequest_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('MedicationRequest'), reply) - save_delayed_sequence_references(@medicationrequest) - validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) - end - - test 'Server returns expected results from MedicationRequest search by patient+status' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@medicationrequest.nil?, 'Expected valid MedicationRequest resource to be present' - - patient_val = @instance.patient_id - status_val = resolve_element_from_path(@medicationrequest, 'status') - search_params = { 'patient': patient_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) - validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from MedicationRequest search by patient+authoredon' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@medicationrequest.nil?, 'Expected valid MedicationRequest resource to be present' - - patient_val = @instance.patient_id - authoredon_val = resolve_element_from_path(@medicationrequest, 'authoredOn') - search_params = { 'patient': patient_val, 'authoredon': authoredon_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('MedicationRequest'), search_params) - validate_search_reply(versioned_resource_class('MedicationRequest'), reply, search_params) - assert_response_ok(reply) - end - - test 'MedicationRequest read resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:MedicationRequest, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) - end - - test 'MedicationRequest vread resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:MedicationRequest, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) - end - - test 'MedicationRequest history resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:MedicationRequest, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@medicationrequest, versioned_resource_class('MedicationRequest')) - end - - test 'MedicationRequest resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '08' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('MedicationRequest') - end - - test 'At least one of every must support element is provided in any MedicationRequest for this patient.' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @medicationrequest_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'MedicationRequest.status', - 'MedicationRequest.medicationCodeableConcept', - 'MedicationRequest.medicationReference', - 'MedicationRequest.subject', - 'MedicationRequest.authoredOn', - 'MedicationRequest.requester', - 'MedicationRequest.dosageInstruction', - 'MedicationRequest.dosageInstruction.text' - ] - must_support_elements.each do |path| - @medicationrequest_ary&.each do |resource| - truncated_path = path.gsub('MedicationRequest.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @medicationrequest_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided MedicationRequest resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '10' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:MedicationRequest, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@medicationrequest) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_medicationstatement_sequence.rb b/lib/app/modules/us_core_r4/us_core_medicationstatement_sequence.rb deleted file mode 100644 index b18841b65..000000000 --- a/lib/app/modules/us_core_r4/us_core_medicationstatement_sequence.rb +++ /dev/null @@ -1,258 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4MedicationstatementSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'MedicationStatement Tests' - - description 'Verify that MedicationStatement resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'MedicationStatement' # change me - - requires :token, :patient_id - conformance_supports :MedicationStatement - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'effective' - value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'effective on resource does not match effective requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Medicationstatement Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement) - - ) - - @resources_found = false - - test 'Server rejects MedicationStatement search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from MedicationStatement search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @medicationstatement = reply.try(:resource).try(:entry).try(:first).try(:resource) - @medicationstatement_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('MedicationStatement'), reply) - save_delayed_sequence_references(@medicationstatement) - validate_search_reply(versioned_resource_class('MedicationStatement'), reply, search_params) - end - - test 'Server returns expected results from MedicationStatement search by patient+effective' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@medicationstatement.nil?, 'Expected valid MedicationStatement resource to be present' - - patient_val = @instance.patient_id - effective_val = resolve_element_from_path(@medicationstatement, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'effective': effective_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), search_params) - validate_search_reply(versioned_resource_class('MedicationStatement'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, effective_val) - comparator_search_params = { 'patient': patient_val, 'effective': comparator_val } - reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), comparator_search_params) - validate_search_reply(versioned_resource_class('MedicationStatement'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from MedicationStatement search by patient+status' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@medicationstatement.nil?, 'Expected valid MedicationStatement resource to be present' - - patient_val = @instance.patient_id - status_val = resolve_element_from_path(@medicationstatement, 'status') - search_params = { 'patient': patient_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('MedicationStatement'), search_params) - validate_search_reply(versioned_resource_class('MedicationStatement'), reply, search_params) - assert_response_ok(reply) - end - - test 'MedicationStatement read resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:MedicationStatement, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@medicationstatement, versioned_resource_class('MedicationStatement')) - end - - test 'MedicationStatement vread resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:MedicationStatement, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@medicationstatement, versioned_resource_class('MedicationStatement')) - end - - test 'MedicationStatement history resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:MedicationStatement, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@medicationstatement, versioned_resource_class('MedicationStatement')) - end - - test 'MedicationStatement resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '08' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('MedicationStatement') - end - - test 'At least one of every must support element is provided in any MedicationStatement for this patient.' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @medicationstatement_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'MedicationStatement.status', - 'MedicationStatement.medicationCodeableConcept', - 'MedicationStatement.medicationReference', - 'MedicationStatement.subject', - 'MedicationStatement.effectiveDateTime', - 'MedicationStatement.effectivePeriod', - 'MedicationStatement.dateAsserted', - 'MedicationStatement.derivedFrom' - ] - must_support_elements.each do |path| - @medicationstatement_ary&.each do |resource| - truncated_path = path.gsub('MedicationStatement.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @medicationstatement_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided MedicationStatement resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '10' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:MedicationStatement, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@medicationstatement) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_observation_lab_sequence.rb b/lib/app/modules/us_core_r4/us_core_observation_lab_sequence.rb deleted file mode 100644 index 83288e8c8..000000000 --- a/lib/app/modules/us_core_r4/us_core_observation_lab_sequence.rb +++ /dev/null @@ -1,327 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4ObservationLabSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Laboratory Result Observation Tests' - - description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Observation' # change me - - requires :token, :patient_id - conformance_supports :Observation - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'code' - value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'code on resource does not match code requested' - - when 'date' - value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'date on resource does not match date requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [ObservationLab Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab) - - ) - - @resources_found = false - - test 'Server rejects Observation search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { patient: @instance.patient_id, category: 'laboratory' } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Observation search by patient+category' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { patient: @instance.patient_id, category: 'laboratory' } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) - @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:lab_results]) - save_delayed_sequence_references(@observation) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - end - - test 'Server returns expected results from Observation search by patient+code' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@observation, 'code.coding.code') - search_params = { 'patient': patient_val, 'code': code_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Observation search by patient+category+date' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - date_val = resolve_element_from_path(@observation, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Observation search by patient+code+date' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@observation, 'code.coding.code') - date_val = resolve_element_from_path(@observation, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Observation search by patient+category+status' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - status_val = resolve_element_from_path(@observation, 'status') - search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - end - - test 'Observation read resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation vread resource supported' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation history resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '10' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:lab_results]) - end - - test 'At least one of every must support element is provided in any Observation for this patient.' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Observation.status', - 'Observation.category', - 'Observation.code', - 'Observation.subject', - 'Observation.effectiveDateTime', - 'Observation.effectivePeriod', - 'Observation.valueQuantity', - 'Observation.valueCodeableConcept', - 'Observation.valueString', - 'Observation.valueBoolean', - 'Observation.valueInteger', - 'Observation.valueRange', - 'Observation.valueRatio', - 'Observation.valueSampledData', - 'Observation.valueTime', - 'Observation.valueDateTime', - 'Observation.valuePeriod', - 'Observation.dataAbsentReason' - ] - must_support_elements.each do |path| - @observation_ary&.each do |resource| - truncated_path = path.gsub('Observation.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @observation_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '12' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@observation) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_organization_sequence.rb b/lib/app/modules/us_core_r4/us_core_organization_sequence.rb deleted file mode 100644 index 2084fef6b..000000000 --- a/lib/app/modules/us_core_r4/us_core_organization_sequence.rb +++ /dev/null @@ -1,224 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4OrganizationSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Organization Tests' - - description 'Verify that Organization resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Organization' # change me - - requires :token - conformance_supports :Organization - delayed_sequence - - def validate_resource_item(resource, property, value) - case property - - when 'name' - value_found = can_resolve_path(resource, 'name') { |value_in_resource| value_in_resource == value } - assert value_found, 'name on resource does not match name requested' - - when 'address' - value_found = can_resolve_path(resource, 'address.city') { |value_in_resource| value_in_resource == value } - assert value_found, 'address on resource does not match address requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Organization Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization) - - ) - - @resources_found = false - - test 'Can read Organization from the server' do - metadata do - id '01' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - organization_id = @instance.resource_references.find { |reference| reference.resource_type == 'Organization' }&.resource_id - skip 'No Organization references found from the prior searches' if organization_id.nil? - @organization = fetch_resource('Organization', organization_id) - @resources_found = !@organization.nil? - end - - test 'Server rejects Organization search without authorization' do - metadata do - id '02' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - name_val = resolve_element_from_path(@organization, 'name') - search_params = { 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Organization search by name' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - name_val = resolve_element_from_path(@organization, 'name') - search_params = { 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @organization = reply.try(:resource).try(:entry).try(:first).try(:resource) - @organization_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Organization'), reply) - save_delayed_sequence_references(@organization) - validate_search_reply(versioned_resource_class('Organization'), reply, search_params) - end - - test 'Server returns expected results from Organization search by address' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@organization.nil?, 'Expected valid Organization resource to be present' - - address_val = resolve_element_from_path(@organization, 'address.city') - search_params = { 'address': address_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Organization'), search_params) - validate_search_reply(versioned_resource_class('Organization'), reply, search_params) - assert_response_ok(reply) - end - - test 'Organization vread resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Organization, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@organization, versioned_resource_class('Organization')) - end - - test 'Organization history resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Organization, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@organization, versioned_resource_class('Organization')) - end - - test 'Organization resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '07' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Organization') - end - - test 'At least one of every must support element is provided in any Organization for this patient.' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @organization_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Organization.identifier', - 'Organization.identifier.system', - 'Organization.active', - 'Organization.name', - 'Organization.telecom', - 'Organization.address', - 'Organization.address.line', - 'Organization.address.city', - 'Organization.address.state', - 'Organization.address.postalCode', - 'Organization.address.country', - 'Organization.endpoint' - ] - must_support_elements.each do |path| - @organization_ary&.each do |resource| - truncated_path = path.gsub('Organization.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @organization_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Organization resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '09' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Organization, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@organization) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_patient_sequence.rb b/lib/app/modules/us_core_r4/us_core_patient_sequence.rb deleted file mode 100644 index 71fcf848e..000000000 --- a/lib/app/modules/us_core_r4/us_core_patient_sequence.rb +++ /dev/null @@ -1,378 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4PatientSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Patient Tests' - - description 'Verify that Patient resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Patient' # change me - - requires :token, :patient_id - conformance_supports :Patient - - def validate_resource_item(resource, property, value) - case property - - when '_id' - value_found = can_resolve_path(resource, 'id') { |value_in_resource| value_in_resource == value } - assert value_found, '_id on resource does not match _id requested' - - when 'birthdate' - value_found = can_resolve_path(resource, 'birthDate') do |date| - validate_date_search(value, date) - end - assert value_found, 'birthdate on resource does not match birthdate requested' - - when 'family' - value_found = can_resolve_path(resource, 'name.family') { |value_in_resource| value_in_resource == value } - assert value_found, 'family on resource does not match family requested' - - when 'gender' - value_found = can_resolve_path(resource, 'gender') { |value_in_resource| value_in_resource == value } - assert value_found, 'gender on resource does not match gender requested' - - when 'given' - value_found = can_resolve_path(resource, 'name.given') { |value_in_resource| value_in_resource == value } - assert value_found, 'given on resource does not match given requested' - - when 'identifier' - value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } - assert value_found, 'identifier on resource does not match identifier requested' - - when 'name' - value = value.downcase - value_found = can_resolve_path(resource, 'name') do |name| - name&.text&.start_with?(value) || - name&.family&.downcase&.include?(value) || - name&.given&.any? { |given| given.downcase.start_with?(value) } || - name&.prefix&.any? { |prefix| prefix.downcase.start_with?(value) } || - name&.suffix&.any? { |suffix| suffix.downcase.start_with?(value) } - end - assert value_found, 'name on resource does not match name requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Patient Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient) - - ) - - @resources_found = false - - test 'Server rejects Patient search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { '_id': @instance.patient_id } - - reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Patient search by _id' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { '_id': @instance.patient_id } - - reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @patient = reply.try(:resource).try(:entry).try(:first).try(:resource) - @patient_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Patient'), reply) - save_delayed_sequence_references(@patient) - validate_search_reply(versioned_resource_class('Patient'), reply, search_params) - end - - test 'Server returns expected results from Patient search by identifier' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@patient.nil?, 'Expected valid Patient resource to be present' - - identifier_val = resolve_element_from_path(@patient, 'identifier.value') - search_params = { 'identifier': identifier_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) - validate_search_reply(versioned_resource_class('Patient'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Patient search by name' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@patient.nil?, 'Expected valid Patient resource to be present' - - name_val = resolve_element_from_path(@patient, 'name.family') - search_params = { 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) - validate_search_reply(versioned_resource_class('Patient'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Patient search by birthdate+name' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@patient.nil?, 'Expected valid Patient resource to be present' - - birthdate_val = resolve_element_from_path(@patient, 'birthDate') - name_val = resolve_element_from_path(@patient, 'name.family') - search_params = { 'birthdate': birthdate_val, 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) - validate_search_reply(versioned_resource_class('Patient'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Patient search by gender+name' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@patient.nil?, 'Expected valid Patient resource to be present' - - gender_val = resolve_element_from_path(@patient, 'gender') - name_val = resolve_element_from_path(@patient, 'name.family') - search_params = { 'gender': gender_val, 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) - validate_search_reply(versioned_resource_class('Patient'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Patient search by family+gender' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@patient.nil?, 'Expected valid Patient resource to be present' - - family_val = resolve_element_from_path(@patient, 'name.family') - gender_val = resolve_element_from_path(@patient, 'gender') - search_params = { 'family': family_val, 'gender': gender_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) - validate_search_reply(versioned_resource_class('Patient'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Patient search by birthdate+family' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@patient.nil?, 'Expected valid Patient resource to be present' - - birthdate_val = resolve_element_from_path(@patient, 'birthDate') - family_val = resolve_element_from_path(@patient, 'name.family') - search_params = { 'birthdate': birthdate_val, 'family': family_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Patient'), search_params) - validate_search_reply(versioned_resource_class('Patient'), reply, search_params) - assert_response_ok(reply) - end - - test 'Patient read resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Patient, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@patient, versioned_resource_class('Patient')) - end - - test 'Patient vread resource supported' do - metadata do - id '10' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Patient, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@patient, versioned_resource_class('Patient')) - end - - test 'Patient history resource supported' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Patient, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@patient, versioned_resource_class('Patient')) - end - - test 'Patient resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '12' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Patient') - end - - test 'At least one of every must support element is provided in any Patient for this patient.' do - metadata do - id '13' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @patient_ary&.any? - must_support_confirmed = {} - extensions_list = { - 'Patient.extension:race': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race', - 'Patient.extension:ethnicity': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity', - 'Patient.extension:birthsex': 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex' - } - extensions_list.each do |id, url| - @patient_ary&.each do |resource| - must_support_confirmed[id] = true if resource.extension.any? { |extension| extension.url == url } - break if must_support_confirmed[id] - end - skip "Could not find #{id} in any of the #{@patient_ary.length} provided Patient resource(s)" unless must_support_confirmed[id] - end - - must_support_elements = [ - 'Patient.identifier', - 'Patient.identifier.system', - 'Patient.identifier.value', - 'Patient.name', - 'Patient.name.family', - 'Patient.name.given', - 'Patient.telecom', - 'Patient.telecom.system', - 'Patient.telecom.value', - 'Patient.gender', - 'Patient.birthDate', - 'Patient.address', - 'Patient.address.line', - 'Patient.address.city', - 'Patient.address.state', - 'Patient.address.postalCode', - 'Patient.communication', - 'Patient.communication.language' - ] - must_support_elements.each do |path| - @patient_ary&.each do |resource| - truncated_path = path.gsub('Patient.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @patient_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Patient resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '14' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Patient, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@patient) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_practitioner_sequence.rb b/lib/app/modules/us_core_r4/us_core_practitioner_sequence.rb deleted file mode 100644 index ed8fc3ec5..000000000 --- a/lib/app/modules/us_core_r4/us_core_practitioner_sequence.rb +++ /dev/null @@ -1,226 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4PractitionerSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Practitioner Tests' - - description 'Verify that Practitioner resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Practitioner' # change me - - requires :token - conformance_supports :Practitioner - delayed_sequence - - def validate_resource_item(resource, property, value) - case property - - when 'name' - value = value.downcase - value_found = can_resolve_path(resource, 'name') do |name| - name&.text&.start_with?(value) || - name&.family&.downcase&.include?(value) || - name&.given&.any? { |given| given.downcase.start_with?(value) } || - name&.prefix&.any? { |prefix| prefix.downcase.start_with?(value) } || - name&.suffix&.any? { |suffix| suffix.downcase.start_with?(value) } - end - assert value_found, 'name on resource does not match name requested' - - when 'identifier' - value_found = can_resolve_path(resource, 'identifier.value') { |value_in_resource| value_in_resource == value } - assert value_found, 'identifier on resource does not match identifier requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Practitioner Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner) - - ) - - @resources_found = false - - test 'Can read Practitioner from the server' do - metadata do - id '01' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - practitioner_id = @instance.resource_references.find { |reference| reference.resource_type == 'Practitioner' }&.resource_id - skip 'No Practitioner references found from the prior searches' if practitioner_id.nil? - @practitioner = fetch_resource('Practitioner', practitioner_id) - @resources_found = !@practitioner.nil? - end - - test 'Server rejects Practitioner search without authorization' do - metadata do - id '02' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - name_val = resolve_element_from_path(@practitioner, 'name.family') - search_params = { 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Practitioner search by name' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - name_val = resolve_element_from_path(@practitioner, 'name.family') - search_params = { 'name': name_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @practitioner = reply.try(:resource).try(:entry).try(:first).try(:resource) - @practitioner_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Practitioner'), reply) - save_delayed_sequence_references(@practitioner) - validate_search_reply(versioned_resource_class('Practitioner'), reply, search_params) - end - - test 'Server returns expected results from Practitioner search by identifier' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@practitioner.nil?, 'Expected valid Practitioner resource to be present' - - identifier_val = resolve_element_from_path(@practitioner, 'identifier.value') - search_params = { 'identifier': identifier_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Practitioner'), search_params) - validate_search_reply(versioned_resource_class('Practitioner'), reply, search_params) - assert_response_ok(reply) - end - - test 'Practitioner vread resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Practitioner, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@practitioner, versioned_resource_class('Practitioner')) - end - - test 'Practitioner history resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Practitioner, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@practitioner, versioned_resource_class('Practitioner')) - end - - test 'Practitioner resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '07' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Practitioner') - end - - test 'At least one of every must support element is provided in any Practitioner for this patient.' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @practitioner_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Practitioner.identifier', - 'Practitioner.identifier.system', - 'Practitioner.identifier.value', - 'Practitioner.identifier', - 'Practitioner.identifier.system', - 'Practitioner.name', - 'Practitioner.name.family' - ] - must_support_elements.each do |path| - @practitioner_ary&.each do |resource| - truncated_path = path.gsub('Practitioner.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @practitioner_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Practitioner resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '09' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Practitioner, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@practitioner) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_practitionerrole_sequence.rb b/lib/app/modules/us_core_r4/us_core_practitionerrole_sequence.rb deleted file mode 100644 index b22d017a3..000000000 --- a/lib/app/modules/us_core_r4/us_core_practitionerrole_sequence.rb +++ /dev/null @@ -1,221 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4PractitionerroleSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'PractitionerRole Tests' - - description 'Verify that PractitionerRole resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'PractitionerRole' # change me - - requires :token - conformance_supports :PractitionerRole - delayed_sequence - - def validate_resource_item(resource, property, value) - case property - - when 'specialty' - value_found = can_resolve_path(resource, 'specialty.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'specialty on resource does not match specialty requested' - - when 'practitioner' - value_found = can_resolve_path(resource, 'practitioner.reference') { |value_in_resource| value_in_resource == value } - assert value_found, 'practitioner on resource does not match practitioner requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Practitionerrole Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole) - - ) - - @resources_found = false - - test 'Can read PractitionerRole from the server' do - metadata do - id '01' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - practitionerrole_id = @instance.resource_references.find { |reference| reference.resource_type == 'PractitionerRole' }&.resource_id - skip 'No PractitionerRole references found from the prior searches' if practitionerrole_id.nil? - @practitionerrole = fetch_resource('PractitionerRole', practitionerrole_id) - @resources_found = !@practitionerrole.nil? - end - - test 'Server rejects PractitionerRole search without authorization' do - metadata do - id '02' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - specialty_val = resolve_element_from_path(@practitionerrole, 'specialty.coding.code') - search_params = { 'specialty': specialty_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from PractitionerRole search by specialty' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - specialty_val = resolve_element_from_path(@practitionerrole, 'specialty.coding.code') - search_params = { 'specialty': specialty_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @practitionerrole = reply.try(:resource).try(:entry).try(:first).try(:resource) - @practitionerrole_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('PractitionerRole'), reply) - save_delayed_sequence_references(@practitionerrole) - validate_search_reply(versioned_resource_class('PractitionerRole'), reply, search_params) - end - - test 'Server returns expected results from PractitionerRole search by practitioner' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@practitionerrole.nil?, 'Expected valid PractitionerRole resource to be present' - - practitioner_val = resolve_element_from_path(@practitionerrole, 'practitioner.reference') - search_params = { 'practitioner': practitioner_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('PractitionerRole'), search_params) - validate_search_reply(versioned_resource_class('PractitionerRole'), reply, search_params) - assert_response_ok(reply) - end - - test 'PractitionerRole vread resource supported' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:PractitionerRole, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@practitionerrole, versioned_resource_class('PractitionerRole')) - end - - test 'PractitionerRole history resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:PractitionerRole, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@practitionerrole, versioned_resource_class('PractitionerRole')) - end - - test 'PractitionerRole resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '07' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('PractitionerRole') - end - - test 'At least one of every must support element is provided in any PractitionerRole for this patient.' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @practitionerrole_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'PractitionerRole.practitioner', - 'PractitionerRole.organization', - 'PractitionerRole.code', - 'PractitionerRole.specialty', - 'PractitionerRole.location', - 'PractitionerRole.telecom', - 'PractitionerRole.telecom.system', - 'PractitionerRole.telecom.value', - 'PractitionerRole.endpoint' - ] - must_support_elements.each do |path| - @practitionerrole_ary&.each do |resource| - truncated_path = path.gsub('PractitionerRole.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @practitionerrole_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided PractitionerRole resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '09' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:PractitionerRole, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@practitionerrole) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_procedure_sequence.rb b/lib/app/modules/us_core_r4/us_core_procedure_sequence.rb deleted file mode 100644 index 408c510cd..000000000 --- a/lib/app/modules/us_core_r4/us_core_procedure_sequence.rb +++ /dev/null @@ -1,290 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4ProcedureSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Procedure Tests' - - description 'Verify that Procedure resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Procedure' # change me - - requires :token, :patient_id - conformance_supports :Procedure - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - when 'date' - value_found = can_resolve_path(resource, 'occurrenceDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'date on resource does not match date requested' - - when 'code' - value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'code on resource does not match code requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Procedure Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure) - - ) - - @resources_found = false - - test 'Server rejects Procedure search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Procedure search by patient' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - patient_val = @instance.patient_id - search_params = { 'patient': patient_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @procedure = reply.try(:resource).try(:entry).try(:first).try(:resource) - @procedure_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Procedure'), reply) - save_delayed_sequence_references(@procedure) - validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) - end - - test 'Server returns expected results from Procedure search by patient+date' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@procedure.nil?, 'Expected valid Procedure resource to be present' - - patient_val = @instance.patient_id - date_val = resolve_element_from_path(@procedure, 'occurrenceDateTime') - search_params = { 'patient': patient_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) - validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Procedure'), comparator_search_params) - validate_search_reply(versioned_resource_class('Procedure'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Procedure search by patient+code+date' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@procedure.nil?, 'Expected valid Procedure resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@procedure, 'code.coding.code') - date_val = resolve_element_from_path(@procedure, 'occurrenceDateTime') - search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) - validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Procedure'), comparator_search_params) - validate_search_reply(versioned_resource_class('Procedure'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Procedure search by patient+status' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@procedure.nil?, 'Expected valid Procedure resource to be present' - - patient_val = @instance.patient_id - status_val = resolve_element_from_path(@procedure, 'status') - search_params = { 'patient': patient_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Procedure'), search_params) - validate_search_reply(versioned_resource_class('Procedure'), reply, search_params) - assert_response_ok(reply) - end - - test 'Procedure read resource supported' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Procedure, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@procedure, versioned_resource_class('Procedure')) - end - - test 'Procedure vread resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Procedure, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@procedure, versioned_resource_class('Procedure')) - end - - test 'Procedure history resource supported' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Procedure, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@procedure, versioned_resource_class('Procedure')) - end - - test 'Procedure resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '09' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Procedure') - end - - test 'At least one of every must support element is provided in any Procedure for this patient.' do - metadata do - id '10' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @procedure_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Procedure.status', - 'Procedure.code', - 'Procedure.subject', - 'Procedure.performedDateTime', - 'Procedure.performedPeriod' - ] - must_support_elements.each do |path| - @procedure_ary&.each do |resource| - truncated_path = path.gsub('Procedure.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @procedure_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Procedure resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '11' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Procedure, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@procedure) - end - end - end -end diff --git a/lib/app/modules/us_core_r4/us_core_smokingstatus_sequence.rb b/lib/app/modules/us_core_r4/us_core_smokingstatus_sequence.rb deleted file mode 100644 index 7b112f01a..000000000 --- a/lib/app/modules/us_core_r4/us_core_smokingstatus_sequence.rb +++ /dev/null @@ -1,314 +0,0 @@ -# frozen_string_literal: true - -module Inferno - module Sequence - class USCoreR4SmokingstatusSequence < SequenceBase - group 'US Core R4 Profile Conformance' - - title 'Smoking Status Observation Tests' - - description 'Verify that Observation resources on the FHIR server follow the Argonaut Data Query Implementation Guide' - - test_id_prefix 'Observation' # change me - - requires :token, :patient_id - conformance_supports :Observation - - def validate_resource_item(resource, property, value) - case property - - when 'status' - value_found = can_resolve_path(resource, 'status') { |value_in_resource| value_in_resource == value } - assert value_found, 'status on resource does not match status requested' - - when 'category' - value_found = can_resolve_path(resource, 'category.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'category on resource does not match category requested' - - when 'code' - value_found = can_resolve_path(resource, 'code.coding.code') { |value_in_resource| value_in_resource == value } - assert value_found, 'code on resource does not match code requested' - - when 'date' - value_found = can_resolve_path(resource, 'effectiveDateTime') do |date| - validate_date_search(value, date) - end - assert value_found, 'date on resource does not match date requested' - - when 'patient' - value_found = can_resolve_path(resource, 'subject.reference') { |reference| [value, 'Patient/' + value].include? reference } - assert value_found, 'patient on resource does not match patient requested' - - end - end - - details %( - - The #{title} Sequence tests `#{title.gsub(/\s+/, '')}` resources associated with the provided patient. The resources - returned will be checked for consistency against the [Smokingstatus Argonaut Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus) - - ) - - @resources_found = false - - test 'Server rejects Observation search without authorization' do - metadata do - id '01' - link 'http://www.fhir.org/guides/argonaut/r2/Conformance-server.html' - desc %( - ) - versions :r4 - end - - @client.set_no_auth - skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - - search_params = { patient: @instance.patient_id, code: '72166-2' } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - @client.set_bearer_token(@instance.token) - assert_response_unauthorized reply - end - - test 'Server returns expected results from Observation search by patient+code' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - search_params = { patient: @instance.patient_id, code: '72166-2' } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - assert_response_ok(reply) - assert_bundle_response(reply) - - resource_count = reply&.resource&.entry&.length || 0 - @resources_found = true if resource_count.positive? - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) - @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:smoking_status]) - save_delayed_sequence_references(@observation) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - end - - test 'Server returns expected results from Observation search by patient+category' do - metadata do - id '03' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - search_params = { 'patient': patient_val, 'category': category_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - end - - test 'Server returns expected results from Observation search by patient+category+date' do - metadata do - id '04' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - date_val = resolve_element_from_path(@observation, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'category': category_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'category': category_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Observation search by patient+code+date' do - metadata do - id '05' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@observation, 'code.coding.code') - date_val = resolve_element_from_path(@observation, 'effectiveDateTime') - search_params = { 'patient': patient_val, 'code': code_val, 'date': date_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - - ['gt', 'lt', 'le'].each do |comparator| - comparator_val = date_comparator_value(comparator, date_val) - comparator_search_params = { 'patient': patient_val, 'code': code_val, 'date': comparator_val } - reply = get_resource_by_params(versioned_resource_class('Observation'), comparator_search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, comparator_search_params) - assert_response_ok(reply) - end - end - - test 'Server returns expected results from Observation search by patient+category+status' do - metadata do - id '06' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - optional - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - assert !@observation.nil?, 'Expected valid Observation resource to be present' - - patient_val = @instance.patient_id - category_val = resolve_element_from_path(@observation, 'category.coding.code') - status_val = resolve_element_from_path(@observation, 'status') - search_params = { 'patient': patient_val, 'category': category_val, 'status': status_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } - - reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) - validate_search_reply(versioned_resource_class('Observation'), reply, search_params) - assert_response_ok(reply) - end - - test 'Observation read resource supported' do - metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_read_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation vread resource supported' do - metadata do - id '08' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:vread]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_vread_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation history resource supported' do - metadata do - id '09' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/CapabilityStatement-us-core-server.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:history]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_history_reply(@observation, versioned_resource_class('Observation')) - end - - test 'Observation resources associated with Patient conform to US Core R4 profiles' do - metadata do - id '10' - link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:smoking_status]) - end - - test 'At least one of every must support element is provided in any Observation for this patient.' do - metadata do - id '11' - link 'https://build.fhir.org/ig/HL7/US-Core-R4/general-guidance.html/#must-support' - desc %( - ) - versions :r4 - end - - skip 'No resources appear to be available for this patient. Please use patients with more information' unless @observation_ary&.any? - must_support_confirmed = {} - must_support_elements = [ - 'Observation.status', - 'Observation.code', - 'Observation.subject', - 'Observation.issued', - 'Observation.valueCodeableConcept' - ] - must_support_elements.each do |path| - @observation_ary&.each do |resource| - truncated_path = path.gsub('Observation.', '') - must_support_confirmed[path] = true if can_resolve_path(resource, truncated_path) - break if must_support_confirmed[path] - end - resource_count = @observation_ary.length - - skip "Could not find #{path} in any of the #{resource_count} provided Observation resource(s)" unless must_support_confirmed[path] - end - @instance.save! - end - - test 'All references can be resolved' do - metadata do - id '12' - link 'https://www.hl7.org/fhir/DSTU2/references.html' - desc %( - ) - versions :r4 - end - - skip_if_not_supported(:Observation, [:search, :read]) - skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - - validate_reference_resolutions(@observation) - end - end - end -end diff --git a/test/sequence/us_core_r4/clinicalnotes_sequence_test.rb b/test/sequence/us_core_r4/clinicalnotes_sequence_test.rb index 4b856596e..00fd999ee 100644 --- a/test/sequence/us_core_r4/clinicalnotes_sequence_test.rb +++ b/test/sequence/us_core_r4/clinicalnotes_sequence_test.rb @@ -14,7 +14,7 @@ def setup base_url: 'http://localhost:4567', client_endpoint_key: Inferno::SecureRandomBase62.generate(32), client_id: SecureRandom.uuid, - selected_module: 'us_core_r4', + selected_module: 'uscore_v3.0.1', oauth_authorize_endpoint: 'http://oauth_reg.example.com/authorize', oauth_token_endpoint: 'http://oauth_reg.example.com/token', scopes: 'launch openid patient/*.* profile', diff --git a/test/unit/test_instance_test.rb b/test/unit/test_instance_test.rb index 582d22adf..a883e7c19 100644 --- a/test/unit/test_instance_test.rb +++ b/test/unit/test_instance_test.rb @@ -4,7 +4,7 @@ class TestInstanceTest < MiniTest::Test def setup - @instance = Inferno::Models::TestingInstance.create(selected_module: 'us_core_r4') + @instance = Inferno::Models::TestingInstance.create(selected_module: 'uscore_v3.0.0') end def test_conformance_supported From 1184f5b29042fb98ea1b8e029740958824f89a5e Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Fri, 20 Sep 2019 15:52:52 -0400 Subject: [PATCH 013/144] Style recommendation from code climate. --- generator/generator_base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/generator_base.rb b/generator/generator_base.rb index 56d135feb..83768dbe7 100644 --- a/generator/generator_base.rb +++ b/generator/generator_base.rb @@ -19,7 +19,7 @@ def load_resources @resource_by_path = Hash.new {} @resources_by_type = Hash.new { |h, k| h[k] = [] } Dir.glob("#{resource_file_path}/**/*.*") do |resource| # note one extra "*" - if File.file?(resource) && (resource.end_with?('json') || resource.end_with?('xml')) + if File.file?(resource) && resource.end_with?('json','xml') # We should consider using the native Ruby models instead of JSON # There were problems with round-tripping certain SearchParameters though From 1770649ee27437129c64b2cc5577afe7af8f6f2c Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Fri, 20 Sep 2019 15:55:54 -0400 Subject: [PATCH 014/144] Another style recommendation from code climate. --- generator/generator_base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/generator_base.rb b/generator/generator_base.rb index 83768dbe7..c973d5a53 100644 --- a/generator/generator_base.rb +++ b/generator/generator_base.rb @@ -19,7 +19,7 @@ def load_resources @resource_by_path = Hash.new {} @resources_by_type = Hash.new { |h, k| h[k] = [] } Dir.glob("#{resource_file_path}/**/*.*") do |resource| # note one extra "*" - if File.file?(resource) && resource.end_with?('json','xml') + if File.file?(resource) && resource.end_with?('json', 'xml') # We should consider using the native Ruby models instead of JSON # There were problems with round-tripping certain SearchParameters though From 3bfbf39e110f5dbe7d96b2ad66f2918ff46e6d6b Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Tue, 24 Sep 2019 15:33:16 -0400 Subject: [PATCH 015/144] Add default parameter to capability_statement method. --- generator/generator_base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/generator_base.rb b/generator/generator_base.rb index c973d5a53..9b4cb9493 100644 --- a/generator/generator_base.rb +++ b/generator/generator_base.rb @@ -37,7 +37,7 @@ def ig_resource @resources_by_type['ImplementationGuide'].first end - def capability_statement(mode) + def capability_statement(mode = 'server') @resources_by_type['CapabilityStatement'].find { |re| re['rest'].any? { |r| r['mode'] == mode } } end From c14a8cef19dfd6e26eb4038a3defcd93a699c51a Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Tue, 24 Sep 2019 15:41:09 -0400 Subject: [PATCH 016/144] Add attr_accessors. --- generator/generator_base.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/generator/generator_base.rb b/generator/generator_base.rb index 9b4cb9493..0d0ea2383 100644 --- a/generator/generator_base.rb +++ b/generator/generator_base.rb @@ -9,6 +9,9 @@ module Inferno module Generator class Base + + attr_accessor :path, :extras, :resource_by_path, :resources_by_type + def initialize(path, extras) @path = path @extras = extras From 2fd2b22e140ad4a0743985038d0851a75134c443 Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Wed, 25 Sep 2019 09:21:59 -0400 Subject: [PATCH 017/144] Updates to generator based on feedback. --- generator/generator_base.rb | 24 +++++++++++----------- generator/uscore/metadata_extractor.rb | 5 ----- lib/app/modules/us_core_guidance/README.md | 2 +- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/generator/generator_base.rb b/generator/generator_base.rb index 0d0ea2383..15dc167a9 100644 --- a/generator/generator_base.rb +++ b/generator/generator_base.rb @@ -9,7 +9,6 @@ module Inferno module Generator class Base - attr_accessor :path, :extras, :resource_by_path, :resources_by_type def initialize(path, extras) @@ -28,20 +27,22 @@ def load_resources # There were problems with round-tripping certain SearchParameters though new_resource_json = JSON.parse(File.read(resource)) new_resource = FHIR.from_contents(File.read(resource)) - @resource_by_path[resource_path(new_resource)] = new_resource_json + resource_by_path[resource_path(new_resource)] = new_resource_json type = new_resource.class.name.demodulize type = 'CapabilityStatement' if type == 'Conformance' - @resources_by_type[type].push(new_resource_json) + resources_by_type[type].push(new_resource_json) end end end def ig_resource - @resources_by_type['ImplementationGuide'].first + resources_by_type['ImplementationGuide'].first end def capability_statement(mode = 'server') - @resources_by_type['CapabilityStatement'].find { |re| re['rest'].any? { |r| r['mode'] == mode } } + resources_by_type['CapabilityStatement'].find do |capability_statement_resource| + capability_statement_resource['rest'].any? { |r| r['mode'] == mode } + end end def resource_path(resource) @@ -49,7 +50,6 @@ def resource_path(resource) end def format_output - # system('sh', "rubocop -x --display-only-fail-level-offenses #{sequence_out_path}/") system("rubocop -x --display-only-fail-level-offenses #{sequence_out_path}") end @@ -58,10 +58,10 @@ def run format_output end - # subclass must implement the following: - # def generate - - # end + # subclass must implement the following + def generate + raise StandardError('Method not implemented.') + end def sequence_prefix version = ig_resource['version'].delete('.') @@ -74,11 +74,11 @@ def module_yml_out_path end def sequence_out_path - File.expand_path("./lib/app/modules/#{@path}") + File.expand_path("#{module_yml_out_path}/#{path}") end def resource_file_path - File.expand_path("./resources/#{@path}") + File.expand_path("./resources/#{path}") end end end diff --git a/generator/uscore/metadata_extractor.rb b/generator/uscore/metadata_extractor.rb index 735bbc9c3..715370ac2 100644 --- a/generator/uscore/metadata_extractor.rb +++ b/generator/uscore/metadata_extractor.rb @@ -9,10 +9,6 @@ def profile_uri(profile) "http://hl7.org/fhir/us/core/StructureDefinition/#{profile}" end - def profile_json_uri(profile) - "https://www.hl7.org/fhir/us/core/StructureDefinition-#{profile}.json" - end - def search_param_path(resource, param) param = 'id' if param == '_id' "SearchParameter/us-core-#{resource.downcase}-#{param}" @@ -59,7 +55,6 @@ def build_new_sequence(resource, profile) class_name: class_name, resource: resource['type'], profile: profile_uri(base_name), # link in capability statement is incorrect, - profile_json: profile_json_uri(base_name), title: profile_title, interactions: [], searches: [], diff --git a/lib/app/modules/us_core_guidance/README.md b/lib/app/modules/us_core_guidance/README.md index 4ce116f5e..85267032c 100644 --- a/lib/app/modules/us_core_guidance/README.md +++ b/lib/app/modules/us_core_guidance/README.md @@ -1,3 +1,3 @@ This folder is for guidance-based tests for US Core on FHIR R4. This allows us to separate the autogenerated-tests from the manually created tests that are based -from guidance text. This solution could be improved. +on guidance text. This solution could be improved. From 66cdd0e7bb8e8a0f0cf74ec32d45b8b9764b2818 Mon Sep 17 00:00:00 2001 From: Chase Date: Wed, 25 Sep 2019 14:37:23 -0400 Subject: [PATCH 018/144] add request url to request defatils --- lib/app/views/request_details.erb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/app/views/request_details.erb b/lib/app/views/request_details.erb index 30fa609cd..7a61a77db 100644 --- a/lib/app/views/request_details.erb +++ b/lib/app/views/request_details.erb @@ -9,6 +9,15 @@ From 41c9043d614b25d2504c64ecbddc5d4ce2d73645 Mon Sep 17 00:00:00 2001 From: Chase Date: Tue, 8 Oct 2019 14:03:38 -0400 Subject: [PATCH 107/144] update for pulse-oximetry profile --- generator/uscore/uscore_generator.rb | 1 + .../us_core_pulse_oximetry_sequence.rb | 14 ++++---------- lib/app/utils/validation.rb | 3 ++- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/generator/uscore/uscore_generator.rb b/generator/uscore/uscore_generator.rb index f4ea46423..b6e22a622 100644 --- a/generator/uscore/uscore_generator.rb +++ b/generator/uscore/uscore_generator.rb @@ -389,6 +389,7 @@ def search_param_constants(search_parameters, sequence) return "patient: @instance.patient_id, code: '59576-9'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pediatric_bmi_age] return "patient: @instance.patient_id, category: 'LAB'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:diagnostic_report_lab] return "patient: @instance.patient_id, code: 'LP29684-5'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:diagnostic_report_note] + return "patient: @instance.patient_id, code: '2708-6'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pulse_oximetry] end def create_search_validation(sequence) diff --git a/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb index 39879ed9a..eafa2e47f 100644 --- a/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb +++ b/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb @@ -60,10 +60,7 @@ def validate_resource_item(resource, property, value) @client.set_no_auth omit 'Do not test if no bearer token set' if @instance.token.blank? - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@observation, 'code.coding.code') - search_params = { 'patient': patient_val, 'code': code_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + search_params = { patient: @instance.patient_id, code: '2708-6' } reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) @client.set_bearer_token(@instance.token) @@ -79,10 +76,7 @@ def validate_resource_item(resource, property, value) versions :r4 end - patient_val = @instance.patient_id - code_val = resolve_element_from_path(@observation, 'code.coding.code') - search_params = { 'patient': patient_val, 'code': code_val } - search_params.each { |param, value| skip "Could not resolve #{param} in given resource" if value.nil? } + search_params = { patient: @instance.patient_id, code: '2708-6' } reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) assert_response_ok(reply) @@ -95,7 +89,7 @@ def validate_resource_item(resource, property, value) @observation = reply.try(:resource).try(:entry).try(:first).try(:resource) @observation_ary = reply&.resource&.entry&.map { |entry| entry&.resource } - save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply) + save_resource_ids_in_bundle(versioned_resource_class('Observation'), reply, Inferno::ValidationUtil::US_CORE_R4_URIS[:pulse_oximetry]) save_delayed_sequence_references(@observation) validate_search_reply(versioned_resource_class('Observation'), reply, search_params) end @@ -248,7 +242,7 @@ def validate_resource_item(resource, property, value) end skip 'No resources appear to be available for this patient. Please use patients with more information.' unless @resources_found - test_resources_against_profile('Observation') + test_resources_against_profile('Observation', Inferno::ValidationUtil::US_CORE_R4_URIS[:pulse_oximetry]) end test 'At least one of every must support element is provided in any Observation for this patient.' do diff --git a/lib/app/utils/validation.rb b/lib/app/utils/validation.rb index 723a9f678..a1137612f 100644 --- a/lib/app/utils/validation.rb +++ b/lib/app/utils/validation.rb @@ -60,7 +60,8 @@ def self.get_resource(json, version) diagnostic_report_note: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note', lab_results: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab', pediatric_bmi_age: 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age', - pediatric_weight_height: 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height' + pediatric_weight_height: 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height', + pulse_oximetry: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry' }.freeze def self.guess_profile(resource, version) From 69372f89300bce8fa7e794c3da566047a8ed4736 Mon Sep 17 00:00:00 2001 From: Chase Date: Tue, 8 Oct 2019 14:18:34 -0400 Subject: [PATCH 108/144] fix oximetry code --- generator/uscore/uscore_generator.rb | 2 +- .../modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb | 4 ++-- lib/app/utils/validation.rb | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/generator/uscore/uscore_generator.rb b/generator/uscore/uscore_generator.rb index b6e22a622..0d28876c0 100644 --- a/generator/uscore/uscore_generator.rb +++ b/generator/uscore/uscore_generator.rb @@ -389,7 +389,7 @@ def search_param_constants(search_parameters, sequence) return "patient: @instance.patient_id, code: '59576-9'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pediatric_bmi_age] return "patient: @instance.patient_id, category: 'LAB'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:diagnostic_report_lab] return "patient: @instance.patient_id, code: 'LP29684-5'" if search_parameters == ['patient', 'category'] && sequence[:profile] == PROFILE_URIS[:diagnostic_report_note] - return "patient: @instance.patient_id, code: '2708-6'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pulse_oximetry] + return "patient: @instance.patient_id, code: '59408-5'" if search_parameters == ['patient', 'code'] && sequence[:profile] == PROFILE_URIS[:pulse_oximetry] end def create_search_validation(sequence) diff --git a/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb b/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb index eafa2e47f..58d205bd3 100644 --- a/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb +++ b/lib/app/modules/uscore_v3.0.1/us_core_pulse_oximetry_sequence.rb @@ -60,7 +60,7 @@ def validate_resource_item(resource, property, value) @client.set_no_auth omit 'Do not test if no bearer token set' if @instance.token.blank? - search_params = { patient: @instance.patient_id, code: '2708-6' } + search_params = { patient: @instance.patient_id, code: '59408-5' } reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) @client.set_bearer_token(@instance.token) @@ -76,7 +76,7 @@ def validate_resource_item(resource, property, value) versions :r4 end - search_params = { patient: @instance.patient_id, code: '2708-6' } + search_params = { patient: @instance.patient_id, code: '59408-5' } reply = get_resource_by_params(versioned_resource_class('Observation'), search_params) assert_response_ok(reply) diff --git a/lib/app/utils/validation.rb b/lib/app/utils/validation.rb index a1137612f..a1a1053f9 100644 --- a/lib/app/utils/validation.rb +++ b/lib/app/utils/validation.rb @@ -153,6 +153,8 @@ def self.guess_r4_profile(resource) return DEFINITIONS[US_CORE_R4_URIS[:pediatric_bmi_age]] if resource&.code&.coding&.any? { |coding| coding&.code == '59576-9' } return DEFINITIONS[US_CORE_R4_URIS[:pediatric_weight_height]] if resource&.code&.coding&.any? { |coding| coding&.code == '77606-2' } + + return DEFINITIONS[US_CORE_R4_URIS[:pulse_oximetry]] if resource&.code&.coding&.any? { |coding| coding&.code == '59408-5' } elsif resource.resourceType == 'DiagnosticReport' return DEFINITIONS[US_CORE_R4_URIS[:diagnostic_report_lab]] if resource&.category&.first&.coding&.any? { |coding| coding&.code == 'LAB' } From 972e2576b2a39b6e6a41249dbb4e6887ea5ceb00 Mon Sep 17 00:00:00 2001 From: Reece Adamson <41651655+radamson@users.noreply.github.com> Date: Wed, 9 Oct 2019 10:02:53 -0400 Subject: [PATCH 109/144] remove Bulk Data reference --- .../bulk_data/bulk_data_capability_statement_sequence.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/app/modules/bulk_data/bulk_data_capability_statement_sequence.rb b/lib/app/modules/bulk_data/bulk_data_capability_statement_sequence.rb index b632f4b35..2efaa275a 100644 --- a/lib/app/modules/bulk_data/bulk_data_capability_statement_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_capability_statement_sequence.rb @@ -80,9 +80,6 @@ def assert_operation(op_name); end * json * application/json * application/fhir+json - - This test supports the [Bulk Data US Core Data for Interoperability Use Case](https://build.fhir.org/ig/HL7/bulk-data/#us-core-data-for-interoperability) - ) end From 9882d2050e89dae49ba93db6df09b2feca9d3e94 Mon Sep 17 00:00:00 2001 From: yunwwang Date: Wed, 9 Oct 2019 13:36:25 -0400 Subject: [PATCH 110/144] Update lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb Co-Authored-By: Stephen MacVicar --- lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb index f01d0ec03..44abcae73 100644 --- a/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_patient_export_sequence.rb @@ -11,7 +11,7 @@ class BulkDataPatientExportSequence < BulkDataExportSequence title 'Patient Compartment Export Tests' - description 'Verify that patient compartment export on the Bulk Data server follow the Bulk Data Access Implementation Guide' + description 'Verify that patient compartment export on the Bulk Data server follows the Bulk Data Access Implementation Guide' test_id_prefix 'Patient' From ac404aa5d29b3782216367783285b4066599a965 Mon Sep 17 00:00:00 2001 From: Stephen MacVicar Date: Wed, 9 Oct 2019 15:30:32 -0400 Subject: [PATCH 111/144] add key for tests --- lib/app/models/inferno_test.rb | 24 +++- .../modules/smart/token_refresh_sequence.rb | 136 +++++++++--------- lib/app/sequence_base.rb | 4 +- lib/app/utils/exceptions.rb | 3 + .../smart/token_refresh_sequence_test.rb | 20 ++- 5 files changed, 99 insertions(+), 88 deletions(-) diff --git a/lib/app/models/inferno_test.rb b/lib/app/models/inferno_test.rb index 1b6b344fc..23689d7d3 100644 --- a/lib/app/models/inferno_test.rb +++ b/lib/app/models/inferno_test.rb @@ -3,16 +3,24 @@ module Inferno module Sequence class InfernoTest - attr_reader :name, :index, :id_prefix, :test_block - - def initialize(name, index, id_prefix, &test_block) - @name = name + attr_reader :key, :index, :id_prefix, :test_block + + def initialize(key_or_name, index, id_prefix, &test_block) + if key_or_name.instance_of? Symbol + @key = key_or_name + else + @name = key_or_name + end @index = index @id_prefix = id_prefix @test_block = test_block load_metadata end + def name(name = nil) + @name ||= name + end + def id(id = nil) return @id if id.blank? @@ -72,7 +80,13 @@ def metadata def load_metadata instance_eval(&test_block) - rescue MetadataException # rubocop:disable Lint/HandleExceptions + rescue MetadataException + validate_metadata + end + + def validate_metadata + raise InvalidMetadataException, 'Test id must be populated' if id.blank? + raise InvalidMetadataException, 'Test name must be populated' if name.blank? end end end diff --git a/lib/app/modules/smart/token_refresh_sequence.rb b/lib/app/modules/smart/token_refresh_sequence.rb index c0a9c230f..cc1bf61fc 100644 --- a/lib/app/modules/smart/token_refresh_sequence.rb +++ b/lib/app/modules/smart/token_refresh_sequence.rb @@ -34,32 +34,10 @@ class TokenRefreshSequence < SequenceBase INVALID_CLIENT_ID = 'INVALID_CLIENT_ID' INVALID_REFRESH_TOKEN = 'INVALID_REFRESH_TOKEN' - def encoded_secret(client_id, client_secret) - "Basic #{Base64.strict_encode64(client_id + ':' + client_secret)}" - end - - def perform_refresh_request(client_id, refresh_token, provide_scope = false) - oauth2_params = { - 'grant_type' => 'refresh_token', - 'refresh_token' => refresh_token - } - oauth2_headers = { 'Content-Type' => 'application/x-www-form-urlencoded' } - - if @instance.confidential_client - oauth2_headers['Authorization'] = encoded_secret(client_id, @instance.client_secret) - else - oauth2_params['client_id'] = client_id - end - - oauth2_params['scope'] = @instance.scopes if provide_scope - - LoggedRestClient.post(@instance.oauth_token_endpoint, oauth2_params, oauth2_headers) - end - - INVALID_REFRESH_TOKEN_TEST = 'Refresh token exchange fails when provided invalid Refresh Token.' - test INVALID_REFRESH_TOKEN_TEST do + test :invalid_refresh_token do metadata do id '01' + name 'Refresh token exchange fails when provided invalid Refresh Token.' link 'https://tools.ietf.org/html/rfc6749' description %( If the request failed verification or is invalid, the authorization server returns an error response. ) @@ -69,10 +47,10 @@ def perform_refresh_request(client_id, refresh_token, provide_scope = false) assert_response_bad_or_unauthorized token_response end - INVALID_CLIENT_ID_TEST = 'Refresh token exchange fails when provided invalid Client ID.' - test INVALID_CLIENT_ID_TEST do + test :invalid_client_id do metadata do id '02' + name 'Refresh token exchange fails when provided invalid Client ID.' link 'https://tools.ietf.org/html/rfc6749' description %( If the request failed verification or is invalid, the authorization server returns an error response. ) @@ -82,6 +60,55 @@ def perform_refresh_request(client_id, refresh_token, provide_scope = false) assert_response_bad_or_unauthorized token_response end + test :refresh_without_scope do + metadata do + id '03' + name 'Server successfully refreshes the access token when optional scope parameter omitted.' + link 'https://tools.ietf.org/html/rfc6749' + description %( + Server successfully exchanges refresh token at OAuth token endpoint without providing scope in + the body of the request. + + The EHR authorization server SHALL return a JSON structure that includes an access token or a message indicating that the authorization request has been denied. + access_token, expires_in, token_type, and scope are required. access_token must be Bearer. + + Although not required in the token refresh portion of the SMART App Launch Guide, + the token refresh response should include the HTTP Cache-Control response header field with a value of no-store, as well as the Pragma response header field with a value of no-cache + to be consistent with the requirements of the inital access token exchange. + + ) + end + + specify_scopes = false + + token_response = perform_refresh_request(@instance.client_id, @instance.refresh_token, specify_scopes) + validate_and_save_refresh_response(token_response) + end + + test :refresh_with_scope do + metadata do + id '04' + name 'Server successfully refreshes the access token when optional scope parameter provided.' + link 'https://tools.ietf.org/html/rfc6749' + description %( + Server successfully exchanges refresh token at OAuth token endpoint while providing scope in + the body of the request. + + The EHR authorization server SHALL return a JSON structure that includes an access token or a message indicating that the authorization request has been denied. + access_token, token_type, and scope are required. access_token must be Bearer. + + Although not required in the token refresh portion of the SMART App Launch Guide, + the token refresh response should include the HTTP Cache-Control response header field with a value of no-store, as well as the Pragma response header field with a value of no-cache + to be consistent with the requirements of the inital access token exchange. + ) + end + + specify_scopes = true + + token_response = perform_refresh_request(@instance.client_id, @instance.refresh_token, specify_scopes) + validate_and_save_refresh_response(token_response) + end + def validate_and_save_refresh_response(token_response) assert_response_ok(token_response) assert_valid_json(token_response.body) @@ -146,55 +173,26 @@ def validate_and_save_refresh_response(token_response) end end - REFRESH_WITHOUT_SCOPE_PARAMETER_TEST = - 'Server successfully refreshes the access token when optional scope parameter omitted.' - test REFRESH_WITHOUT_SCOPE_PARAMETER_TEST do - metadata do - id '03' - link 'https://tools.ietf.org/html/rfc6749' - description %( - Server successfully exchanges refresh token at OAuth token endpoint without providing scope in - the body of the request. - - The EHR authorization server SHALL return a JSON structure that includes an access token or a message indicating that the authorization request has been denied. - access_token, expires_in, token_type, and scope are required. access_token must be Bearer. - - Although not required in the token refresh portion of the SMART App Launch Guide, - the token refresh response should include the HTTP Cache-Control response header field with a value of no-store, as well as the Pragma response header field with a value of no-cache - to be consistent with the requirements of the inital access token exchange. - - ) - end - - specify_scopes = false - - token_response = perform_refresh_request(@instance.client_id, @instance.refresh_token, specify_scopes) - validate_and_save_refresh_response(token_response) + def encoded_secret(client_id, client_secret) + "Basic #{Base64.strict_encode64(client_id + ':' + client_secret)}" end - REFRESH_WITH_SCOPE_PARAMETER_TEST = - 'Server successfully refreshes the access token when optional scope parameter provided.' - test REFRESH_WITH_SCOPE_PARAMETER_TEST do - metadata do - id '04' - link 'https://tools.ietf.org/html/rfc6749' - description %( - Server successfully exchanges refresh token at OAuth token endpoint while providing scope in - the body of the request. - - The EHR authorization server SHALL return a JSON structure that includes an access token or a message indicating that the authorization request has been denied. - access_token, token_type, and scope are required. access_token must be Bearer. + def perform_refresh_request(client_id, refresh_token, provide_scope = false) + oauth2_params = { + 'grant_type' => 'refresh_token', + 'refresh_token' => refresh_token + } + oauth2_headers = { 'Content-Type' => 'application/x-www-form-urlencoded' } - Although not required in the token refresh portion of the SMART App Launch Guide, - the token refresh response should include the HTTP Cache-Control response header field with a value of no-store, as well as the Pragma response header field with a value of no-cache - to be consistent with the requirements of the inital access token exchange. - ) + if @instance.confidential_client + oauth2_headers['Authorization'] = encoded_secret(client_id, @instance.client_secret) + else + oauth2_params['client_id'] = client_id end - specify_scopes = true + oauth2_params['scope'] = @instance.scopes if provide_scope - token_response = perform_refresh_request(@instance.client_id, @instance.refresh_token, specify_scopes) - validate_and_save_refresh_response(token_response) + LoggedRestClient.post(@instance.oauth_token_endpoint, oauth2_params, oauth2_headers) end end end diff --git a/lib/app/sequence_base.rb b/lib/app/sequence_base.rb index 1b500ffe1..7e4f5f036 100644 --- a/lib/app/sequence_base.rb +++ b/lib/app/sequence_base.rb @@ -311,8 +311,8 @@ def self.tests @tests ||= [] end - def self.[](name) - tests.find { |test| test.name == name } + def self.[](key) + tests.find { |test| test.key == key } end def optional? diff --git a/lib/app/utils/exceptions.rb b/lib/app/utils/exceptions.rb index a246bc6f6..f0e35bcfd 100644 --- a/lib/app/utils/exceptions.rb +++ b/lib/app/utils/exceptions.rb @@ -98,6 +98,9 @@ def update_result(result) class MetadataException < RuntimeError end + + class InvalidMetadataException < RuntimeError + end end # monkey patch this exception from fhir_client diff --git a/test/sequence/smart/token_refresh_sequence_test.rb b/test/sequence/smart/token_refresh_sequence_test.rb index 3c4be8385..58e06143e 100644 --- a/test/sequence/smart/token_refresh_sequence_test.rb +++ b/test/sequence/smart/token_refresh_sequence_test.rb @@ -4,10 +4,6 @@ describe Inferno::Sequence::TokenRefreshSequence do SEQUENCE = Inferno::Sequence::TokenRefreshSequence - INVALID_REFRESH_TOKEN_TEST = SEQUENCE::INVALID_REFRESH_TOKEN_TEST - INVALID_CLIENT_ID_TEST = SEQUENCE::INVALID_CLIENT_ID_TEST - REFRESH_WITH_SCOPE_PARAMETER_TEST = SEQUENCE::REFRESH_WITH_SCOPE_PARAMETER_TEST - REFRESH_WITHOUT_SCOPE_PARAMETER_TEST = SEQUENCE::REFRESH_WITHOUT_SCOPE_PARAMETER_TEST let(:full_body) do { @@ -24,9 +20,9 @@ @instance = Inferno::Models::TestingInstance.new(oauth_token_endpoint: @token_endpoint, scopes: 'jkl') end - describe INVALID_REFRESH_TOKEN_TEST do + describe 'invalid refresh token test' do before do - @test = SEQUENCE[INVALID_REFRESH_TOKEN_TEST] + @test = SEQUENCE[:invalid_refresh_token] @sequence = SEQUENCE.new(@instance, @client) end @@ -47,9 +43,9 @@ end end - describe INVALID_CLIENT_ID_TEST do + describe 'invalid client id test' do before do - @test = SEQUENCE[INVALID_CLIENT_ID_TEST] + @test = SEQUENCE[:invalid_client_id] @sequence = SEQUENCE.new(@instance, @client) end @@ -70,9 +66,9 @@ end end - describe REFRESH_WITH_SCOPE_PARAMETER_TEST do + describe 'refresh with scope parameter test' do before do - @test = SEQUENCE[REFRESH_WITH_SCOPE_PARAMETER_TEST] + @test = SEQUENCE[:refresh_with_scope] @sequence = SEQUENCE.new(@instance, @client) end @@ -93,9 +89,9 @@ end end - describe REFRESH_WITHOUT_SCOPE_PARAMETER_TEST do + describe 'refresh without scope parameter test' do before do - @test = SEQUENCE[REFRESH_WITHOUT_SCOPE_PARAMETER_TEST] + @test = SEQUENCE[:refresh_without_scope] @sequence = SEQUENCE.new(@instance, @client) end From a2aa180773337c655eadf9364dc62da59f7cf1c9 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Wed, 9 Oct 2019 16:54:52 -0400 Subject: [PATCH 112/144] shuffle test cases --- .../bulk_data/bulk_data_export_sequence.rb | 98 ++++++++++++------- .../bulk_data_group_export_sequence.rb | 4 + .../bulk_data/patient_export_sequence_test.rb | 4 +- 3 files changed, 67 insertions(+), 39 deletions(-) diff --git a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb index 1da90baf3..605b8fbe3 100644 --- a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb @@ -16,16 +16,20 @@ class BulkDataExportSequence < SequenceBase attr_accessor :run_all_kick_off_tests def endpoint - '' + nil end - + def resource_id - '' + nil + end + + def type_parameter + endpoint end def check_export_kick_off(search_params: nil) @search_params = search_params - reply = export_kick_off(endpoint, id: resource_id, search_params: search_params) + reply = export_kick_off(endpoint, resource_id, search_params: search_params) @server_supports_type_parameter = search_params&.key?('_type') # Servers unable to support _type SHOULD return an error and OperationOutcome resource @@ -42,18 +46,17 @@ def check_export_kick_off(search_params: nil) end def check_export_kick_off_fail_invalid_accept - reply = export_kick_off(endpoint, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) + reply = export_kick_off(endpoint, resource_id, headers: { accept: 'application/fhir+xml', prefer: 'respond-async' }) assert_response_bad(reply) end def check_export_kick_off_fail_invalid_prefer - reply = export_kick_off(endpoint, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) + reply = export_kick_off(endpoint, resource_id, headers: { accept: 'application/fhir+json', prefer: 'return=representation' }) assert_response_bad(reply) end def check_export_status(url = @content_location, timeout: 180) skip 'Server response did not have Content-Location in header' unless url.present? - reply = export_status_check(url, timeout) # server response status code could be 202 (still processing), 200 (complete) or 4xx/5xx error code @@ -71,13 +74,11 @@ def check_export_status(url = @content_location, timeout: 180) assert_status_reponse_required_field(response_body) @output = response_body['output'] - - assert_output_has_type_url end def assert_output_has_type_url(output = @output, search_params = @search_params) - skip 'Sever response did not have output data' unless output.present? + assert output.present?, 'Sever response did not have output data' search_type = search_params['_type'].split(',').map(&:strip) if search_params&.key?('_type') @@ -91,7 +92,7 @@ def assert_output_has_type_url(output = @output, end def check_file_request(output = @output) - skip 'Content-Location from server response was emtpy' unless output.present? + skip 'Sever response did not have output data' unless output.present? headers = { accept: 'application/fhir+ndjson' } output.each do |file| @@ -145,25 +146,14 @@ def check_cancel_request @client.set_no_auth skip 'Could not verify this functionality when bearer token is not set' if @instance.token.blank? - reply = export_kick_off(endpoint) + reply = export_kick_off(endpoint, resource_id) @client.set_bearer_token(@instance.token) assert_response_unauthorized reply end - test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do - metadata do - id '02' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' - desc %( - ) - end - - check_export_kick_off(search_params: { '_type' => endpoint }) - end - test 'Server shall return "202 Accepted" and "Content-location" for $export operation' do metadata do - id '03' + id '02' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-kick-off-request' description %( ) @@ -176,7 +166,7 @@ def check_cancel_request test 'Server shall reject for $export operation with invalid Accept header' do metadata do - id '04' + id '03' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' description %( ) @@ -187,7 +177,7 @@ def check_cancel_request test 'Server shall reject for $export operation with invalid Prefer header' do metadata do - id '05' + id '04' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#headers' description %( ) @@ -196,9 +186,9 @@ def check_cancel_request check_export_kick_off_fail_invalid_prefer end - test 'Server shall return "202 Accepted" or "200 OK"' do + test 'Server shall return "202 Accepted" or "200 OK" for status check' do metadata do - id '06' + id '05' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' description %( ) @@ -207,22 +197,34 @@ def check_cancel_request check_export_status end - test 'Server shall return file in ndjson format' do + test 'Completed Status Check shall return output with type and url' do metadata do - id '07' - link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + id '06' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' description %( ) end - check_file_request + assert_output_has_type_url end + # test 'Server shall export resources required by Patient Compartment' do + # metadata do + # id '07' + # link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' + # description %( + # ) + # end + + # assert_output_has_type_url + # end + + test 'Server should return "202 Accepted" for delete export content' do metadata do - id '08' + id '07' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' - desc %( + description %( ) optional end @@ -232,9 +234,9 @@ def check_cancel_request test 'Server shall return "202 Accepted" for cancel export request' do metadata do - id '09' + id '08' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-delete-request' - desc %( + description %( ) optional end @@ -242,10 +244,32 @@ def check_cancel_request check_cancel_request end + test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do + metadata do + id '09' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' + description %( + ) + end + + check_export_kick_off(search_params: { '_type' => type_parameter }) + end + + # test 'Server shall return file in ndjson format' do + # metadata do + # id '06' + # link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + # description %( + # ) + # end + + # check_file_request + # end + private def export_kick_off(endpoint = nil, - id: nil, + id = nil, search_params: nil, headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) url = '' diff --git a/lib/app/modules/bulk_data/bulk_data_group_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_group_export_sequence.rb index 9ad79bd8f..c436943ea 100644 --- a/lib/app/modules/bulk_data/bulk_data_group_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_group_export_sequence.rb @@ -24,6 +24,10 @@ def endpoint def resource_id @instance.group_id end + + def type_parameter + 'Patient' + end end end end diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index fe56c4afb..5e2bc00a6 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -249,10 +249,10 @@ def test_status_check_fail_invalid_response_header end end - def test_output_file_skip_empty_output + def test_output_file_fail_empty_output output = [] - assert_raises Inferno::SkipException do + assert_raises Inferno::AssertionException do @sequence.assert_output_has_type_url(output) end end From d62321fb6bcbdd5b6a2aa5d3431cfb62fb9385aa Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Wed, 9 Oct 2019 17:08:08 -0400 Subject: [PATCH 113/144] Add ndjson file check back --- .../bulk_data/bulk_data_export_sequence.rb | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb index 605b8fbe3..ec1182a75 100644 --- a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb @@ -159,8 +159,6 @@ def check_cancel_request ) end - skip 'Skip testing $export without parameters' if @server_supports_type_parameter && !run_all_kick_off_tests - check_export_kick_off end @@ -255,16 +253,18 @@ def check_cancel_request check_export_kick_off(search_params: { '_type' => type_parameter }) end - # test 'Server shall return file in ndjson format' do - # metadata do - # id '06' - # link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' - # description %( - # ) - # end + test 'Server shall return FHIR resources in ndjson file' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + description %( + ) + end - # check_file_request - # end + check_export_status + assert_output_has_type_url if @server_supports_type_parameter + check_file_request + end private From dd0797f4ba650b28b9e6229a77aed79a2e50592b Mon Sep 17 00:00:00 2001 From: Chase Date: Thu, 10 Oct 2019 09:24:33 -0400 Subject: [PATCH 114/144] address github comments --- lib/app/sequence_base.rb | 2 +- test/unit/sequence_base_test.rb | 42 ++++++++++++--------------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/lib/app/sequence_base.rb b/lib/app/sequence_base.rb index 2901726a1..9eb48c4c2 100644 --- a/lib/app/sequence_base.rb +++ b/lib/app/sequence_base.rb @@ -738,7 +738,7 @@ def get_value_for_search_param(element) when FHIR::Coding element.code when FHIR::HumanName - element.family || element.given || element.text + element.family || element.given&.first || element.text when FHIR::Address element.text || element.city || element.state || element.postalCode || element.country else diff --git a/test/unit/sequence_base_test.rb b/test/unit/sequence_base_test.rb index a9a2abd48..4ab09f672 100644 --- a/test/unit/sequence_base_test.rb +++ b/test/unit/sequence_base_test.rb @@ -49,7 +49,7 @@ def set_resource_reference(resource, type) resource.recorder = new_reference end - describe '#retrieves value for search param' do + describe '#get_value_for_search_param' do before do instance = Inferno::Models::TestingInstance.create(selected_module: 'uscore_v3.0.0') client = FHIR::Client.new('') @@ -57,35 +57,23 @@ def set_resource_reference(resource, type) end it 'returns value from period' do - element = FHIR::Period.new - element.start = 'now' - assert @sequence.get_value_for_search_param(element) == 'now' - - element.start = nil - element.end = 'now' - assert @sequence.get_value_for_search_param(element) == 'now' + { start: 'now', end: 'later' }.each do |key, value| + element = FHIR::Period.new(key => value) + assert @sequence.get_value_for_search_param(element) == value + end end it 'returns value from address' do - element = FHIR::Address.new - element.state = 'mass' - assert @sequence.get_value_for_search_param(element) == 'mass' - - element = FHIR::Address.new - element.text = 'mitre' - assert @sequence.get_value_for_search_param(element) == 'mitre' - - element = FHIR::Address.new - element.postalCode = '12345' - assert @sequence.get_value_for_search_param(element) == '12345' - - element = FHIR::Address.new - element.city = 'boston' - assert @sequence.get_value_for_search_param(element) == 'boston' - - element = FHIR::Address.new - element.country = 'usa' - assert @sequence.get_value_for_search_param(element) == 'usa' + { + state: 'mass', + text: 'mitre', + postalCode: '12345', + city: 'boston', + country: 'usa' + }.each do |key, value| + element = FHIR::Address.new(key => value) + assert @sequence.get_value_for_search_param(element) == value + end end end end From adec21f8872d2390549f13444e6f5fb6e33689a1 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Thu, 10 Oct 2019 12:08:06 -0400 Subject: [PATCH 115/144] Fix PR comment --- lib/app/modules/bulk_data/bulk_data_export_sequence.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb index a2784a2da..295788bff 100644 --- a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb @@ -240,7 +240,7 @@ def check_cancel_request private - def export_kick_off(endpoint = nil, + def export_kick_off(endpoint, id: nil, search_params: nil, headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) From 39e911a3e9d5fedc692dd7d0158400a92fcd89fc Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Thu, 10 Oct 2019 16:26:13 -0400 Subject: [PATCH 116/144] Fix 508 issues on index.erb. --- lib/app/views/index.erb | 81 ++++++++++++++++++++++------------------- public/css/styles.css | 22 +++++++++-- public/js/app.js | 15 +++++--- 3 files changed, 72 insertions(+), 46 deletions(-) diff --git a/lib/app/views/index.erb b/lib/app/views/index.erb index 4aceecb79..172c68945 100644 --- a/lib/app/views/index.erb +++ b/lib/app/views/index.erb @@ -2,57 +2,64 @@
    - <% unless tls_testing_supported? %> - - <% end %> - <% if modules.length == 1%> +

    <%=modules.first.title%>

    -

    <%=modules.first.title%>

    <%= markdown_to_html(modules.first.description) %>
    <% else %> -

    +

    Inferno FHIR Testing

    +
    +

    Inferno is an open source tool that tests whether patients can access their health data. It makes HTTP(S) requests to test your server's conformance to authentication, authorization, and FHIR content standards and reports the results back to you. -

    +

    +

    Please choose a test set and enter a FHIR URI to begin testing. -

    - +

    +
    <% end%> -

    Start Testing

    + <% unless tls_testing_supported? %> + + <% end %> + - - <%= erb(:module_options,{},modules: modules) %> -
    - -
    - -
    - +
    + Start Testing + + <%= erb(:module_options,{},modules: modules) %> +
    + +
    + +
    + +
    -
    -
    - - <% if presets.present? %> - <% module_names = Array.new(modules.length).map!.with_index{ |mod, i| modules[i].name } %> -
    - Optionally, choose a preset vendor configuration to test: - - -
    - <% end %> + + <% if presets.present? %> + <% module_names = Array.new(modules.length).map!.with_index{ |mod, i| modules[i].name } %> +
    + + + + +
    + <% end %> +
    diff --git a/public/css/styles.css b/public/css/styles.css index be7b28330..64c077b13 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -126,7 +126,7 @@ body { /* ------------------------- INDEX -------------------------------- */ .headline { font-size: 1.8rem; - margin: 3rem 0 1rem; + margin: 1rem 0; font-weight: 100; } .logo { @@ -152,6 +152,14 @@ body { height: 60px; } +.index-page h1 { + margin-top: 2rem; +} + +.index-page .instructions-link { + margin-left: 5px; +} + .index-page .form-check{ font-size: 1.3rem; } @@ -161,17 +169,23 @@ body { background-color: #999; } -.index-page h2 { +.index-page legend { + font-family: 'Roboto Condensed', sans-serif; + font-size: 2rem; + font-weight: 500; margin: 30px 0 10px; - } .index-page .index-description p { font-size: 1.4rem; - margin: 40px 0; + margin: 20px 0; } +.index-page .preset-label{ + font-size: 1.3rem; +} + /* ------------------------- MAIN -------------------------------- */ .endpoint-label { diff --git a/public/js/app.js b/public/js/app.js index 0b1a2d8e3..c6dde3505 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -348,7 +348,7 @@ $(function(){ var modules = $('#preset-select option:selected').data('module_names').split(","); var preset = all[preset_id] == undefined ? "" : all[preset_id]; - if (preset != "") { + if (preset !== "") { document.getElementById("preset-select").selectedIndex = Object.keys(all).indexOf(preset_id) + 1; } @@ -358,14 +358,19 @@ $(function(){ var preset_on = $el.val() == '' ? false : true; if (preset_on) { - modules.forEach(function(mod){document.getElementById(mod).disabled = true}); - document.getElementById(preset.module).checked = true; - document.getElementById(preset.module).disabled = false; + modules.forEach(function(mod){$(document.getElementById(mod)).attr('disabled', true);}); + presetCheck = document.getElementById(preset.module); + if(presetCheck){ + $(presetCheck).prop("checked", true); + $(presetCheck).attr("disabled", false); + } + document.getElementById("preset").value = JSON.stringify(preset); document.getElementById("instructions-link").style.display = preset.instructions == null ? "none" : ""; document.getElementById("instructions-link").href = preset.instructions; + } else { - modules.forEach(function(mod){document.getElementById(mod).disabled = false}); + modules.forEach(function(mod){$(document.getElementById(mod)).attr('disabled', false)}); document.getElementById("preset").value = ""; document.getElementById("instructions-link").style.display = "none"; } From 2e8d7a52198845b40a7321f1aedef4ca3d030989 Mon Sep 17 00:00:00 2001 From: Yunwei Wang Date: Thu, 10 Oct 2019 16:40:41 -0400 Subject: [PATCH 117/144] Add ONC-Group test for USCDI requirement --- .../bulk_data/bulk_data_export_sequence.rb | 78 ++++++++++++------- .../onc_bulk_data_group_export_sequence.rb | 42 ++++++++++ lib/app/modules/bulk_data_module.yml | 1 + .../onc_group_export_sequence_test.rb | 43 ++++++++++ .../bulk_data/patient_export_sequence_test.rb | 9 +++ 5 files changed, 147 insertions(+), 26 deletions(-) create mode 100644 lib/app/modules/bulk_data/onc_bulk_data_group_export_sequence.rb create mode 100644 test/sequence/bulk_data/onc_group_export_sequence_test.rb diff --git a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb index ec1182a75..fafe8d15f 100644 --- a/lib/app/modules/bulk_data/bulk_data_export_sequence.rb +++ b/lib/app/modules/bulk_data/bulk_data_export_sequence.rb @@ -9,7 +9,7 @@ class BulkDataExportSequence < SequenceBase description 'Verify that system level export on the Bulk Data server follow the Bulk Data Access Implementation Guide' - test_id_prefix 'System' + test_id_prefix 'BulkData' requires :token @@ -55,7 +55,12 @@ def check_export_kick_off_fail_invalid_prefer assert_response_bad(reply) end - def check_export_status(url = @content_location, timeout: 180) + def check_export_kick_off_fail_invalid_parameter(search_params) + reply = export_kick_off(endpoint, resource_id, search_params: search_params) + assert_response_bad(reply) + end + + def check_export_status(url = @content_location, timeout: 180, save_output: false) skip 'Server response did not have Content-Location in header' unless url.present? reply = export_status_check(url, timeout) @@ -74,6 +79,10 @@ def check_export_status(url = @content_location, timeout: 180) assert_status_reponse_required_field(response_body) @output = response_body['output'] + + if save_output + @saved_output = @output.clone + end end def assert_output_has_type_url(output = @output, @@ -91,18 +100,21 @@ def assert_output_has_type_url(output = @output, end end - def check_file_request(output = @output) + def check_file_request(output = @output, index:0) skip 'Sever response did not have output data' unless output.present? + check_output_file(output[index]) + end + + def check_output_file(file) + return unless file.present? headers = { accept: 'application/fhir+ndjson' } - output.each do |file| - url = file['url'] - type = file['type'] - reply = @client.get(url, @client.fhir_headers(headers)) - assert_response_content_type(reply, 'application/fhir+ndjson') + url = file['url'] + type = file['type'] + reply = @client.get(url, @client.fhir_headers(headers)) + assert_response_content_type(reply, 'application/fhir+ndjson') - check_ndjson(reply.body, type) - end + check_ndjson(reply.body, type) end def check_ndjson(ndjson, type) @@ -192,7 +204,7 @@ def check_cancel_request ) end - check_export_status + check_export_status(save_output: true) end test 'Completed Status Check shall return output with type and url' do @@ -206,17 +218,16 @@ def check_cancel_request assert_output_has_type_url end - # test 'Server shall export resources required by Patient Compartment' do - # metadata do - # id '07' - # link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#bulk-data-status-request' - # description %( - # ) - # end - - # assert_output_has_type_url - # end + test 'Server shall return FHIR resources in ndjson file' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + description %( + ) + end + check_file_request + end test 'Server should return "202 Accepted" for delete export content' do metadata do @@ -242,33 +253,48 @@ def check_cancel_request check_cancel_request end - test 'Server shall return "202 Accepted" and "Content-location" for $export operation with parameters' do + test 'Server shall return "202 Accepted" and "Content-location" for $export operation with _type parameters' do metadata do id '09' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#query-parameters' description %( ) + optional end check_export_kick_off(search_params: { '_type' => type_parameter }) end - test 'Server shall return FHIR resources in ndjson file' do + test 'Server shall return FHIR resources required by _type filter' do metadata do id '10' link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' description %( ) + optional end + skip 'Server does not support _type parameter' unless @server_supports_type_parameter + check_export_status - assert_output_has_type_url if @server_supports_type_parameter - check_file_request + assert_output_has_type_url + end + + test 'Server shall reject $export operation with invalid _type parameters' do + metadata do + id '10' + link 'https://build.fhir.org/ig/HL7/bulk-data/export/index.html#file-request' + description %( + ) + optional + end + + check_export_kick_off_fail_invalid_parameter({'_type' => 'UnknownResource'}) end private - def export_kick_off(endpoint = nil, + def export_kick_off(endpoint, id = nil, search_params: nil, headers: { accept: 'application/fhir+json', prefer: 'respond-async' }) diff --git a/lib/app/modules/bulk_data/onc_bulk_data_group_export_sequence.rb b/lib/app/modules/bulk_data/onc_bulk_data_group_export_sequence.rb new file mode 100644 index 000000000..1b790853e --- /dev/null +++ b/lib/app/modules/bulk_data/onc_bulk_data_group_export_sequence.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require_relative 'bulk_data_group_export_sequence' + +module Inferno + module Sequence + class OncBulkDataGroupExportSequence < BulkDataGroupExportSequence + extends_sequence BulkDataGroupExportSequence + + group 'ONC Bulk Data Group Export' + + title 'ONC Group Compartment Export Tests' + + description 'Verify that Group compartment export on the Bulk Data server follow ONC Health IT Certification' + + test_id_prefix 'ONC-Group' + + def required_resources + ['AllergyIntolerance', 'CarePlan', 'CareTeam', 'Condition', 'Device', 'DiagnosticReport', 'DocumentReference', 'Goal', 'Immunization', 'Medication', 'MedicationStatement', 'MedicatinRequest', 'Observation', 'Patient', 'Procedure'] + end + + def check_output_type(output = @saved_output) + + output_types = output.map{|file| file['type']} + + required_resources.each do |type| + skip "#{type} was not in Server bulk data output" unless output_types.include?(type) + end + end + + test 'Server shall return FHIR resources required by ONC Health IT Certification' do + metadata do + id '01' + link 'https://www.hl7.org/fhir/us/core/general-guidance.html' + description %( + ) + end + check_output_type + end + end + end +end \ No newline at end of file diff --git a/lib/app/modules/bulk_data_module.yml b/lib/app/modules/bulk_data_module.yml index d0b0ee543..6d900385d 100644 --- a/lib/app/modules/bulk_data_module.yml +++ b/lib/app/modules/bulk_data_module.yml @@ -14,4 +14,5 @@ test_sets: sequences: - BulkDataPatientExportSequence - BulkDataGroupExportSequence + - OncBulkDataGroupExportSequence diff --git a/test/sequence/bulk_data/onc_group_export_sequence_test.rb b/test/sequence/bulk_data/onc_group_export_sequence_test.rb new file mode 100644 index 000000000..3e9415cd5 --- /dev/null +++ b/test/sequence/bulk_data/onc_group_export_sequence_test.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require_relative '../../test_helper' + +class OncBulkDataGroupExportSequenceTest < MiniTest::Test + def setup + @instance = Inferno::Models::TestingInstance.new( + url: 'http://www.example.com', + client_name: 'Inferno', + base_url: 'http://localhost:4567', + client_endpoint_key: Inferno::SecureRandomBase62.generate(32), + client_id: SecureRandom.uuid, + selected_module: 'bulk_data', + oauth_authorize_endpoint: 'http://oauth_reg.example.com/authorize', + oauth_token_endpoint: 'http://oauth_reg.example.com/token', + scopes: 'launch openid patient/*.* profile', + token: 99_897_979 + ) + + @instance.save! + client = FHIR::Client.new(@instance.url) + client.use_stu3 + client.default_json + + @sequence = Inferno::Sequence::OncBulkDataGroupExportSequence.new(@instance, client, true) + + @expected_output = @sequence.required_resources.map{|type| {'type' => type}} + end + + def test_check_output_type_pass_with_required_types + assert @sequence.check_output_type(@expected_output) + end + + def test_check_output_type_fail_with_missing_type + actual_output = @expected_output.clone + actual_output.pop + + assert_raises Inferno::SkipException do + @sequence.check_output_type(actual_output) + end + end + +end \ No newline at end of file diff --git a/test/sequence/bulk_data/patient_export_sequence_test.rb b/test/sequence/bulk_data/patient_export_sequence_test.rb index 5e2bc00a6..d009adb97 100644 --- a/test/sequence/bulk_data/patient_export_sequence_test.rb +++ b/test/sequence/bulk_data/patient_export_sequence_test.rb @@ -117,6 +117,14 @@ def include_export_stub_invalid_prefer ) end + def include_export_stub_invalid_parameter + stub_request(:get, 'http://www.example.com/Patient/$export?_type=UnknownResource') + .with(headers: @export_request_headers) + .to_return( + status: 400 + ) + end + def include_status_check_stub(status_code: 200, response_headers: { content_type: 'application/json' }, response_body: @complete_status) @@ -154,6 +162,7 @@ def test_all_pass include_export_stub include_export_stub_invalid_accept include_export_stub_invalid_prefer + include_export_stub_invalid_parameter include_status_check_stub include_file_request_stub include_delete_request_stub From b1563bec635d55a1c7503957ac8528c17356c78b Mon Sep 17 00:00:00 2001 From: Rob Scanlon Date: Thu, 10 Oct 2019 20:03:13 -0400 Subject: [PATCH 118/144] Fix main page 508 issues. --- lib/app/views/default.erb | 27 ++++++------- lib/app/views/guided.erb | 17 ++++---- lib/app/views/state_status.erb | 56 +++++++++++++-------------- lib/app/views/test_details.erb | 2 +- lib/app/views/test_result_details.erb | 2 +- 5 files changed, 49 insertions(+), 55 deletions(-) diff --git a/lib/app/views/default.erb b/lib/app/views/default.erb index d4f530de4..8d38bf6db 100644 --- a/lib/app/views/default.erb +++ b/lib/app/views/default.erb @@ -13,18 +13,13 @@
    - Inferno Logo + Inferno Logo Small <%=instance.url%>
    - -
    - -
    - <% if instance.module.test_sets.length > 1 %> @@ -316,11 +311,11 @@
    <% end %> -