Many hospitals and healthcare organizations that implement the Dual Code learning environment need to migrate learning records from their legacy LMS or in some cases, from spreadsheets that they've manually managed. The learning records can easily be imported into the Dual Code learning environment by uploading a CSV (comma separated value) file.
To upload learning records:
- Go to Site Administration > Courses > Upload learning records
Either drag and drop the CSV file or click the 'Choose a file' button and select the file in the file picker
Select appropriate import options carefully, then click the preview button.
- If you are happy with the results of the preview, you can proceed by clicking on the "Upload Learning Records" button. Otherwise, you may click on the "Cancel" button and adjust your CSV file accordingly.
Sample File
The text file to upload learning records must be a CSV file. Here is an example of a simple valid upload file:
actor,verb,object,timestamp,expires,finalgrade
jdoe,completed,WHMIS,2016-06-28,2017-06-28,90
jsmith,completed,WHMIS,2015-04-21,2016-04-21,100
jsmith,completed,Accessibility,2015-04-21,,85
jsmith,completed,Privacy,2017-07-21T15:19:21+00:00,2018-07-21T15:19:21+00:00,85
jsmith,completed,Privacy,2017-07-21T17:22:45+00:00,2018-07-21T17:22:45+00:00,95
Assumptions
There are a few rules that need to be respected in order for the data migration to work:
- By default, the encoding of the CSV file must be in UTF-8. The import wizard allows you to specify a different encoding scheme but we recommend that you use the UTF-8 encoding, especially if you are using French or international characters, but you cannot upload a Microsoft Excel (.xls or .xlsx file). The file must have a .csv extension.
- The first row in the CSV file must contain the name of the columns to be imported, These are:
- actor
- verb
- object
- timestamp
- expires
- finalgrade
- The next rows in the CSV file will contain the learning record information that needs to be imported in the learning environment (one row per learning record).
- The actor must be the user's username as it exists in the learning environment. It's important to note that the username must exist. If it doesn't, you must first create the user.
- The verb must be "completed". No other verbs are supported.
- The object must be the shortname of the course as it exists in the learning environment. It's important to note that the shortname must exist. IF it doesn't you must first create the course.
- The timestamp and expires columns must be in the following ISO 8601 format: 2016-06-28T15:19:21+00:00, where:
- 2016-06-27 is the date in YYYY-MM-DD format (based on the Gregorian calendar)
- (optional) 15:19:21 is the time in hh:mm:ss format (based on the 24-hour clock system). If you omit the time, the system will log the time as 12:00 AM. If including optional time you MUST include a time offset from UTC.
- (optional) +00:00 is the time offset from the UTC (Coordinated Universal Time). For example, an organization located in Ottawa or Toronto would write -04:00. If you omit the the timezone, the system will use the system's default timezone.
- Alternatively, because Microsoft Excel automatically converts dates from YYYY-MM-DD to MM/DD/YYYY, you can now specify your dates in the MM/DD/YYYY format, if and only if you do not need to specify the time of the learning record. If you need to specify the time / timezone of the learning records when importing them, you need to continue to use the ISO 8601 format described above.
- The expires column must be present, but the value is optional. In other words, if the column is not in your CSV file, the upload will fail. But it's ok to leave the value empty for a learning record if it never expires.
- The finalgrade is a float value. Do not include a % symbol, ex: 93.75. If you do not have a finalgrade for historical data, you still need "finalgrade" in the first row of the CSV file, but you can leave the column empty for each record
Voiding Learning Records
You can void learning records in bulk by adding a "voided" column with a value of "1" to the CSV file above. In addition, you can un-void learning records by adding a "voided" column with a value of 0.
While it is possible to generate your file by hand, we recommend that you go to the Learning Records (System Level) report, find the records you want to void, and export them in a CSV file. Then, simply add the "voided" column to that exact same spreadsheet with a value of 1 for each record, and re-upload it as per the steps above.
Please note that if you want to void all learning records for a single course, we recommend following this procedure, which is much easier.
When uploading LRS voids, ensure you select 'Update the void status only' for the 'Upload mode' on the upload screen.
Sample File
The text file to void learning records must be a CSV file. Here is an example of a simple valid upload file:
actor,verb,object,timestamp,expires,finalgrade,voided
jdoe,completed,WHMIS,2016-06-28T00:00:00+00:00,2017-06-28,90,1
jsmith,completed,WHMIS,2015-04-21T00:00:00+00:00,2016-04-21,100,1
jsmith,completed,Accessibility,2015-04-21T00:00:00+00:00,,85,1
jsmith,completed,Privacy,2017-07-21T15:19:21+00:00,2018-07-21T15:19:21+00:00,85,1
jsmith,completed,Privacy,2017-07-21T17:22:45+00:00,2018-07-21T17:22:45+00:00,95,1
Please note the full UTC timestamp is required for voiding LRS records.