Freemed-YiRC: Report Generator
NOTE: This page is under construction and should be considered in DRAFT form!
NOTE: This article replaces a previous article by the same name. The original article has been renamed to Report Generator (Brainstorming)
The Freemed-YiRC Report Generator module is designed to replace the Freemed-YiRC Service Plan module, which was focused on only creating Service Plans, and was designed for one agencies requirements. After more agencies began using Freemed-YiRC, it became apparent there was a need for a more flexible system. In addition, it also became apparent the system should be used to create more than just Service Plans, since the same type of report generating functionality could be used for multiple purposes.
The Freemed-YiRC Report Generator is designed to be used for creating reports with structure that are to be used more than once. As such, it is NOT designed to be used for reports which are created one time, for one resident, and then never used again. A general purpose word processor is better suited for that purpose. The Freemed-YiRC Report Generator can be likened to a souped-up version of the old Mail Merge functionality of Word Processors where a template form is used, and then sent to one or more persons based on the contents of a mailing list. Except the Report Generator can accommodate very complex types of reports templates, which can make use of information stored in nearly any of the various Freemed-YiRC modules which store information related to residents.
The Freemed-YiRC Report Generator is designed to use Report Templates. These Templates are made up of re-usable Segments. Report Segments are desgined to be re-usable between Report Templates, so a section on, say, Resident Grades can be created once, but re-used on more than one Report Template.
- Module - In Freemed-YiRC, a module is an existing term for a specific part of the program. The Incident Report System is a module. The Clinical Casenote System is a module. Anytime major new functionality is added to the system, it's typically done in a module. The Freemed-YiRC Report Generator, as a whole, is only one module within the Freemed-YiRC system. However, it is a very large module, and, it can make use of information from other Freemed-YiRC modules (i.e., Resident Goals, Resident Grades, Resident Medications, etc...).
- Report Template - This would be somewhat synonymous with an outline. In the proposed Report Generator, a report would be a bunch of Report Segments.
- Report Segment - The Report Segment is the cornerstone of the Freemed-YiRC Report Generator. A Report Segment contains content that goes into reports. A Report Segment can be as short or as long as you wish. A Report Segment would typically be a section of a report. For example, with Service Plans, one section might relate to general demographics for a client. That could be one Report Segment. A DSM IV Axis could be one as well. Report Segments can be re-usable, meaning they can be used in multiple Report Templates.
- Draft Report - This would be the product of the creation of a report using the output of the Report Segments listed in the Report Template.
- Final Report - This would be the report as saved by a word processor. The file type could vary wildly depending upon agency preference. For instance, an agency using Microsoft Office could save their final reports as Word documents. An agency using Open Office could save it in that format, or Word, or even the new ODF (or even OOXML format). An agency could also choose to keep the final report in the same format as the draft report, HTML. In addition, an agency could choose to save the document in a secondary format which could be viewed easily on-line, such as HTML or PDF. This could then be viewed without the use of a word processor (and would curb the ability of others to edit the final document and save to their local systems, potentially causing versioning issues).
- Report Group - Because of the very flexible nature of the Freemed-YiRC Report Generator, it's possible to create many, many Report Templates. In many situations, it would be helpful to group these types of reports together. For example, an agency may have several types of Service Plan Report Templates. In order to help keep like reports together, Freemed-YiRC includes the concept of Report Groups.
- Report Timeline - A timeline in the Freemed-YiRC Report Generator is used to indicate a schedule for when reports are due. This can be extremely helpful to agencies for scheduling.
- Report Variable - A variable can be considered to be like a place holder. Let's say, for example, you want the first line of a given Report Segment to read something along the lines of: Resident Name is a AGE year-old SEX who entered the agency on DATE_OF_ENTRY. Using Report Variables, you can do just this. When the report is created, the variables are replaced with the actual values pertinent for a given client.
- Various information (demographic and otherwise) will be available through the use of Variables. What does this mean? If you are creating a report, and you need to include the resident's date of birth, you can simply insert a variable (like a placeholder) where you wish the date of birth to be shown on the report. Therefore, no extra programming will be required in order to retrieve that information from the database (however, creating new variables may require programming and/or database knowledge).
- Unlimited Number of Document Templates
- The current Freemed-YiRC V1.00 Service Plan module is hard-coded for two types of documents, Service Plans and Evals. However, under the new Report Generator, you may create as many types of documents as you wish.
- This is helpful because if a given child requires an extra, or different, report for a given county or other entity, this will not be a problem.
- Document Structure Flexibility
- In the Freemed-YiRC Report Generator, Document Templates are made up of modular Report Segments. These report segments will send the report output in HTML format. This provides for creating a structured document which can make use of HTML tables which can allow for rows/columns of data.
- The Report Segments can also include graphics/pictures to provide for a more professional look.
Structured Report Templates
At some agencies, a report may be the work of one person (i.e., a Social Worker/Case Worker/Case Manager, etc...). However, at other agencies, a report may be product of more than one persons work (i.e., floor staff, Therapists, etc... in addition to those listed previously), but with one person responsible for pulling it all together to generate a polished report. The Freemed-YiRC Report Generator is designed to accommodate, as much as possible, all of these needs.
Hence, in the Freemed-YiRC Report Generator, reports are defined by templates. These templates are composed of segments. A report segment can be nearly anything. It can be one line of static text which does not change, or it may be a huge, completely dynamic, multi-page segment based upon information relating to a child.
When a report is generated, information can be pulled together from multiple sources. The places where the pertinent information can vary, but is likely stored in a Freemed-YiRC module completely separate from the report generator. Therefore, although many people may contribute information to a report, security permissions and access are maintained. You can have many people that only contribute to one or more more pieces of the puzzle, but they may not be able to see the rest of it. For example, clinical information may come from the Freemed-YiRC Clinical CaseNote Module. As long as only clinicians/therapists are given security permissions to that module, then other staff will not have access to that information. Typically, only one person, or a very small number of people, will be generating the report as a whole. Those people will, typically, need access to that information regardless. Therefore, while many people may be contributing information to a report, access sensitive information can be controlled if necessary. This helps to conform with things like HIPAA regulations.
In addition, using these concepts, information can be added to Freemed-YiRC on an on-going basis. For example, information such as grades, medications, etc... can be entered into Freemed-YiRC in real-time, when the information is relevant, as opposed to waiting for when a report is due. This method is, in theory, more accurate and efficient. Using this method the person who generates a report does not have to spend time ferreting information from disparate files or sources. They literally press a button, and that information appears, all in one place. This is why most information in Freemed-YiRC has dates associated with it. When a report is generated, typically there is a timeline given for that report, and based on that timeline only relevant information is returned by the report segments.
The Freemed-YiRC Report Generator itself, in concept, primarily serves as a director. The majority of the work is done by the individual report segments. The Report Generator pulls the information provided by these segments together to create a draft report. That information is then presented in a format which can be read by a word processor.
Why Use An External Word Processor For Editing???
Most of the current reports in Freemed-YiRC serve simple purposes. A user may need to generate a report to complete one task or another. Then the report is likely discarded or filed for internal purposes. Reports such as Service Plans, however, will likely be sent to persons outside of a given agency, and generally need to look good as well as perform well. A web-based application, like Freemed-YiRC, is not well-suited for this task. Word processors such as Open Office and Microsoft Word, however, have been doing exactly this, for many years.
Freemed-YiRC, therefore, does what it does well... provide information. This information is then provided to a Word Processor. From that point on, the report can then be tweaked to look exactly as an agency wishes. Once that process is complete in the word processor, the document should then be saved into a standard word processor document format, and that document can then be uploaded back into Freemed-YiRC for safekeeping.
The bottom line is that while Freemed-YiRC is designed to be a single access point for the majority of data input, storage, and reporting needs, there are some things that other applications can do better. This is one instance where handing off this task of editing reports for looks is better done with another application.
The Process, Visualized
Types of Reports
This module is designed to cover multiple needs for different types of reports, with a wide range of idiosyncrasies. The Freemed-YiRC Report Generator is designed to generate reports which relate to one, and only one, resident/client. The Freemed-YiRC ContactDB Reports module is designed to give reports for multiple residents.
An example of reports this module should be able to generate are:
- Service Plans
- These are documents, typically done every 90 days based on a child's Date of Entry.
- ISP - Individualized Service Plan
- Some agencies use this to indicate the first, original, service plan... with following service plans called Quarterly Reviews, Quarterly Report, ISP Review, etc...
- Other agencies simply call every document a Service Plan or ISP.
- Evaluation - Some agencies create a second document every 90 days which is reflective upon what happened during the previous 90 days. Typically, a Service Plan is a forward-looking document, whereas the Evaluation is past-looking.
- Some agencies combine this past-looking information as part of the 90 day document.
- ISP - Individualized Service Plan
- Monthly Reports
- These are documents, typically done once a month, which may be sent to various places, which give an update as to a child's progress for a given month.
- Other types of periodic reports which can make use of a structured template
- Other types of non-periodic reports which can make use of a structured template
Module Permissions and Issues
This module will require not only standard Freemed-YiRC module permissions, but it will also require a separate, in-module, permissions system to allow control over which users can access/edit report templates.
Standard Module Permissions (DRAFT - WILL LIKELY CHANGE)
- reportgen - Access, ability to run reports (if user has permission for a given Report Template)
- reportgen_create - Ability to create Report Templates. This permission will only allow a user to create report templates and have themselves be given in-module access/edit permissions to that template. In order for a user to allow other users to access/edit those reports, the reportgen_admin permission must be given as well.
- reportgen_admin - Ability to administer the module, including in-module permissions for each Report Template
NOTE: There is no edit permission for the module as a whole. Permissions for editing reports will be given per report using the in-module per report template permissions system. NOTE: Why would you give a user the reportgen_create, but not reportgen_admin permissions? You may wish to allow certain users to be able to create reports for themselves to run and view, but they would not be allowed to allow other users to use these reports, i.e., they would not be able to spread unauthorized reports around.
Per Report Template Permissions (DRAFT - WILL LIKELY CHANGE)
These permissions are PER REPORT TEMPLATE. This means these permissions must be given to users individually for a given report template. By this method, a user could, in theory, have permission to generate a Service Plan, but not a Monthly Report (assuming those are two types of report templates for an agency). These permissions are not in any way related to the standard Freemed-YiRC Security DB. These permissions are only relevant to the Freemed-YiRC Report Generator, and are only relevant for a specific report template.
- Read-Only - This allows a user to view previously generated reports for a given report template. A user with only this permission for a given report template may only view previously generated reports, they can not generate new reports, edit them, edit the report template, etc...
- Generate Reports - This allows a user to generate reports for a given report template. This permission does not include the ability to modify the report template itself.
- Modify Template - This allows a user to modify the report template itself...
The Freemed-YiRC Report Generator is designed to create reports which will be used on a periodic basis. Therefore, it's important to consider when reports are due, when they're created, and the timeliness of information reported within them. In addition, the use of timelines enables the automatic creation of calendar events and/or e-mail alerts using the newer Freemed-YiRC Calendar system which can be used to automatically alert users (via the FMYiRC E-Mail Module) to help with scheduling.
The Freemed-YiRC Report Generator timelines are very flexible and can accommodate a wide variety of timeline types. Each timeline has three parts:
- Initial Report (Optional)
- Used to indicate if the first report of a series does not conform to Periodic Basis or if a different report template is used.
- Example: An agency would typically use a somewhat stock Service Plan template for a client at intake.
- Periodic Reports
- These would be the routine reports created during most timelines.
- Final Report (Optional)
- Used to indicate if the last report of a series uses a different report template.
- Example: A Discharge Summary type document when a client is discharged.
At all three of the above points in any given timeline the Report Template can be specified, or be made a choice (i.e., the user can choose a Report Template). This is where Report Groups comes into play. When a user is given a choice for say, Service Plans, they should only be shown Report Templates which are relevant (i.e., as opposed to say, Monthly Reports, or other types of Report Templates).
The timeline itself used for Periodic Reports are also very flexible, these options form the Periodic Basis:
- Static: Some agencies may produce reports on a static basis... i.e., reports are always due at the same time monthly, quarterly, yearly, etc...
- Dynamic: Things like Service Plans are typically variable for each client dependent upon the clients Date of Entry. In Ohio Service Plans are due every 90 days based on the clients Date of Entry.
- Dynamic (Based on Previous Report: In some situations, the next report might be due a certain amount of time after the previous report. Typically this might be the same situation as above, however, this method provides a means for getting reports done early, which could mean a somewhat variable timeline.
Report Storage and Versioning
Because of the use of an external word processor, the Freemed-YiRC report generator features utilities to store external documents. Because it's likely that a document will undergo several revisions during the drafting process, and even potentially after release (typo fixing, etc...), it is possible to upload new files for a given report, which will help aide in identifying who modified documents, and when. This also makes it possible to retrieve past versions of a document in a situation where a document may have been edited incorrectly.
More (Technical) Information
Please see the Report Generator MODULE (RPG) article for more technical information.
- PDF: A walk through for users on using the Report Generator, assumes templates already exist and are in working order.