Improve Your Reporting Process Performance

By Richard Paterson - Senior SAS Consultant

I would argue that the SAS platform has no rival when it comes to creating very detailed and elaborate output. The SAS Output Delivery System has a rich set of features allowing a high level of customisation and output possibilities. In the pharmaceutical industry this extensive functionality is needed with only the highest quality statistical reports being accepted by the regulatory bodies.

More functionality and possibilities can however lead to a less than optimal reporting process.  At OCS we have recently been involved in transforming the reporting capabilities for one of our customers. The complaint we are hearing often is that current process is time consuming, rigid and places a strain on costly resources. Of course some of these processes have been developed and evolved over the years and have perhaps not taken full advantage of new features available in the SAS platform.

What we are typically seeing is that a SAS programmer plays a very central role in the creation of reports. As can been seen in the diagram below – The SAS programmer is responsible for both the content and the presentation and is involved in the whole process from start to finish. This can be advantageous since one person is in control of the whole process which should ensure a high level of quality and consistency, however this does come at a cost.

Some of the disadvantages with the above approach –

  • The creation of a report is often dependent on one individual – possible bottleneck.
  • The presentation of the final report is static, if a need arises for an additional output format then the original SAS code will need to be amended and rerun. This comes at a cost, additional development time and depending on the type of processing the rerun may be very time consuming).
  • The composition of the final report is static, similar to the issue above this is often dictated by the SAS programmer. This composition can be changed if needed but again with the code will need to be amended and rerun. This rearranging of a report may need to occur multiple times when moving a draft report to a final status.
  • The skills of the SAS programmer (and this is certainly true of a statistical programmer) are not being efficiently utilised. The more time spent on presentation, the less time spend on the real core work of creating processes to produce insightful output. A programmer cannot move onto the next project until the draft report has been completed and approved.

The diagram below illustrates an alternative approach. The main aim is to utilise the time of the SAS programmer (or team) and improve the agility of the report creation process.  As can be seen in the diagram we have implemented a distinct separation between ‘Content’ (typically SAS output but could also be fed by other systems) and ‘Presentation’ (report composition and style). This separation also reduces the dependency on the SAS programmer within the overall process.



The advantages to this approach are numerous -

  • The SAS code is output independent, in other words during development the SAS programmer is not concerned with how this output will be finally presented allowing him or her to concentrate on the analysis output. Once a study output has been completed the SAS programmer can move onto creating content for a new project.
  • We can now take the same content and create multiple types of output. We do not need to re-run the code. Once submitted to the catalogue the output is available to be added to any report whatever the format.
  • The process to create a report is straightforward and can be performed by any team member, even non-technical team members. For example a medical writer can select the required content from the catalog and add this to the draft report. This process does not need the involvement of programmers.
  • The final report presentation is not determined by a programmer and can be composed of any items stored in the report catalogue. As shown in the diagram multiple reports have been created from the same catalogue. It is also possible to alter some aspects of the output before creating a report. For example in the diagram above a ‘draft report’ has been created in which the titles may have been changed to reflect the draft status. This can be done without altering or re-running the SAS code.
  • The presentation order of the content is not determined by SAS programmers, objects within the catalogue can be rearranged or even omitted according to the report requirements.


“OCS Publisher”

Composing a report by selecting content from an output catalogue and adding this to a report is handled by the SAS PROC DOCUMENT procedure. We talk about ‘replaying’ output into a document destination whether this be PDF, Word or any of the available ODS output destinations. Although the syntax of PROC DOCUMENT is relatively straightforward - you decide on an output format, open the catalogue, select the required content and replay this into document – it does require someone to write SAS code. The obvious person is the SAS programmer but then we are back to square 1 with our valuable resource being involved in the whole process! We can do better. 

At OCS we are developing a SAS Web application which will provide all the required functionality in a clean intuitive interface. This allows all team member (technical or non-technical) to create reports based on content developed by a SAS programmer. The web application (currently called OCS Publisher) provides the following functionality –

  • Login security.
  • Select a project catalogue.
  • Select the required report output or multiple outputs simultaneously.
  • Select the required content to be added to the report.
  • Select the order to display the content in the final report.
  • Amend (where applicable) content titles for example from Draft to Final.
  • Select a Table of Contents.
  • Add a predefined Cover page including company logo.
  • Select location to save report.
  • Create report.

The application is currently being developed and we hope to have a working demo available very shortly. Stay tuned. In the meantime if this article has sparked some interest please don’t hesitate to contact us. We would be more than happy to

  • Provide a health check on your current reporting process from both a functional and technical perspective.
  • Provide advice and assistance in upgrading your reporting process to use the latest SAS functionality.
  • Provide programming resource from our experienced life science and functional consultants team.