SOW Attachment A4.2 Bureau Reporting Sub System PIMS.pdf

PDF 1 MB Posted

Attached to
Electronic Handbooks Development, Modernization, and Enhancements Federal contract opportunity
Solicitation number
75R60221R00007
Issued by
Department of Health and Human Services Health Resources and Services Administration Headquarters

About this file

This document provides a detailed design document for the Performance Improvement and Measurement System (PIMS), a web application used by the Health Resources and Services Administration's Federal Office of Rural Health Policy to collect performance data from grantees. The PIMS application supports various FORHP programs and allows grantees to report required data and performance information. It also includes reporting features for FORHP staff to review grantee submissions and generate aggregated reports. The design document covers the PIMS architecture, which incorporates .NET, SQL Server, and other technologies. It describes the database schema, data access layer, authentication, navigation framework, validation, workflow logic, forms, and interfaces to the Electronic Handbooks and other external systems. The document is intended for software developers implementing and maintaining the PIMS application.

View the file

Other files for this federal contract opportunity

Other files attached to Electronic Handbooks Development, Modernization, and Enhancements, newest first.
File Type Posted
RFP_75R60221R00007.pdf PDF
SOW Attachment A9 - EHBs Quality Metrics.pdf PDF
SOW Attachment A4.4 Bureau Reporting Sub System RSR.pdf PDF
SOW Attachment A4.5 Bureau Reporting Sub System PTR.pdf PDF
Attachment Q1 - EHBs DME Labor Categories.pdf PDF
SOW Attachment A4.3 Bureau Reporting Sub System AETC.pdf PDF
SOW Attachment A7 - EHBs Tools and Technologies.pdf PDF
SOW Attachment A1- HRSA EHBs Functionality.pdf PDF
Attachment A-Statement of Work_7R60221R00007.pdf PDF
SOW Attachment A6 - EHBs Core Architecture-1.pdf PDF
SOW Attachment A4.1 Bureau Reporting Sub System ADR.pdf PDF
SOW Attachment A5 - EHBs External Interfaces.pdf PDF
SOW Attachment A3 - Enterprise EHBs User Roles and Responsibilities.pdf PDF
SOW Attachment A2 - HRSA EHBs Transactions.pdf PDF
SOW Attachment A4 - EHBs Modules.pdf PDF
Attachment G - HHS Subcontracting Plan Template.pdf PDF
SOW Attachment A8 - HRSA EPLC Framework.pdf PDF
SOW Attachment A10- EHBs SonarQube Baseline.pdf PDF
Questions and Answers_75R60221R00007.pdf PDF
Attachment Q2 - EHBs SA and PMO Labor Categories.pdf PDF
Attachment H - Non-Disclosure Agreement.pdf PDF
Attachment F - Past Performance Questionnaire.pdf PDF
Attachment D - Disclosure of Lobbying Activities.pdf PDF
Attachment B - Billing Instructions.pdf PDF
EHB DME RFP_ Draft.pdf PDF
SOW Attachment A7 - EHBs Tools and Technologies.pdf PDF
SOW Attachment A1- HRSA EHBs Functionality.pdf PDF
SOW Attachment A4 - EHBs Modules.docx DOCX document
SOW Attachment A4.3 Bureau Reporting Sub System AETC.doc DOC document
Attachment B - Billing Instructions.docx DOCX document
SOW Attachment A4.5 Bureau Reporting Sub System PTR.pdf PDF
SOW Attachment A8 - HRSA EPLC Framework.pdf PDF
SOW Attachment A2 - HRSA EHBs Transactions.docx DOCX document
SOW Attachment A4.1 Bureau Reporting Sub System ADR.docx DOCX document
Attachment I - Non-Disclosure Agreement.docx DOCX document
Attachment F - EHBs EA Labor_Categories-SR_CS.docx DOCX document
Attachment F - EHBs DME Labor_Categories-SR_CS.docx DOCX document
Attachment D - Lobby Activities.docx DOCX document
SOW Attachment A3 - Enterprise EHBs User Roles and Responsibilities.pdf PDF
SOW Attachment A4.4 Bureau Reporting Sub System RSR.docx DOCX document
SOW Attachment A10- EHBs SonarQube Baseline.xlsx XLSX spreadsheet
Attachment H - HHS Subcontracting Plan Template.docx DOCX document
SOW Attachment A9 - EHBs Quality Metrics.docx DOCX document
Attachment G- Past Performance Questionnaire.docx DOCX document
Attachment E -Certificate of Current Cost or Pricing Data.docx DOCX document
SOW Attachment A5 - EHBs External Interfaces.pdf PDF
SOW Attachment A6 - EHBs Core Architecture-1.docx DOCX document
SOW Attachment A4.2 Bureau Reporting Sub System PIMS.docx DOCX document
Attachment A SOW_Draft.docx DOCX document
Attachment C - CPARS Information Sheet.docx DOCX document
Show all 50

Electronic Handbooks Development, Modernization, and Enhancements has more files on GovTribe.

On GovTribe

Work with this file on GovTribe

  • Download the original file
  • Contacts named in this file
  • Similar government files
  • Ask GovTribe AI about this file

Text version

Performance Improvement Measurement System (PIMS) Web Application

Detailed Design Document Attachment A4.2

Health Resources and Services Administration

Office of Information Technology 5600 Fishers Lane

Rockville, MD 20857 ii

Table of Contents 1 Overview

1.1 System Overview

1.2 Document Organization

1.3 Change Control

1.4 Target Audiences

1.5 Assumptions

1.6 Referenced Documents

2 Design Considerations

2.1 Goals and Guidelines

2.2 Development Methods

3 Projects

3.1 General Functionality

3.2 User Interface Logic

4 Software Tasks

4.1 Database Schema

4.2 Data Access Layer

4.3 Project Officer Module Interface

4.4 Authentication and Authorization Module/Active Directory Interface

4.4.1 The Core Project

4.4.2 OHIT-Rural Project

4.4.3 OHIT/ORHP Project

4.4.4 Database Tables

4.5 Navigation Framework

4.5.1 Database Tables

4.5.2 Classes

4.6 Validation Framework

4.6.1 Client Side Validation

4.6.2 Server Side Validation

4.6.3 Field Level Validation

4.6.4 Cross Field Validation

4.7 Workflow Logic

4.7.1 OHIT-Rural Grant Processing Workflow

4.7.2 Sequence Diagram

4.7.3 Report Access with EHBs

4.7.4 Workflow Matrix

4.8 Comments Module

4.9 Email Notification Module

4.10 OAT User Interface

4.10.1 OAT Master Page

4.10.2 OAT Forms

4.11 ORHP User Interface

4.11.1 ORHP Master Page

4.11.2 ORHP Forms

4.12 PDF Form Generation

4.13 Roles Module

iii

4.14 PDF Archive Module

4.15 SMARTForm Approach

4.15.1 Form Meta data

4.15.2 Form Rendering

4.15.3 Form Data Saving

4.15.4 Form Validation

4.15.5 Server Control Development

4.16 OAT Data Extracts

4.16.1 Report Generation Tool

4.16.2 Report Generation Class

4.16.3 Design of Report Generation Class

4.16.4 Data Extract SQL Server Files

4.17 Telehealth Resource Center Grant Program (TRC)

4.17.1 TRC Reports

4.18 ORHP Reports

5 External Interfaces

5.1 Email Notifications

5.2 EHBs UI Integration

5.2.1 Hrsa.Integration.PlatformLite

5.2.2 Platform Lite

5.2.3 Left Menu and Top Menu Implementation

5.2.4 Top Menu

5.2.5 MasterPage

Appendix

List of Figures Figure 1: OHIT-Rural Software Architecture Figure 2: OHIT-Rural Data Access Layer Figure 3: OHIT-Rural Authentication Logical Flow Figure 4: OHIT-Rural Workflow Figure 5: Report Submission Process Figure 6: Workflow for Determining Read/Write Access Figure 7: Email Notification Module Figure 8: Form Metadata Object Model Figure 9: Retrieval of Form Metadata from the PIMS Database Tables Figure 10: SMARTForm Meta Data Figure 11: Class Structure of the SMARTForm Figure 12: Sample Code for Creating a Textbox Custom Control Figure 13: OAT Report Data Extracts Figure 14: TRC Program Data Model Figure 15: EHBs UI Integration Architecture Figure 16: Integration Classes Figure 17: SmartForm Meta Data Database Diagram Figure 18: SMARTForm Data Saving Database Diagram Figure 19: SMARTReport Database Diagram iv

List of Tables

Table 1: Validator Types Table 2: Workflow States Table 3: OAT Data Collection Period Dropdown Table 4: Report Generation Class Table 5: Design of Report Generation Class Table 6: Report Generation Class Method and Purpose Table 7: OAT Reports Table 8: TRC Program Reports Table 9: ORHP Reports

1 Overview This document describes the high-level architecture of Health Resources and Services Administration's (HRSA) Federal Office of Rural Health Policy (FORHP) Performance Improvement and Measurement System (PIMS).

1.1 System Overview

PIMS is used to collect performance data from Grantees that have received awards from FORHP programs. The system provides a data entry interface for Grantees to report required data and performance information. The system also includes reporting features that allow FORHP staff to review Grantee submissions as well as reports that aggregate (“rollup”) data across years and programs, permitting the user to visualize performance data to support FORHP’s analytical needs. PIMS currently supports the following FORHP programs:

• Allied Health Training (AHT)

• Black Lung Clinics (BlackLung)

• Delta Health Initiative (DHI)

• Delta States Development Network (DSDN)

• Frontier Extended Stay Clinic (FESC)

• Medicare Rural Hospital Flexibility (Flex)

• Flex Monitoring Team (FMT)

• Health Information Technology (HIT)

• Medicare Beneficiary Quality Improvement Program (MBQIP)

• Network Development Program (NDP)

• Office for the Advancement of Telehealth (OAT)

• Public Access to Defibrillation Devices Program (PADDP)

• Rural Access to Emergency Devices (RAED)

• Rural Benefits Counseling (RBC)

• Radiation Exposure Screening and Education Program (RESEP)

• Rural Care Coordination (RCC)

• Rural Health Care Services Outreach (RHCSO)

• Rural Health Information Technology Network Development Program (RHITND)

• Rural Health Network Development (RHND)

• Rural Health Research Center (RHRC)

• Rural Opioid Overdose Reversal (ROOR)

• Rural Veterans Health Access Program (RVHAP)

• Small Health Care Provider (SHCP)

• State Offices of Rural Health (SORH)

• Targeted Research (TR)

• Telehealth Resource Center (TRC)

• Rural Health Information Technology Workforce (Workforce)

The PIMS web application employs the following technologies:

• Microsoft .NET Framework 4.6, ASP.NET 4.0, and C#.Net 4.0

• XML and Extensible Stylesheet Language Transformation (XSLT)

• Microsoft SQL Server 2012

• Microsoft SQL Server Reporting Services (SSRS)

• Microsoft Internet Information Server 8.x

• JavaScript

• Infragistics NetAdvantage ASP.NET User Controls

• NHibernate

• Bootstrap

1.2 Document Organization

This document is divided into several sections:

• The Design Consideration section describes criterion used while developing and evaluating the PIMS web application.

• The Projects section describes the various projects contained in PIMS and the system architecture.

• The Software Tasks section describes the detailed components that make up the PIMS application. This includes the Database Schema, Data Access Layer, Project Officer Module Interface, Authentication and Authorization Module/Active Directory Interface, Navigation Framework, Validation Framework, Workflow Logic, Comments Module, Email Notification Module, OAT User Interface, ORHP User Interface, PDF Form Generation, Roles Module, PDF Archive Module, SMARTForm Approach, OAT Data Extracts, and Telehealth Resource Center Grant Program (TRC).

• The External Interfaces section describes the various ways the PIMS web application communicates with outside systems and databases.

• The appendix contains detailed database diagrams.

1.3 Change Control

During the initial and subsequent development cycles, the technical details of the PIMS web application changed as functionality is added, enhanced, removed, or otherwise changed. Even during the application maintenance phases, the design changes from time to time. As a result, this will be a “living” document that the Leidos team will keep up to date.

Once the initial version of this document is accepted, it will be considered under change control. All subsequent updates will be documented in the Document History table. OIT will be notified of all changes and will be provided an updated electronic copy of each future version.

1.4 Target Audiences

This document will be used by two main groups of software developers:

• Implementers of the PIMS web application.

• Maintainers of the PIMS web application after it is deployed.

This document will be reviewed by HRSA and Leidos managers responsible for overseeing the project.

1.5 Assumptions

This document was written based on the following assumptions.

• OIT will install the operating system on the Production and other environment web and database servers.

• OIT will obtain and install Secure Sockets Layer (SSL) certificates on Production and other environment web servers.

• OIT will do firewall configuration, as necessary, to allow secure traffic from providers and grantees on the Internet, through the firewall to the Production and other environment servers on the default secure port (i.e., 443).

• OIT will provide sufficient computer hardware and network bandwidth to accommodate peak expected usage on the PIMS database server and web application server.

• The HRSA Electronic Handbooks (EHBs) will not implement significant changes that effect how the PIMS web application will integrate with EHBs.

• End-user workstations must have, at a minimum, a Pentium 133 MHz processor with a Microsoft Windows XP operating system.

• End-user workstations will be set to a screen resolution of at least 1024x768.

1.6 Referenced Documents

The following documents were referenced in the creation of this document:

• Office of Health Information Technology (OHIT)-Rural Architecture.vsd

• OHIT-Rural Release 1 0 System Requirements Document_Draftv0 2.doc

• FORHP Rural Opioid Overdose Reversal Grant Program (ROOR) Grant Program

User Stories Document

• Previously approved versions of the PIMS Detailed Design Document.

2 Design Considerations

2.1 Goals and Guidelines

• Better user experience o Navigation o Performance o Simplicity

• Technical o .NET Framework 4.6 o Object-Oriented Programming (OOP) – Follow Single responsibility, Open-closed, Liskov substitution, Interface segregation, and Dependency inversion (SOLID) design principles o Service-Oriented Architecture (SOA) – Distributed architecture that allows machine to machine client data upload and creation of the upload completeness report using WCF Streaming capability o Unit test coverage: 50% o HTML5 - WebSocket o Fluid/Responsive design o Core application logic in application o Parallel processing o Asynchronous processing - server side and client

• Maintenance o Maintainability o Better system for troubleshooting, auditing, etc.

• Scalability o Support for server farm/load balancing

• Integration o Better integration with EHBs: more integration points o Retrieve more EHBs data

• Documentation o Simple, but complete documentation

2.2 Development Methods

The PIMS web application development team uses an adapted Agile Scrum Development Methodology. With Agile Scrum Methodology, the Product Owner works closely with the development team to identify and prioritize system functionality in the form of a “Product Backlog”. The Product Backlog consists of many work items including features, bug fixes, and non-functional requirements. With priorities driven by the Product Owner, the team estimates and agrees to deliver increments of software during successive sprints. Once a sprint has been completed and the work items delivered, the Product Backlog is analyzed and reprioritized, if necessary, and the next set of work items are selected for the next sprint.

3 Projects The PIMS, or the OHIT-Rural application as it is referenced in this document, will include the following projects: HRSACore, OHIT, and the ORHP. Figure 1 contains a Microsoft Visio diagram that depicts the high-level architecture of these projects.

ASPX Pages Master Page

Global.ASX

OHIT

ASPX Pages Master Page

Global.ASX

ORHP

OHIT-Rural DB Schema

Stored procedures

Data Access Layer

HttpModule

Generic ASPX Pages (Standard Errors, Login, etc)

HRSACore

WebCommands (Base Class) Renderer Base Class

AuthorityManager

EHB Wrapper

«subsystem»

EHB

Firewall

O u a So t a e c tectu e

Utilities Common Web Controls

Email Notifications

Database tables

Login App

Generic ASPX Pages (Standard Errors, Login, etc)

Code Share Code Share

Figure 1: OHIT-Rural Software Architecture

3.1 General Functionality

This document contains general functionality, which can be used by the ORHP project.

This functionality is not intended for use by other applications.

3.2 User Interface Logic

This document contains the user interface logic, which is specific to the ORHP application. This includes forms for all programs under the ORHP project.

4 Software Tasks

4.1 Database Schema

The database schema in ERWIN format is defined in the following documents:

• OAT.erwin

• ORHP.erwin

• ORHPReport.erwin

The schema is also defined in tabular form in the documents, which are embedded below.

• Data Dictionary PIMS 9.1 Release.docx

Data Dictionary PIMS

9.1 Release.docx

• PIMS OAT Data Dictionary.rtf

PIMS OAT Data Dictionary.rtf

• Erwin_OAT.pdf

Erwin_OAT.pdf

• Erwin_Core.pdf

Erwin_Core.pdf

4.2 Data Access Layer

Figure 2 depicts the data access layer for OHIT-Rural.

Figure 2: OHIT-Rural Data Access Layer

OHIT-Rural DB Schema

Database tables

SQLConnection DataSetDataAdapter

DataTable DataTable

DataTable

TableDataObject TableDataObject(SqlConnection _sqlConnection, string _formIDString, string _tableNameString) QueryTableData(System.Collections.Generic.Dictionary<string, object> ar)

UpdateTableData() ClearData()

FormDataObject FormDataObject(SqlConnection _sqlConnection, string _formID) FormDataObject(SqlConnection _sqlConnection, string _formID, List<string> tableNames) QueryData(System.Collections.Generic.Dictionary<string, Object> keys)

UpdateData()

ASPX Page

FormQueries.xml

XMLForDBQueries

HRSACore

ADO.Net

4.3 Project Officer Module Interface

The following class defines the interface with the Electronic Handbooks (EHBs):

CORE.Utilities.EISWrapper: file Thecore\Utilities\EISWrapper.cs

Methods:

public EISWrapper(ICoreIni iCore) public XmlDocument execute_getAll(EHB_XmlTemplate iXmlTemplate, string iType, string iID) public XmlDocument execute_getAll( EHB_XmlTemplate iXmlTemplate, string iOuterType, string iOuterID, string iInnerType, string iInnerID) public string GetDeliverableName(string iEHBGrantID, string iEHBDeliverableID) public EHB_ScheduleStatus GetStatus(string iEHBGrantID, string iEHBDeliverableID) public void UpdateStatus(EHB_ScheduleStatus iNewStatus, string iEHBGrantID, string iEHBDeliverableID, string iEHBUserID, string iReportStatus, string iExternalID) public Hashtable GetUserInfo(string iEHBUserID) public XmlDocument GetRoleInfo(string iEHBGrantID, int iRoleID) public string GetPDEmail(string reportInstanceID) public string GetAOEmail(string reportInstanceID) public XmlDocument execute(XmlDocument xmlDoc, EHB_DataAction iMethod) public bool GetFullGrantDetails(string iEHBGrantID, out string organizationName, out string contactName, out string contactEmail, out string contactPhone, out string contactStreet, out string contactCity, out string contactState, out string contactZip, out string contactFax) public bool GetGrantState(string iEHBGrantID, out string contactState) public bool GetGrantNo(string iEHBGrantID, out string activityCode, out string grantNo) public bool GetGrantDetails(string iEHBGrantID, out string organizationName, out string contactName, out string contactEmail)

4.4 Authentication and Authorization Module/Active Directory Interface Figure 3 depicts the logical flow of the Authentication for the OHIT-Rural Application.

Figure 3: OHIT-Rural Authentication Logical Flow

The following sections describe the classes that will manage the authentication.

4.4.1 The Core Project

HRSA.Core.UI.AuthorityManager

1. Call HRSA.Core.EHBAccess to request login information from EHBs.

2. If EHBs Login, call HRSA.Core.EHBAccess to request roles for user.

3. If not an EHBs login, call module specified by <authAppBase> and

<loginPath> for local login.

4. If not an EHBs login, read AC_UserRole_Rel table to retrieve roles.

5. Read AC_ResourceRole_Rel table to retrieve permissions for each command or login, use the highest permission level for all user roles.

Core.Security.AuthorityManager is an existing component which will manage the non- EHBs login.

Dependencies:

• Orhp.DataAccess

Page Request Is Internal User

Load Roles For User From DB

Display Error Page

Display Page

Yes

No

No

Display Login Page

Login Successful?

Is Authenticated?

Request Login Info from EHB/AD

Authenticated?

Yes

No

Get EHB Permissions

No

Yes

Yes

Try to get Active Directory

Permissions

In Active Directory? NoYes

• Orhp.Domain

• REISys.PlatformLite.Core

• REISys.PlatformLite.Security

• REISys.PlatformLite.Services

Core.Utilities.EHBServices is a component which will manage the interface to EHBs.

4.4.2 OHIT-Rural Project

HRSA.OHITRural.Common.ASPXHandlerModule

1. Intercept each request and call the Authentication and Authorization logic.

2. Call AuthorityManager to get login information.

3. If successful, call AuthorityManager again to get authorization for page.

HRSA.OHITRural.RegLoginApp.Login

• ASPX Form which performs non-EHBs logins

4.4.3 OHIT/ORHP Project

Web.Config:

1. <authAppBase> and <loginPath> tags will direct the application to use the HRSA.OHITRural.RegLoginApp.Login form for non-EHBs logins.

2. Specify the ASPXHandlerModule in the <httpModules> section.

4.4.4 Database Tables

The following tables are used for authentication and authorization:

• AC_User

• AC_ResourceID

• AC_Role_Lkup

• AC_UserProgram_Rel

• AC_Applications_Lkup

• AC_LoginAudit

• AC_ResourceRole_Rel

• AC_Resource_Type_Lkup

• AC_UserRole_Rel

• AC_SessionInfo

• AC_Applications_Lkup

• AC_UserApplication_Rel

4.5 Navigation Framework

The following sections describe the database tables and classes that make up the Navigation framework.

4.5.1 Database Tables

CORE.AC_Resource ResourceID smallint Resource varchar(200) ResourceTypeID smallint

CORE.Form_Lkup FormID smallint FormTitle varchar(100) MenuTitle varchar(100) IsRequiredforSubmission bit FormLevel varchar(50) FormName varchar(50) IsConfig bit ToolTip varchar(500)

CORE.FormGuidance_Rel FormID DataCollectionPeriodID FormGuidanceRelID SortOrder ResourceID ParentFormID // determines children. If 0, root item

// permissions for resources/URLs CORE.AC_User CORE.AC_Role_Lkup CORE.AC_UserRole_Rel CORE.AC_ResourceRole_Rel

4.5.2 Classes

The Core Project Public class CORE.CoreObjects.FormNavigationData private int formID;

private string formName;

private string formURL;

private FormStateEnum formState;

private string formTitle1;

private string formTitle2;

private string formTitle3;

private string formInstructionText;

private List< FormNavigationData> childForms;

public int FormID { get ; set ; } public string FormName { get ; set ; } public FormStateEnum FormState{ get; set; } public string FormURL { get ; set ; } public string FormTitle1 get ; set ; } public string FormTitle2 { get ; set ; } public string FormTitle3 { get ; set ; } public string FormInstructionText { get ; set ; } public List< FormNavigationData> ChildForms {get; } public AddChild(FormNavigationData childForm);

public FormNavigationData(int _formID, string _formName, string _formURL, string _formTitle1, string _formTitle2, string _formTitle3, string _formInstructionText, List< FormNavigationData>childForms);

This data object stores the navigation attributes of a single form.

CORE.CoreObjects.NavigationManager:

Create(); // Reads navigation database tables to determine which forms are accessible to the user, and in which order.

FormNavigationData GetNextForm (string currentPage, bool includeCompletedPages);

//Based on the current page, return the URL of the next page // If form is not a root form, the next form will be the form’s PARENT bool GotoNextForm(string currentPage, bool includeCompletedPages, HttpResponse response);

// Perform redirect() to the next page, as determined // by GetNextForm

System.Collections.Generic.List<FormNavigationData> GetAllForms() // returns a list of all forms

CORE.Controls.ReportWebControl: inherits from WebCustomControl Call NavigationManager to retrieve Read state from TablesForReportStatus For each table, if AuthorityManager indicates the user has authority, then creates a link to each table’s home ASPX page, to TableURL Create icon based on TablesForReportStatus

CORE.Controls. LeftCol_Tools: inherits from System.Web.UI.UserControl

Master Page:

Contains a ReportWebControl and a LeftCol_Tools control in the left hand ContentPlaceHolder.

4.6 Validation Framework

4.6.1 Client Side Validation

Client side validation will be performed by ASP.NET client controls. This form of validation will be used when the validation produces an error (rather than a warning) and it does not require comparison against data in the database. Table 1 contains a list of Validator types and their definition.

Table 1: Validator Types

Type Definition RequiredFieldValidator To require that data has been entered into a field RangeValidator For numeric values with specific ranges (i.e., percentages) RegularExpressionValidator For fields which need to match a pattern of characters CompareValidator To compare the numeric value of one field on the form with another field on the form CustomValidator Other validation which can be done on the client side

4.6.2 Server Side Validation

All validations, which produce warnings rather than errors, and all validations which require complex calculations or comparisons against stored data or data from other forms, shall be done using Server Side validation.

4.6.3 Field Level Validation

All field level validation checks for SMARTForm are stored in the database in the ValidationRulesetID field contained in the Core.Form_Section_SubSection_Item_Rel table.

Associated tables are:

1. ValidationRule_Lkup: stores all single validation rules.

2. ValidationRuleset: stores all validation rule sets that will be used in the data entry form.

3. ValidationRulesetRule_Rel: relationship table that identifies the rules for each rule set.

The SMARTForm web controls all inherit from the base class, SAICCustomControlBase, which implements the IValidator interface.

public abstract class SaicCustomControlBase : CompositeControl, IValidator

Each web control overrides the EvaluateIsValid() method, where all the validation logic are performed, including Internal check, Regular Expression check, and Required checks.

protected override bool EvaluateIsValid()

4.6.4 Cross Field Validation

Cross field validation checks for SMARTForm are configured in the validation.xml file.

Each custom element represents a single cross field validation check. SMARTForm creates CustomValidator on the form while rending the data entry form based on the configuration in the validation.xml file. The SecID and SubsecID indicate the location where the CustomValidator is going to be placed on the SMARTForm. The PartialID allows multiple IDs, delimited with a comma to be passed to the ValidationHandler to perform the validation checks.

<Custom ID="6_9" SecId="6" SubsecId="9" Name="v6_9" ErrorDisplayName="Alternate sources of revenue, other than grants, as a part of the sustainability plan - "> <PartialId>6-9-894,6-9-868</PartialId> <ErrorMessage>Please provide dollar amount if network has alternate sources of revenue, other than grants, as a part of the sustainability plan.</ErrorMessage> <ValidatorHandler>CheckReqNumIfParentAnswersYes</ValidatorHandler> </Custom>

4.7 Workflow Logic

4.7.1 OHIT-Rural Grant Processing Workflow

Figure 4 illustrates the OHIT-Rural workflow.

Figure 4: OHIT-Rural Workflow

Grantee registers with EHB for access to the OHIT-Rural system

Grantee assigns grant’s access and works on report

Does the report pass all data validation rules ?

Submit report to the Project Officer (notification is sent via email)

NO

YES

Project Officer requests changes?

Enter comments for corrections to be made and email notification of the returned report

Yes

No

Report Status: N/A GU Access : N/A EHB Status: Not Started

Report Status: Submitted GU Access : Read Only PO Access: Read Only EHB Status: Submitted By: Grantee For: PO

Report Complete

Grantee navigates to the portfolio’s other deliverables page

PO - Project Officer GU - Grantee User

Grantee user picks the returned report from EHB and works on it

Report Status: ChangeRequested GU Access : Read Only PO Access : Read Only EHB Status: Change Requested By: PO For: Grantee

Grantee clicks on Start Submission and switches to

OHIT-Rural Application

Report Status: InProgress GU Access : Read/Write EHB Status: In Progress By: Grantee For: Grantee

Grantee user enters data

4.7.2 Sequence Diagram

Figure 5 illustrates the report submission process.

Figure 5: Report Submission Process

EHB Grantee Project Officer (PO)

Action: Submit epo t Sub ss o ocess

Action: Return

Action: Submit

OHIT-Rural:

In Progress EHB Status:

In Progress

OHIT-Rural: Submitted EHB Status: Submitted

OHIT-Rural:

Change Requested

EHB Status:

Change Requested

OHIT-Rural: Submitted EHB Status: Submitted

EHB Status:

Not Started OHIT-Rural:

NULL

Action: Start

4.7.3 Report Access with EHBs

Figure 6 illustrates the workflow for determining read/write access for a grant number.

Figure 6: Workflow for Determining Read/Write Access

Start

Access = Read/ Write

Is the report status

"Working" or “Re-Working”

Access = Read

End Loop

No

Yes

Stop

Determining Read/Write Access for a Grant Number

Has the report due date passed?

No

Yes

Get reports due for that grant number

For Each Report

Yes

Is grant for current guidance year

No

No

User has EHB Edit Privilege?

Yes

Grantee user? No

Yes

4.7.4 Workflow Matrix

Table 2 describes the workflow states accessible from each current workflow state.

Table 2: Workflow States

EHBs Status Current Status Eligible Action Action Performer* New Status Not Started NULL Start GU InProgress In Progress InProgress Submit GU Submitted Submitted Submitted Return PO ChangeRequested Change Requested ChangeRequested Submit GU Submitted

* GU = Grantee User; PO = Project Officer

4.8 Comments Module

The following custom user controls have been created for each application to manage comments:

• For OHIT: HRSA.OHITRural.UserControls.Comments

• For ORHP: HRSA.OHITRural.ORHP.Shared.UserControls.Comments

4.9 Email Notification Module

Figure 7 illustrates the email notification module.

Figure 7.a: Email Notification Module

Does Service Start Time = Now?

Email ServiceAlways running on server

No The service compares the current time with the service start time set in the configuration file once every second.

Yes

Get list of all OHITRural grants that have due dates in the future or within the past

30 days.

This is returned as a list of Report objects, each Report storing all relevant information about that particular grant report.

Is EHB PD registered?

Reminder? Delinquency? Resubmission?No No

For each Report in list No

Build Email Body and Subject with notification that no PD is registered

No

Build Email Body and Subject

Yes

Send Email To Both EHB Project Director (PD) and

Project Officer

(PO)

Send Email To Project Officer

(PO)

Is this a Delinquency or Resubmission?

No Send Email To EHB Project Director (PD)

Yes

Reminders are sent at 30, 14, and 7 days before Due

Date

Delinquency Emails Are sent at 7 and 14 days past Due

Date

Resubmission Due Date is the later of original due date or 7 days after the return date. They are sent at 7 and 14 days past this new Due

Date

OHITRural Email Services 1.0

04/10/2008Fiscal Year 2008-2009

Retrieve PD Email address thru EHB EIS web services

End Process

Even though the process has stopped the Email Service continues running on the server. It will start the process again at the same time the next day

Create a data Collection Period

Pull Grants Associated to

Collection Period from GEMSODS

Gets email address, build emails based on dates

a. Notification when period opens.

b. reminder before report due date

c. after due date.

Check if weekly reminder email was sent today Sleep until Next Day

Send email

FORHP Collection Period Opening Release (Scheduled, Monthly)

Notification Service Runs Daily

Get current date

Creates a range from 30 days prior to 60 days after

Get all Grants associated with Data Collection

Period (from

Core.Grants)

Next Day

FORHP Collection Period Notification System Update

Remove Grants Not Reporting

Create Deliverables

Email Services 2.0 January 2016

Figure 8.a: Email Notification Module

4.10 OAT User Interface

4.10.1 OAT Master Page

The same master page class is used for OAT only. Each form specifies the form name and enables and disables tabs and display items depending on context, userid, and role.

4.10.2 OAT Forms

A custom ASPX page has been created for each OAT form. All forms inherit from a shared master page.

4.11 ORHP User Interface

4.11.1 ORHP Master Page

The same master page class is used for all ORHP programs. Each form specifies the form name and enables and disables tabs and display items depending on context, userid, and role.

4.11.2 ORHP Forms

For Hospital Division and OAT, each program contains its own subfolder in the ORHP project. All ORHP forms consist of a separate ASPX page which uses the same master page.

The Community Based Division programs use the SMARTForm approach and share one generic data entry form, which generates the data entry form dynamically depending on the form configuration in the database. Administrative and Project Officer Forms are common to all programs and are stored in a “Shared” directory.

4.12 PDF Form Generation

A Portable Document Format (PDF) is generated using Structured Query Language (SQL) Server Reports. The OHIT/Shared/PDF.aspx and ORHPared/PDF.aspx pages invoke the SQL Reports interface. The following files constitute the SQL Reports:

\Code\Apps\OHITRural\MAINLINE\PDFReport\ OhitPdf\

PDF.rdl BlackLung.rdl OAT.rdl RVHAP.rdl SORH.rdl SubPD_ CrossTb.rdl SubPDF_ Form.rdl SubPDF_ FormSection.rdl SubPDF_ TbCheck.rdl SubPDF_ TbCurrency.rdl SubPDF_ TbDesc.rdl SubPDF_ TbDescNum.rdl

SubPDF_ TbEcoTool.rdl SubPDF_ TbNumber.rdl SubPDF_ TbNumberNT.rdl SubPDF_ TbOrgPro.rdl SubPDF_ TbPercent.rdl SubPDF_ TbPharmacy.rdl SubPDF_ TbQuestion.rdl SubPDF_ TbResep_EEO.rdl SubPDF_ TbSinLine.rdl SubPDF_ TbSinLineN.rdl SubPDF_ TbTotMem.rdl ohitpdf.rptproj ohitpdf.rptproj.user ohitpdf.sln ohitpdf.vssscc ohit_dev.rds ohit_rural.rds ohit_testing.rds orhp_dev.rds

4.13 Roles Module

The AC_Role_Lkup table contains the following entries:

1 Project_Director 2 Grantee_User 3 Project_Officer 4 Help_Desk 5 System_Administrator 6 Bureau_User 7 Lead_Project_Officer 8 Analyst 9 Data Entry 0 Default

Modified Classes:

Core.Security.AuthorityManager

New Classes:

HRSA.OHITRural.ORHP.Shared.RoleAssignment HRSA.OHITRural.OHIT.Shared.RoleAssignment HRSA.OHITRural.ORHP.Shared.AccountSettings HRSA.OHITRural.OHIT.Shared.AccountSettings

4.14 PDF Archive Module

The PDF Archive Module was implemented in the PIMS 1.0 Release.

The following database table was created to store archive locations:

Core.PDFArchive

ReportInstanceID: bigint Path: varchar(max)

The DataCollectionPeriod table will include the following field:

PeriodStatusID: smallint

This field will be related to the following table:

Core.PeriodStatus_Lkup PeriodStatusID: smallint PeriodStatus

PeriodStatus_Lkup will contain the following entries:

1 Closed 2 Open 3 Archived

A file system structure was created to store the PDF images:

[ORHP] \ [Program] \ [Collection Period Label]\

Modified classes include:

HRSA.OHITRural.ORHP.Shared.Admin. _Default HRSA.OHITRURAL.ORHP.Shared.Grantee._Default HRSA.OHITRural.ORHP.Shared.Admin.CollectionPeriod HRSA.OHITRural.ORHP.Shared.PDF

4.15 SMARTForm Approach

The following FORHP programs are implemented using the SMARTForm approach:

• AHT

• DSDN

• Flex

• FMT

• HIT Workforce

• NDP

• PADDP

• RAED

• RBC

• RESEP

• RHCSO

• RHITND

• RHND

• ROOR

• SHCP

• TRC

4.15.1 Form Meta data

A data structure with appropriate hierarchy was created to support the structure that forms typical have (i.e., section, sub-section, and section items.) Figure 8: Form Metadata Object Model shows different parts and the associations among them.

Figure 9: Form Metadata Object Model

This structure shows that the form section is on the top of the hierarchy. The structure has a name and instruction property. The structure may have more than one sub-section. Like the form section, a sub-section also has a name and instruction property, but it may also have other properties that are related to sub-sections grouping and layout. A sub-section can have any number of control items of different types. A control item represents a control on a web form. Each control has properties for name, type, size, CSS class, label, instructions, validators, etc., and anything else that is needed to create the control.

This data model is sufficient for the form metadata, which includes the information a web form needs for sections, sub-sections, and controls.

Determining how to create controls based on the form metadata is handled next. This process must allow controls to be created and placed on web forms dynamically, and centralize the logic of form rendering and processing.

In executing this task, the SMARTForm gets the form metadata from the database Core.Form_Section_SubSection_Item_Rel table. Figure 9 illustrates this process.

Figure 10: Retrieval of Form Metadata from the PIMS Database Tables

A view called vwFormDisplayInfo in the FORHP database was created to capture all information needed for the form. The NHibernate Domain class is illustrated below and was also created to ???.

protected virtual IList<IFormSection> GetFormInfo()

// Get Form Meta data from vwFormDisplayInfo var formControls = thisForm.FormDisplayInfos.Where(f => f.DataCollectionPeriodID == _dataCollPdId);

// Build the FormSection Interface List

CustomValidators = GetCustomValidators();

return fsList;

4.15.2 Form Rendering

SMARTForm renders a form based on the structure described in the following:

Dynamic Rendering For each Section For each Subsection CustomControlCreator.datasource = Subsection.ControlItems;

CustomControlCreator.databind();

End for each End for each

SMARTForm goes through each section of a given form and its sub-sections to create every custom control as specified in the data source. Figure 10 illustrates the SMARTForm Meta Data structure. See Figures 17 and 18 for SMARTForm database diagrams.

protected virtual void DisplayForm(Control phForm) var fsList = GetFormInfo();

// Process page bookmark for each subsection // Loop through FormSections //Section - Add Instruction // Loop through SubSections // Create myFieldSet for each SubSection and add to myPlaceHolder.

// Add Custom Validators to check at least one.

// Add SubSection Instruction // Bind data for all sectionItems under the subsection.

// OR… Bind data at subsection level (for 2D tables)

Figure 11: SMARTForm Meta Data

// Section Item level binding var allControls = new SaicCompositeControl { DataSource = subsec.ControlItems };

allControls.Layout = subsec.Layout;

allControls.DataBind();

myFieldSet.Controls.Add(allControls);

// subsection level binding IList<ISubSection> mysubsec = new List<ISubSection>();

mysubsec.Add(subsec);

var allControls = new SaicCompositeControl { DataSource = mysubsec };

allControls.DataBind();

myFieldSet.Controls.Add(allControls);

protected override void OninitComplete(EventArgs e) RetrieveAllCompositeControls();

protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) BindDataToInputControls();

PageLoad();

4.15.2.1 Control-Agnostic Binding/Processing

After a web form is created, it is easy to programmatically retrieve all of the custom controls from the form and store them in a data structure that is easy to loop through. In .NET, this data structure is normally a list that stores type objects. Although a web form may contain any number of custom controls of different types, they are all from the same base type. Because the controls are designed following the Liskov Substitution Principle (LSP), all of the derived controls can be stored as their base type which provides a common interface through which the properties that the processing and binding logic needs are available – hence the control agnostic processing.

4.15.2.2 Data Binding

After all the controls are dynamically created and placed on a web form, data for each control, if any, needs to be sent to them so that the web form is ready in the latest state.

This is the data binding process. The pseudo-code for the binding process is as follows:

For each control in BaseControlList control.Value1 = ControlValue1 control.Value2 = ControlValue2 control.Value3 = ControlValue3 End for each where ControlValue1, ControlValue2 and ControlValue3 have been automatically set with data automatically retrieved from the database.

This is all the code needed to send data to each control on any form that is based on the SMARTForm design. The addition or removal of a custom control to a web form does not require any change in this logic, and requires only a modification of the form metadata in the database.

4.15.3 Form Data Saving

The Form Data controls inherit from SaicCustomControlBase and implement IDataControl save data. The process of handling form submission is just the reverse of the data binding process. Below is the pseudo-code for this process:

For each control in BaseControlList ControlValue1 = control.Value1 ControlValue2 = control.Value2 ControlValue3 = control.Value3 End for each where the values of the variables ControlValue1, ControlValue2 and ControlValue3 will be persisted to database automatically through data mapping.

4.15.3.1 Control Naming Convention

An important aspect of the SMARTForm design is the use of a naming convention for custom control IDs. This design follows the “coding by convention” design paradigm.

The centralized control rendering logic guarantees that every control is named properly and consistently. This design makes automatic form submission processing (i.e., control-agnostic processing) possible.

Another option was to use a mapping strategy through configuration files, but this option was not chosen due to evidence across the industry that excessive use of configuration files can generate an unwieldy number of files to manage and maintain, making an application unnecessarily complicated.

4.15.4 Form Validation

SMARTForm reads validation from the existing validation.xml file as follows:

• All controls implement the IValidator interface.

• Validation rules are attached to the controls in control creation process.

• Error messages are displayed through ValidationSummary control.

The following pseudo code can be used for this validation:

This code would perform the following activities:

• Implement IValidator.

• ASP.NET runs the validation.

• ASP.NET displays validation messages.

Detailed implementation in each control is as follows:

4.15.5 Server Control Development

Figure 11 depicts the class structure of the SMARTForm.

Figure 12: Class Structure of the SMARTForm

The following describe the server controls:

• SaicCustomControlBase:

o Base class of all custom controls o Inherited from CompositeControl o Implements IValidator o Defines all common properties and methods

• Data entry controls o Inherit from the base control o Implementation of validation checking

• Validation Mechanism o Internal validation check o Accepts custom validation rules o Validation mechanism tied to built-in ASP.NET validation mechanism

• Custom Control Creator:

o Composite DataBound Control o Responsible for creating custom controls o Accepts custom controls collection as its data source

Figure 13: Sample Code for Creating a Textbox Custom Control

4.16 OAT Data Extracts

This module explains the design used to generate OAT SQL Server reports. The reports reflect the legacy OAT reports except that it uses the modified new SQL Server table structures and it allows a user to either open the report in Microsoft Excel or PDF format. A report generation tool and a generalized report class were developed to generate the reports as shown in Figure 13.

-SelectReportingPage() : string +ExecuteReport() : void

+programId : int = 0 +dataCollectionPeriodId : int = 0 +reportInstanceId : int = 0 +fundingTypeId : int = 1 +outputType : string +reportURL : string +dollarAmountPerMile : double = 0

SSReports.cs

ReportingService.cs DataExtracts

Reporting Tool

PDF/Excel Report

Figure 14: OAT Report Data Extracts

4.16.1 Report Generation Tool

OAT Reports can be accessed from the web application by the Reporting Tool link on the left hand side of the application.

The Report generation tool allows a user to select the data extract to display, Program (read only for Grantee, pre-selected with that Grantee’s Program), Funding Type (Pre-selected to All Funding Type), Report Period, and Report Type (either Excel or PDF).

When the Submit Report option is invoked, the report generation class is invoked along with setting the properties for the class.

On the Reporting Tool page, there are several dropdowns, which allow a user to customize the reports. The following subsections describe these dropdowns.

4.16.1.1 Summary Report Dropdown

The Summary Report dropdown feature allows the user to choose and view several summary report options. The value of the dropdown selection is set to the actual report file name (e.g., rdl file) in the report server. Each report calls a specific stored procedure by passing in the required input parameters (i.e., programId, fundingTypeId, and ReportPeriodID).

4.16.1.2 Program Dropdown

The Program dropdown is generated from the Core.OrganizationLkup table. The value is pre-selected and access is set to read only when any Grantee User invokes the Reporting Tool. When a Project Officer or an Administrator invokes the Reporting Tool, they have the privilege to select the organization from the dropdown.

4.16.1.3 Data Collection Period Dropdown

The Data Collection Period dropdown is generated from the Core.DataCollectionPeriod table by filtering for just the OAT program.

Table 3 shows the method/event Handler and purpose when generating the Data Collection Period for the OAT program.

Table 3: OAT Data Collection Period Dropdown

Method/Event Handler Purpose GetDataSet The lookup tables core. OrganizationLkup and core.DataCollectionPeriod are opened and bound to a dataset.

btnGenerateReport_Click The btnGenerateReport_Click method creates an instance of the report generation class SSReports and sets the class property values for reportingPageType, programId, dataCollectionPeriodId, fundingTypeId, reportInstanceId, outputType, and reportURL = "/OHITReports/" + ddlSummaryReport.SelectedValue (the selected summary report dropdown value).

After setting the property values, the Reporting Tool method ExecuteReport is invoked.

4.16.2 Report Generation Class

The Report Generation class was created to handle the generation of different OAT data extracts reports with customized parameters settings from the reporting tools page.

Table 4 shows the report generation class and descriptions.

Table 4: Report Generation Class

Report Generation Class Description Location The CORE\SSRS\SSReports.cs Tool that invoke this class OAT Reporting Tool link under Tools Section on the left hand side of the application.

Purpose Sets the properties programId, DataCollectionPeriodId, reportInstanceId, fundingTypeId, dollarAmountPerMile, outputType, and reportURL by the values passed in by the calling method. The ExecuteReport method calls the report server configurations and opens up the report either in MS Excel or PDF depending on the outputtype value set. This class will be used both by OHIT and ORHP after possible modification to include additional required properties.

4.16.3 Design of Report Generation Class

Table 5 shows the property, type, and values for the design of the report generation class.

Table 5: Design of Report Generation Class

Property Type Value programId int OrganizationID in Core.Organization_Lkup table.

This is the unique ID for a Grantee organization.

dataCollectionPeriodId int DataCollectionPeriodID in Core.DataCollectionPeriod table.

This is a unique Data Collection Period ID.

reportInstanceId int Unique representation of the Grantee in a particular data collection period.

fundingTypeId int FundingTypeID in OAT.FundingType_Lkup table.

1 Any OAT Funded 2 OAT Competitive Grant 3 OAT Congressionally Mandated 4 Non-OAT Funded outputType string EXCEL or PDF reportURL string "/ORHP_Reports/" + rdl File Name from the above table Or "/OHITReports/" + /OAT_HomeCareSavingsReport dollarAmountPerMile double This is the user input value for dollar amount per mile.

This property is only required for the Homecare Savings report.

reportingPageType HomeCareSavingsReport or ReportingTool.

Table 6 shows the method and purpose of the report generation class.

Table 6: Report Generation Class Method and Purpose

Method Purpose SelectReportingPage Values are set depending on the ReportingPageType property. For

HomeCareSavingsReport, the property values ReportPeriodID and DollarAmountPerMile are set and for the ReportingTool, ProgramID, ReportPeriodID and FundingTypeID are set.

ExecuteReport 1. ReportingService class in the location TheCore\Utilities\ is instantiated.

2. URL and Credential properties are set for the ReportingService class.

3. Depending on the outputType either the report is rendered in MS Excel or PDF format.

4.16.4 Data Extract SQL Server Files

The location of the SQL Server .rdl files are OHITRural\Mainline\DataExtracts\. The shared data source folder contains data source files (.rds) and the Reports folder contains SQL Server report files (rdl). A separate rdl file was created using the SQL Server Reporting Tool for each report. The layout and data are set for the reports.

Additional information on report building can be located in the SQL Server reporting tutorial.

Table 7 shows the report name, the name of the rdl file in the report server, and the SQL Stored Procedure name.

Table 7: OAT Reports

Summary Report RDL File Name SQL Stored Procedure Total and Type of Programs per Period

OAT_TotalAndTypeOfProgra mPerPeriod

RPT_OAT_TotalTypeOfProgramPer Period

Total and Type of Sites per Period

OAT_TotalAndTypeOfSitesP erPeriod

RPT_OAT_TotalTypeOfSitesPerPeri od

Total Sites Reporting per Form OAT_TotalSitesReportingPer Form

RPT_OAT_TotalSitesReportingPerF orm

Total Programs Reporting per Form

OAT_TotalProgramsReportin gPerForm

RPT_OAT_TotalProgramsReporting PerForm

Form 1 - Encounters by Specialty

OAT_TypesOfEncountersByS pecialty

RPT_OAT_TypesOfEncountersBySp ecialty

Form 1 - Encounters in MHPSAs by Specialty

OAT_Form1InMHPSAsBySp ecialty

RPT_OAT_Form1MHPSAs_BySpeci alty

Form 1 - Encounters by Setting OAT_Form1BySetting RPT_OAT_Form1BySetting Form 1 - Encounters by Type OAT_Form1ByType RPT_OAT_Form1EncountersByTyp e Form 1 - Interactive vs. Store Forward

OAT_Form1InteractiveVsStor eForward

RPT_OAT_Form1InteractiveVsStore Forwards

Form 2 - Specialty/Service Availability

OAT_Form2 RPT_OAT_Form2

Form 2 - Specialty/Service OAT-funded Only

OAT_Form2a RPT_OAT_Form2a

Form 3 - Patient Travel Saved OAT_Form3 RPT_OAT_Form3 Form 4a - Practitioners Referring by Specialty

OAT_Form4a RPT_OAT_Form4a

Form 4b - Practitioners Referring by Referrals

OAT_Form4b RPT_OAT_Form4b

Form 5 - Supervision of Students/Trainees

OAT_Form5 RPT_OAT_Form5

Form 6 - Informal Supervision and Mentoring

OAT_Form6 RPT_OAT_Form6

Form 7a - Other Uses of System OAT_Form7a RPT_OAT_Form7a Form 7b - Clinical Vs. Other Sessions

OAT_Form7b RPT_OAT_Form7b

Form 8 - Clinical Travel OAT_Form8 RPT_OAT_Form8 Form 9 - Telehealth Consultants Continuing Participation

OAT_Form9 RPT_OAT_Form9

Form 10 - Referring Practitioners Continuing Participation

OAT_Form10 RPT_OAT_Form10

Form 11a - Homecare Savings by Program

OAT_Form11a RPT_OAT_Form11a

Form 11b - Homecare Savings by Period

OAT_Form11b RPT_OAT_Form11b

Form 14 - Patients and Diabetes by Program

OAT_Form14 RPT_OAT_Form14

4.17 Telehealth Resource Center Grant Program (TRC)

The TRC was a program that was added in Release 5.1. Figure 13 illustrates the data model for the TRC program, which is used to capture the data from TRC Data Entry Screen.

Figure 15: TRC Program Data Model

4.17.1 TRC Reports

The two reports available in the TRC program are listed in Table 8.

Table 8: TRC Program Reports

Report Name RDL File Name TRC Program Rollup Measures SummaryRpt.rdl TRC Originating Sites by State Report TRC_OriginatingSitesByState.rdl

TRC Report rendering code is as follows:

e

4.18 ORHP Reports

ORHP Reports use SMARTReports to generate reports with different types of data and charts, including the SummaryRpt, StatisticRpt, and TrendRpt for all Community Based Division (CBD) programs. State Office of Rural Health (SORH) and Flex reports are the traditional SQL Server Reporting Services (SSRS) reports. Table 9 lists the ORHP reports. See Figure 19 for the SMARTReport database diagram.

Table 9: ORHP Reports

Summary Report RDL File Name Summary Report SummaryReport.rdl Statistic Report StatisticRpt.rdl Trend Report TrendReport.rdl SORH TA Client by State Summary Report SORH_TaClientByStateSummary SORH TA Client by State Trend Report SORH_TaClientByStateTrending MHF EMS Measures Trend Report MHF_EmsMeasuresTrending Workforce Rollup Report Workforce_RollupRpt BLCP GPRA Report BlackLung_GPRARpt.rdl BLCP Summary Program Rollup Report BlackLung_SummaryRpt.rdl RHCSO Comparison Summary Report NCRSummaryReport.rdl RHCSO Comparison Trend Report NCRTrendReport.rdl

5 External Interfaces

This section describes the interfaces between the PIMS web application and its external interfaces.

5.1 Email Notifications

Depending on each stage of the PIMS Report workflow, each involved user will be notified by email. For example, when a Project Officer returns a report for changes, an email will be sent to the affected users. The Internet Information Services (IIS) SMTP server will send all emails.

5.2 EHBs UI Integration

5.2.1 Hrsa.Integration.PlatformLite

Hrsa.Integration.PlatformLite is a common component project, which is used to interface with PlatformLite. The project structure is as follows:

Hrsa.Integration.PlatformLite\Hrsa.Integration.PlatformLite Platform\

HttpModule\ HrsaHttpApplication.cs NavigationItem.cs HrsaBasePage.cs HrsaBaseMasterPage.cs

5.2.2 Platform Lite

The EHBs User Interface (UI) implemented in the PIMS 9.1 Release is based on ASP.NET’s Master to ensure a consistent look and feel. In order for Leidos to build common functionalities for all applications that integrate with the EHBs using the UI and at the same time reduce or eliminate the dependency of the grants systems on the Platform Lite, Leidos implemented the structure illustrated in Figure 15. This process is an iteration of a larger process, Integration Architecture.

Figure 16: EHBs UI Integration Architecture

The top box in the diagram above is where three fundamental classes are created to inherit from their corresponding classes in the Platform Lite’s UI implementation. These classes and their inheritance are shown in Figure 16.

Figure 17: Integration Classes

These classes are from the namespace, Hrsa.Integration.PlatformLite. All Leidos classes designed for HRSA program-wide use will have the word “Hrsa” as their prefix.

Class HrsaBaseMasterBase inherits from BaseMasterPage, which is the base class of the code-behind of the master page and it inherits from the ASP.NET’s built-in MasterPage class. The code-behind of Leidos’ master page inherits from HrsaBaseMasterBase.

This is the start of the file's text. The full file is on GovTribe.

File details come from the government source that posted it. Updated .