diff --git a/app/controllers/admin/cscrm_data_collections_controller.rb b/app/controllers/admin/cscrm_data_collections_controller.rb index c8897fd98..6e6ba02db 100644 --- a/app/controllers/admin/cscrm_data_collections_controller.rb +++ b/app/controllers/admin/cscrm_data_collections_controller.rb @@ -3,8 +3,8 @@ module Admin class CscrmDataCollectionsController < AdminController before_action :set_cscrm_data_collection, only: %i[ - show - edit update + show + edit update submit publish reset destroy ] @@ -13,9 +13,10 @@ def index respond_to do |format| format.html { if cscrm_manager_permissions? - @cscrm_data_collections = CscrmDataCollection.all + @cscrm_data_collections = CscrmDataCollection.all.includes(:organization) else - @cscrm_data_collections = current_user.organization.cscrm_data_collections.all + # Redirect non-admin users to CSCRM2 + redirect_to admin_cscrm_data_collections2_index_path end } format.csv { @@ -80,7 +81,7 @@ def publish Event.log_event(Event.names[:cscrm_data_collection_collection_published], 'CSRCM Data Collection', @cscrm_data_collection.id, "CSRCM Data Collection #{@cscrm_data_collection.id} published at #{DateTime.now}", current_user.id) redirect_to admin_cscrm_data_collection_path(@cscrm_data_collection), notice: 'CSRCM Data Collection has been published successfully.' end - + def reset if cscrm_manager_permissions? @cscrm_data_collection.reset! diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d4a10dfdb..fe143d5bd 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -106,6 +106,8 @@ def question_type_javascript_params(question) "form.querySelector(\"input[name=#{question.answer_field}]:checked\") && form.querySelector(\"input[name=#{question.answer_field}]:checked\").value" elsif question.question_type == 'thumbs_up_down_buttons' "form.querySelector(\"input[name=#{question.answer_field}]:checked\") && form.querySelector(\"input[name=#{question.answer_field}]:checked\").value" + elsif question.question_type == 'big_thumbs_up_down_buttons' + "form.querySelector(\"input[name=#{question.answer_field}]:checked\") && form.querySelector(\"input[name=#{question.answer_field}]:checked\").value" elsif question.question_type == 'yes_no_buttons' "form.querySelector(\"input[name=#{question.answer_field}]\") && form.querySelector(\"input[name=#{question.answer_field}]\").value" elsif question.question_type == 'checkbox' diff --git a/app/models/form.rb b/app/models/form.rb index d768a1e6f..a81f1e5d0 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -229,6 +229,66 @@ def to_csv(start_date: nil, end_date: nil) end end + def to_a11_v2_csv(start_date: nil, end_date: nil) + non_flagged_submissions = submissions + .non_flagged + .where('created_at >= ?', start_date) + .where('created_at <= ?', end_date) + .order('created_at') + return nil if non_flagged_submissions.blank? + + header_attributes = hashed_fields_for_export.values + header_attributes = [ + :id, + :q1, + :positive_effectiveness, + :positive_ease, + :positive_efficiency, + :positive_transparency, + :positive_humanity, + :positive_employee, + :positive_other, + :negative_effectiveness, + :negative_ease, + :negative_efficiency, + :negative_transparency, + :negative_humanity, + :negative_employee, + :negative_other, + :q4 + ] + + attributes = fields_for_export + + CSV.generate(headers: true) do |csv| + csv << header_attributes + + non_flagged_submissions.each do |submission| + csv << [ + submission.id, + submission.answer_01, + submission.answer_02 && submission.answer_02.split(",").include?("effectiveness") ? 1 : 0, + submission.answer_02 && submission.answer_02.split(",").include?("ease") ? 1 : 0, + submission.answer_02 && submission.answer_02.split(",").include?("efficiency") ? 1 : 0, + submission.answer_02 && submission.answer_02.split(",").include?("transparency") ? 1 : 0, + submission.answer_02 && submission.answer_02.split(",").include?("humanity") ? 1 : 0, + submission.answer_02 && submission.answer_02.split(",").include?("employee") ? 1 : 0, + submission.answer_02 && submission.answer_02.split(",").include?("other") ? 1 : 0, + + submission.answer_03 && submission.answer_03.split(",").include?("effectiveness") ? 1 : 0, + submission.answer_03 && submission.answer_03.split(",").include?("ease") ? 1 : 0, + submission.answer_03 && submission.answer_03.split(",").include?("efficiency") ? 1 : 0, + submission.answer_03 && submission.answer_03.split(",").include?("transparency") ? 1 : 0, + submission.answer_03 && submission.answer_03.split(",").include?("humanity") ? 1 : 0, + submission.answer_03 && submission.answer_03.split(",").include?("employee") ? 1 : 0, + submission.answer_03 && submission.answer_03.split(",").include?("other") ? 1 : 0, + + submission.answer_04 + ] + end + end + end + def user_role?(user:) role = user_roles.find_by_user_id(user.id) role.present? ? role.role : nil diff --git a/app/models/question.rb b/app/models/question.rb index ef513c312..bef0261d3 100644 --- a/app/models/question.rb +++ b/app/models/question.rb @@ -28,6 +28,7 @@ class Question < ApplicationRecord 'states_dropdown', 'star_radio_buttons', 'thumbs_up_down_buttons', + 'big_thumbs_up_down_buttons', 'yes_no_buttons', 'hidden_field', 'date_select', diff --git a/app/views/admin/cscrm_data_collections2/edit.html.erb b/app/views/admin/cscrm_data_collections2/edit.html.erb index 16e001727..a7484c466 100644 --- a/app/views/admin/cscrm_data_collections2/edit.html.erb +++ b/app/views/admin/cscrm_data_collections2/edit.html.erb @@ -3,7 +3,7 @@ <% end %>

- <%= link_to admin_cscrm_data_collection_path(@cscrm_data_collection) do %> + <%= link_to admin_cscrm_data_collections2_index_path(@cscrm_data_collection) do %> Back to CSCRM Data Collection <% end %> @@ -14,7 +14,7 @@ <%= render "form", cscrm_data_collection: @cscrm_data_collection %> <% if @cscrm_data_collection.persisted? %> - <%= button_to "Destroy", admin_cscrm_data_collection_path(@cscrm_data_collection), + <%= button_to "Destroy", admin_cscrm_data_collections2_path(@cscrm_data_collection), class: "usa-button usa-button--secondary float-right", method: :delete %> <% end %> diff --git a/app/views/admin/questions/_form.html.erb b/app/views/admin/questions/_form.html.erb index 639907091..a1ea617c7 100644 --- a/app/views/admin/questions/_form.html.erb +++ b/app/views/admin/questions/_form.html.erb @@ -29,7 +29,7 @@
<% end %> <% else %> - <%= f.select :question_type, Question::QUESTION_TYPES - ["thumbs_up_down_buttons", "custom_text_display", "yes_no_buttons"], { selected: question.question_type, include_blank: true }, { class: "usa-select" } %> + <%= f.select :question_type, Question::QUESTION_TYPES - ["big_thumbs_up_down_buttons", "thumbs_up_down_buttons", "custom_text_display", "yes_no_buttons"], { selected: question.question_type, include_blank: true }, { class: "usa-select" } %> <% end %> diff --git a/app/views/admin/questions/_question.html.erb b/app/views/admin/questions/_question.html.erb index 191963074..86b2ae145 100644 --- a/app/views/admin/questions/_question.html.erb +++ b/app/views/admin/questions/_question.html.erb @@ -19,6 +19,8 @@ <% @form_component_path = 'components/forms/edit/question_types/radio_buttons' %> <% elsif question.question_type == "thumbs_up_down_buttons" %> <% @form_component_path = 'components/forms/question_types/thumbs_up_down_buttons' %> +<% elsif question.question_type == "big_thumbs_up_down_buttons" %> +<% @form_component_path = 'components/forms/question_types/big_thumbs_up_down_buttons' %> <% elsif question.question_type == "dropdown" %> <% @form_component_path = 'components/forms/edit/question_types/dropdown' %> <% elsif question.question_type == "states_dropdown" %> diff --git a/app/views/components/forms/_custom.html.erb b/app/views/components/forms/_custom.html.erb index 7259d42a8..ccdebe704 100644 --- a/app/views/components/forms/_custom.html.erb +++ b/app/views/components/forms/_custom.html.erb @@ -56,6 +56,8 @@ <%= render 'components/forms/question_types/star_radio_buttons', form: form, question: question, question_number: multi_section_question_number %> <% elsif question.question_type == "thumbs_up_down_buttons" %> <%= render 'components/forms/question_types/thumbs_up_down_buttons', form: form, question: question, question_number: multi_section_question_number %> + <% elsif question.question_type == "big_thumbs_up_down_buttons" %> + <%= render 'components/forms/question_types/big_thumbs_up_down_buttons', form: form, question: question, question_number: multi_section_question_number %> <% elsif question.question_type == "yes_no_buttons" %> <%= render 'components/forms/question_types/yes_no_buttons', form: form, question: question, question_number: multi_section_question_number %> <% elsif question.question_type == "radio_buttons" %> diff --git a/app/views/components/forms/question_types/_big_thumbs_up_down_buttons.html.erb b/app/views/components/forms/question_types/_big_thumbs_up_down_buttons.html.erb new file mode 100644 index 000000000..32b26d304 --- /dev/null +++ b/app/views/components/forms/question_types/_big_thumbs_up_down_buttons.html.erb @@ -0,0 +1,69 @@ + + +

+ <%= render 'components/question_title', question: question %> + +
+
+ +   +   + +
+
+ +
+ <%= question.text %> + <%= render 'components/question_title', question: question %> +
+
+ aria-describedby="<%#= "question-id-#{question.id}-help-text" %>" + <% end %> + > + <%= radio_button_tag("yes", "yes", nil, { id: "yes", name: question.answer_field, class: "usa-radio__input usa-radio__input--tile", required: question.is_required }) %> + <%= label_tag("yes", nil, class: "usa-radio__label") do %><%#= option.text %><% end %> + + +
+ +
+
diff --git a/docs/models/collections.md b/docs/models/collections.md new file mode 100644 index 000000000..bf0ae4893 --- /dev/null +++ b/docs/models/collections.md @@ -0,0 +1,31 @@ +### Collections + +A Collection represents a quarterly CX Data Collection. +OMB collects CX Data on a quarterly basis from each of the High-impact Service Providers (HISPs). + +Data is published for download at https://www.performance.gov/cx/data/. + +|Field Name | Sample Input | Format | Description | +|-- | -- | -- | -- | +| id | 59 | Number | Unique number for a collection record. A collection record is generated for each HISP each reporting quarter. A record indicates whether HISP has reported survey(s) for the quarter, as well as how many surveys were reported. | +| name | CX Quarterly Reporting | Text | Name of collection; same for all HISPs | +| start_date | 10/1/2023 | Date | Start date of the reporting quarter | +| end_date | 12/31/2023 | Date | End date of the reporting quarter | +| service_provider_id | 36 | Number | Unique number for each HISP | +| service_provider_name | Farm Service Agency | Text | Name of HISP | +| service_provider_organization_id | 2098 | Number | Unique number for each department. A department may contain several HISPs. | +| service_provider_organization_name | Department of Agriculture | Text | Name of department | +| service_provider_organization_abbreviation | USDA | Text | Abbreviation of each department name | +| organization_id | 2098 | Number | Unique number for each department. A department may contain several HISPs. | +| organization_name | Department of Agriculture | Text | Name of department | +| organization_abbreviation | USDA | Text | Abbreviation of each department name | +| user_email |   | Text | Email of POC for each HISP | +| year | 2021 | Year | Year of reported data | +| quarter | 1 | Quarter | Quarter of reported data | +| reflection | This FY21 first quarter report completes the data collection for the first annual FPAC Producer Satisfaction Survey… | Text | Each HISP provide a reflection text on the insights gleaned from all surveys for the quarter. | +| created_at | 2021-07-06 20:25:51 UTC | Date | Timestamp for creation of collection record | +| updated_at | 2021-08-04 16:29:20 UTC | Date | Timestamp for update to the collection record. May reflection HISP POC updating records and/or OMB reviewing data submission and approval to publish. | +| rating | PARTIAL | Text | OMB provides a rating of the data submission after review. | +| aasm_state | draft | Text | Indicates whether HISP records are in draft, submitted, or published. Draft is when OMB creates the collection record. Submitted indicates that HISP has affirmatively provided data submission. Published indicates that OMB has reviewed and cleared data submission for publishing. OMB uses the published tag as filter for HISPs that met the data reporting requirements. | +| integrity_hash |   | Text | This is an auto-generated tag for unique record. | +| omb_cx_reporting_collections_count | 1 | Number | Number of surveys submitted by the HISPs for the quarter. | \ No newline at end of file diff --git a/docs/models/omb_cx_reporting_collections.md b/docs/models/omb_cx_reporting_collections.md new file mode 100644 index 000000000..fad61fcfc --- /dev/null +++ b/docs/models/omb_cx_reporting_collections.md @@ -0,0 +1,102 @@ +### OMB CX Reporting Collections + +An OMB CX Reporting Collection represents summary data for a single Service Channel within a CX Data Collection. +OMB collects CX Data on a quarterly basis from each of the High-impact Service Providers (HISPs). + +Data is published for download at https://www.performance.gov/cx/data/. + + +|Field Name | Sample Input | Format | Description| +|-- | -- | -- | --| +|id | 190 | Number | Unique number for each set of survey responses. Each number indicates a unique survey deployed by the HISPs. Each row corresponds to a unique survey.| +|collection_id | 57 | Number | Unique number for a collection record. A collection record is generated for each HISP each reporting quarter. A collection record may include multiple surveys for the HISP service for the quarter.| +|collection_year | 2021 | Year | Year of data collection| +|collection_quarter | 1 | Quarter | Quarter of data collection| +|collection_name | CX Quarterly Reporting | Text | Name of collection; same for all HISPs| +|collection_organization_id | 2139 | Number | Unique number for each department. A department may contain several HISPs.| +|collection_organization_name | DHS | Text | Name of department| +|collection_organization_abbreviation | Department of Homeland Security | Text | Abbreviation of each department name| +|service_provider_id | 7 | Number | Unique number for each HISP| +|service_provider_name | Customs and Border Protection | Text | Name of HISP| +|service_provider_organization_id | 2139 | Number | Unique number for each department. A department may contain several HISPs.| +|service_provider_organization_name | Department of Homeland Security | Text | Name of department| +|service_provider_organization_abbreviation | DHS | Text | Abbreviation of each department name| +|service_provided | Travelers who contact the TCC about four travel programs (EVUS, ESTA, ADIS, and TTP) by phone or email | Text | Free text, HISP provides a description of the designated service provided at the point of the reported survey.| +|service_id | 10 | Number | Unique number of the designated service associated with the reported survey.| +|service_name | Contacting the CBP contact center | Text | Name of designated service associated with the reported survey| +|transaction_point |   | Text | Free text, HISP provides a description of the transaction point where the reported survey is provided to the customers.| +|channel |   | Text | Mode by which the reported survey is deployed.| +|volume_of_customers | 0 | Number | Total number of customers served by the HISP within the designated service for the quarter| +|volume_of_customers_provided_survey_opportunity | 0 | Number | Total number of customers provided with the reported customer feedback survey for the designated service during the quarter| +|volume_of_respondents | 0 | Number | Total number of survey responses for the quarter| +|omb_control_number | OMB Control Number | Text | HISP provides the OMB Control Number associated with the reported survey| +|federal_register_url | Federal Register URL | Text | HISP provides the Federal Register URL associated with the reported survey| +|q1_text |   | Text | Text of the question measuring satisfaction in the reported survey| +|q1_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q1_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q1_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q1_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q1_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q2_text |   | Text | Text of the question measuring trust in the reported survey| +|q2_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q2_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q2_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q2_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q2_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q3_text |   | Text | Text of the question measuring effectiveness in the reported survey| +|q3_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q3_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q3_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q3_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q3_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q4_text |   | Text | Text of the question measuring ease in the reported survey| +|q4_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q4_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q4_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q4_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q4_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q5_text |   | Text | Text of the question measuring efficiency in the reported survey| +|q5_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q5_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q5_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q5_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q5_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q6_text |   | Text | Text of the question measuring transparency in the reported survey| +|q6_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q6_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q6_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q6_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q6_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q7_text |   | Text | Text of the question measuring employee interaction in the reported survey| +|q7_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q7_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q7_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q7_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q7_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q8_text |   | Text | HISP may provide text of additional question of interest.| +|q8_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q8_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q8_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q8_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q8_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q9_text |   | Text | HISP may provide text of additional question of interest.| +|q9_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q9_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q9_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q9_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q9_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q10_text |   | Text | HISP may provide text of additional question of interest.| +|q10_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q10_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q10_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q10_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q10_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|q11_text |   | Text | HISP may provide text of additional question of interest.| +|q11_1 | 0 | Number | Total number of responses for 1-strongly disagree on a 1-5 bi-directional Likert Scale.| +|q11_2 | 0 | Number | Total number of responses for 2-disagree on a 1-5 bi-directional Likert Scale.| +|q11_3 | 0 | Number | Total number of responses for 3-neutral on a 1-5 bi-directional Likert Scale.| +|q11_4 | 0 | Number | Total number of responses for 4-agree on a 1-5 bi-directional Likert Scale.| +|q11_5 | 0 | Number | Total number of responses for 5-strongly agree on a 1-5 bi-directional Likert Scale.| +|created_at | 2021-07-02 21:46:03 UTC | Date | Date of survey record creation by OMB| +|updated_at | 2021-08-04 19:29:49 UTC | Date | Date of survey record update by HISP and/or modifcation and review by OMB| +|operational_metrics |   | Text | Free text, HISP may provide any additional text describing operational metrics associated with designated service of the reported survey.| diff --git a/docs/models/service_providers.md b/docs/models/service_providers.md new file mode 100644 index 000000000..4e61688b8 --- /dev/null +++ b/docs/models/service_providers.md @@ -0,0 +1,20 @@ +### Service Providers + +A Service Providers represents a HISP (High-impact Service Provider); a federal entity, as designated by the Director of the Office of Management and Budget (OMB), that provides or funds customer-facing services, including Federal services administered at the State or local level. + +OMB collects CX Data on a quarterly basis from each of the High-impact Service Providers (HISPs), +and each OMB CX Reporting Collection references a Service Provider. + +Data is published for download at https://www.performance.gov/cx/data/. + +|Field Name|Sample Input|Format |Description| +|:----|:----|:----|:----| +|id|36|Number|Unique number for a collection record. A collection record is generated for each HISP each reporting quarter. A record indicates whether HISP has reported survey(s) for the quarter, as well as how many surveys were reported.organization_id|2098|Number|Unique number for each department. A department may contain several HISPs.organization_abbreviation|USDA|Text|Abbreviation of each department name| +|organization_name|Department of Agriculture|Text|Name of department| +|name|Farm Service Agency|Text|Name of HISP| +|slug|usda-fsa|Text|Abbreciation of department and HISP namesdescription| |Text|Description of the HISP, services, and/or area of responsibility.notes| |Text|Field for HISP to provide additional notes.department|usda|Text|Abbreviation of department name| +|department_abbreviation|usda|Text|Abbreviation of department name| +|bureau|Farm Service Agency|Text|Name of HISP| +|url| |Text|HISP may provide a website link to their agency.| +|new|FALSE|Boolean|True or False for whether HISP is a new service provider.| +|inactive|FALSE|Boolean|True or False for whether HISP is inactive.| diff --git a/docs/models/services.md b/docs/models/services.md new file mode 100644 index 000000000..b166bc298 --- /dev/null +++ b/docs/models/services.md @@ -0,0 +1,37 @@ +### Services + +A Service represents a service provided by a federal government agency. + +OMB collects CX Data on a quarterly basis from each of the High-impact Service Providers (HISPs), +and each OMB CX Reporting Collection references a Services. + +Data is published for download at https://www.performance.gov/cx/data/. + +|Field Name|Sample Input|Format |Description| +|:----|:----|:----|:----| +|id|2|Number|Unique identifier for a Service.| +|name|Receiving outpatient services|Text|Name of designated service of the HISP| +|description|VHA sends email surveys to everyone who receives outpatient services. |Text|HISP provides a description of the designated service.| +|organization_id|2129|Number|Unique number for each department. A department may contain several HISPs| +|organization_abbreviation|VA|Text|Abbreviation of each department name| +|organization_name|Department of Veterans Affairs|Text|Name of department| +|service_provider_id|21|Number|Unique number for each HISP| +|service_provider_name|Veterans Health Administration|Text|Name of HISP| +|service_provider_slug|va-vha|Text|Abbreviation of department and HISP names| +|justification_text| |Text|HISP provides a description for why this service was selected for priority designation.| +|contact_center|FALSE|Boolean|True or False for whether the service involves a contact center and/or an interaction with a contact center| +|kind|[]|Text|Identifies the category of service: compliance, administrative, benefits, recreation, informational, data and research, and regulatory| +|transactional|FALSE|Boolean|True or False for whether the service is transactional| +|notes| |Text|Field for HISP to provide additional notes| +|hisp|FALSE|Boolean|True or False for identifying the agency as a HISP| +|department|va|Text|Abbreviation of department name| +|bureau|Veterans Health Administration|Text|Name of HISP| +|service_abbreviation|vha|Text|Abbreviation of HISP names| +|service_slug|va-vha|Text|Abbreviation of department and HISP names| +|url| |Text|HISP may provide a website link to their service| +|homepage_url| |Text|HISP may provide a website link to their service| +|channels|[]|Text|HISP select channel(s) where their service is delivered| +|tags|[]|Text|HISP may add tags as needed. No strict guidance on tag type| +|available_in_person|FALSE|Boolean|True or False for whether service is available in person| +|available_digitally|FALSE|Boolean|True or False for whether service is available digitally| +|available_via_phone|FALSE|Boolean|True or False for whether service is available through telephone. |