Difference between revisions of "Updating PTS"

From TMS Support Wiki
Jump to navigation Jump to search
Line 127: Line 127:


Officially, the PTS Comms Client must version match the main PTS application and as such [[PTS_Comms_Client_Installation#Download_Links|there is a dedicated download link for each version of PTS]]. However we are often asked about the intricate details of this policy and whether it is strictly necessary. Truthfully the comms software will <i>probably</i> continue to work as it did before, especially if your update was minor. If it will save you a lot of time it's not unreasonable to test this out before committing to updating each PC. The risk of data loss is practically non-existent.
Officially, the PTS Comms Client must version match the main PTS application and as such [[PTS_Comms_Client_Installation#Download_Links|there is a dedicated download link for each version of PTS]]. However we are often asked about the intricate details of this policy and whether it is strictly necessary. Truthfully the comms software will <i>probably</i> continue to work as it did before, especially if your update was minor. If it will save you a lot of time it's not unreasonable to test this out before committing to updating each PC. The risk of data loss is practically non-existent.
=Resetting the PTS 5 Database=
Occasionally, especially as part of a go-live, pharmacy may request that the PTS database be reset, or cleared of dummy data. What they mean by this is the removal of test prescriptions but with the preservation of the application setup that is also stored in the database.
The following script will achieve this. A backup of the database is strongly advised!
<blockquote><nowiki>TRUNCATE TABLE [PatientDrugs]
TRUNCATE TABLE [Patients]
TRUNCATE TABLE [PrescriptionNotes]
TRUNCATE TABLE [Events]
TRUNCATE TABLE [PrescriptionChangeAudits]
DELETE FROM [Prescriptions]</nowiki></blockquote>

Revision as of 14:45, 9 February 2023

End-user PTS 5 software updates are not covered by a standard support contract and are something we would only consider in very specific circumstances.

We are documenting the instructions here for completeness.

Update files

The files and folders included in a PTS update.

In the event that we provide the update files, you will likely be given a link to the appropriate PTS update repository on Sharepoint. If not, we may send you a zip archive containing the update files.

In any case the relevant files and folders are:

  • Report rdls
    New or updated report template documents.
  • SSRS Update Datasource for Reports Script
    The tools for uploading the new reports to your SSRS server and registering them.
  • DatabaseUpdate.sql
    The T-SQL script to update the PTS 5 database.
  • PTS 5.x.x.x Update.zip
    The updated files for the PTS web application.
  • PTSCommsSetup64.msi
    The matching PTS Comms Client installer for this version of PTS.
  • Web.config
    The updated web.config file (may be included in the update zip file instead).

Update guide

The aim of this guide is to summarise the steps involved so that a server and/or database administrator could understand and follow them. It will not include enough detail for a novice.

Be sure to do the backups! Not only does it make good sense but you will actually use the backup files as part of the update.

  1. Login to the SQL server using SQL Management Studio and locate the PTS 5 database
    Likely to be named "pharmacyDB".
  2. TRUNCATE the ELMAH_Error table
    This table can be huge and can massively increase the backup file size.
  3. Backup the database
  4. Login to the application server and locate the PTSWeb IIS application folder
  5. Delete everything from the Contents\Labels folder
  6. Create a backup of the PTSWeb folder
    Consider omitting the Content\Sounds folder. It's not important to back this up, and it will be quite large.
  7. Open IIS and locate the application pool that is handling the PTS 5 application and stop it
    The downtime starts now.
  8. Copy everything from the PTS 5.x.x.x Update.zip folder and drop it into the live PTSWeb directory
    You should have to confirm overwrites; make sure you do so.
  9. Copy the new web.config file and drop it into the live PTSWeb directory
    You should have to confirm an overwrite.
  10. Locate the old copy of the web.config file in the backup directory and open it in Notepad
  11. Locate the <connectionStrings> section and copy it to your clipboard
  12. Locate the new web.config file in the live directory and open it in Notepad
  13. Locate the <connectionStrings> section and paste the copy of the old <connectionStrings> section from your clipboard
    This process is to replace the placeholder connection strings from the PTS update with the working connection strings from your existing installation. Make sure you replace the entire <connectionStrings> section cleanly.
  14. Back on the database server, carefully execute the DatabaseUpdate.sql script against the PTS database
  15. Monitor the output window for errors and deal with them
    For example older versions of PTS 5 allowed the same username to be assigned to multiple users. This behaviour was eventually changed, but the script cannot apply the fix while duplicates still exist in the table. Monitor the output window for any affected records and change the username of one of them using an UPDATE script on the AspNetUsers table.
  16. Having fixed any issues, execute the update script again and monitor the output window for further errors
    Repeat this process until the script completes with no errors (warnings are expected and can be ignored). The script is failsafe and can be executed repeatedly without issue.
  17. Restart the application pool
  18. Test that you can login to the application and that it reports the new version number
  19. Have your contact in pharmacy test the application (not including reports) and sign off on the update
    If pharmacy report no issues they can resume using the system normally at this point.
  20. Now is a good opportunity to implement the Database Maintenance Script as part of a SQL maintenance plan, or at least index the database

Updating reports

An example of the ReportSync application in use.
Unblocking a file. This prevents SmartScreen from interfering.
Determining the data source location. Click on it here to also reveal the data source name.
  1. Login to the SSRS server
    You can identify the name of your SSRS server via the "URL of SQL Reports Server" setting in Application Settings in PTS. It may be the very same server as PTS itself, or the database.
  2. Copy the "Report rdls" and "SSRS Update Datasource for Reports Script" folders to the server. If the folders are zipped up be sure to unzip them
  3. Run ReportSync.exe
  4. Under "Destination SSRS web service", connect to the web service using the URL, User and Password settings that are currently being used by PTS
    You can glean this information from Application Settings within PTS; do a search for "report" to see all pertinent settings. The URL setting will be equivalent to the "URL of SQL Reports Service" setting minus the "reportservice2010.asmx" part, e.g. http://ReportServerName:80/ReportServer. It's also important to prefix the username with the domain/server name; you can find out the correct domain via the "SSRS Reports Service Domain" setting.
  5. Click Load; you should see PTS's live report folders loaded in the right hand pane
    Note you don't have to use the left hand pane ("Source SSRS web service") for anything, we will be using the Local Path option.
  6. At the bottom of the window, under Local Path, click the ellipses button (...)
  7. Navigate to the "Report rdls" folder
  8. Inside you will find a 2008 folder and a 2016 folder; open 2016
    The 2008 files are for legacy versions of SQL Server that are no longer officially supported by PTS.
  9. Select the Prescription folder and click OK
  10. In the right hand pane, tick the "PTS Reports" report folder
  11. Click Upload, and wait for the process to finish
  12. Repeat these steps for "PTS Activity Reports", "PTS CD Reports" and any other folders that have been made available to you
    See the next section if any folders are missing from the server.
  13. You can now close ReportSync
  14. In File Explorer navigate back to the "SSRS Update Datasource for Reports Script" folder and locate the UpdatePTSReports.bat file
  15. Right-click it and click Properties
  16. At the bottom of the General tab, if you see an Unblock tickbox, tick it and then click Apply and OK
  17. Repeat this for RS.exe and RS.exe.config
    If you don't do this, Windows SmartScreen may prevent you from proceeding.
  18. Right-click UpdatePTSReports.bat and click Edit
  19. At the top of the script you will see several variables being "set" with placeholder values, amend these to the correct values for your environment
    • As before, the reportfolder, activityreportfolder and cdreportfolder settings can be found in Application Settings in PTS. Do a search for "report" to see the pertinent settings.
    • The SSRSURL setting will be equivalent to the "URL of SQL Reports Service" setting minus the "reportservice2010.asmx" part, e.g. http://ReportServerName:80/ReportServer.
    • To determine the two data source settings, copy and paste the "SSRSURL" setting value into a web browser and you should see a list of virtual folders. The data source location will be listed there; make a note of it before clicking on it to reveal the data source name.
  20. Save the changes and close Notepad, then execute the .bat file
    It's important NOT to run this file as an administrator. Doing so will make it unable to find the files based on their relative paths. The output from the batch file will make it clear if it is working correctly or not.

If a report folder is missing from the server (e.g. PTS CD Reports)

The Reporting Services Configuration Manager.
The SSRS Web Portal. You will need to go here to implement a new report folder.

If the update includes a whole brand new report category, you won't see it in the right-hand pane and therefore won't be able to upload the new reports to it. To remedy this you simply need to create a new subfolder on the SSRS server. Depending on the version of PTS you're updating from you may already have this issue with the PTS CD Reports folder, which were introduced in PTS v5.0.0.57.

  1. Login to PTS as an administrator and go to Setup > Application Settings
  2. Search for "report"
  3. Find the new report folder reference via its "SSRS Subfolder containing..." setting
    e.g. "SSRS Subfolder containing PTS CD Register Reports".
  4. Either note the pre-defined folder name (recommended) or give it a new sensible name
  5. Login to the SSRS server
  6. Open the Reporting Services Configuration Manager application
  7. Click on the Web Portal URL tab
  8. Click on the link to the web portal or copy and paste it into a web browser
    The Reporting Services Configuration Manager is known to sometimes fail to connect to the report server. If you can't connect, you may have luck guessing the web portal URL as it often takes the format http://ReportServerName:80/Reports
  9. If you are prompted to log in, use the same User and Password details found in Application Settings
  10. Click the New button at the top right of the screen
  11. Choose Folder
  12. Enter the name that corresponds to the setting you established earlier
  13. Click Create
  14. Return to the updating reports section and retry ReportSync; it should now find the new report folder/s

Updating the PTS Comms Client

Follow the instructions on the PTS Comms Client Installation to update PTS Comms to the version that corresponds to your new PTS installation.

Officially, the PTS Comms Client must version match the main PTS application and as such there is a dedicated download link for each version of PTS. However we are often asked about the intricate details of this policy and whether it is strictly necessary. Truthfully the comms software will probably continue to work as it did before, especially if your update was minor. If it will save you a lot of time it's not unreasonable to test this out before committing to updating each PC. The risk of data loss is practically non-existent.

Resetting the PTS 5 Database

Occasionally, especially as part of a go-live, pharmacy may request that the PTS database be reset, or cleared of dummy data. What they mean by this is the removal of test prescriptions but with the preservation of the application setup that is also stored in the database.

The following script will achieve this. A backup of the database is strongly advised!

TRUNCATE TABLE [PatientDrugs] TRUNCATE TABLE [Patients] TRUNCATE TABLE [PrescriptionNotes] TRUNCATE TABLE [Events] TRUNCATE TABLE [PrescriptionChangeAudits] DELETE FROM [Prescriptions]