This is an option in the Administration > Data Import > “Generic Session Import”.
This import process performs the following tasks based on the data provided:
- Create Session record if it doesn’t already exist, and attach to a known Episode
- Notes record attached to the Session if the note doesn’t already exist.
The import process then searches for an existing Episode (Case) record with an identifier that matches the “episode_key” value. If a match is not found, it then tries to match the “referral_key” value against the “ReferralId” field in the database. If found the existing record is loaded and updated to match the values provided. Otherwise, a new record is created and populated with the values provided.
With a matching Episode (Case), the Session record and Note record are created.
Where lookup tables are used, the value being imported will be checked against both the ‘Code’ and the ‘Description’ in the lookup. This makes it easier to import without converting values.
Also, ensure the leading ‘0’ are on any dates in the ‘dd-MMM-yyyy’ format (example 09-Jan-2023)
The import process requires a set of values provided as an Excel spreadsheet or CSV file:
- ClientKey (or “client_key”) – (external system generated identifier, will be stored as client custom identifier named “ClientKey” and used to link Sessions to Client, required)
- CaseKey (or “case_key”) – (Fixus Referral id eg ‘123456’, required)
- ProgramCode (or “program_code”) – (required – must match a configured generic program)
- SessionDate (or “session_date”) – (Format: “dd-MMM-yyyy”, without time value required)
- SessionStatus (or “session_status”) – must match values in Fixus lookup “Generic_{ProgramCode}_Session_Status”, usually ‘Attended’, ‘Did Not Attend’) (optional)
- SessionType (or “session_type”) – must match values in Fixus lookup “Generic_{ProgramCode}_Session_Type”, usually ‘Individual’ (may be ‘Group’ where configured, required)
- AssignedTeam (or “assigned_team”) – (name of Team in Fixus available in this Agency.optional)
- AssignedStaff (or “assigned_staff”) – (name of Team Staff member in Fixus available in this Team. optional)
- Duration (or “duration”) – must match values in Fixus lookup “Generic_{ProgramCode}_Session_Duration”, usually ‘0-30 min’, ’31-45 mins’ etc) (optional) (must be added as Dynamic field in {ProgramCode} Session_Episode)
- Modality (or “modality”) – must match values in Fixus lookup “Generic_{ProgramCode}_Session_Modality”, usually ‘Face to Face’, etc) (optional) (must be added as Dynamic field in {ProgramCode} Session_Episode)
- Venue (or “venue”) – short text description of the location of service provision (optional) (must be added as Dynamic field in {ProgramCode} Session_Episode and may match the values in lookup Generic_{programCode}_Session_Venue )
- VenueDescription (or “venue_description”) – (must be added as Dynamic field in {ProgramCode} Session_Episode)
- ClientParticipationIndicator (or “client_participation_indicator”) – (must be added as Dynamic field in {ProgramCode} Session_Episode, and may match the lookup Generic_{programCode}_Session_Participation)
- SessionFinal (or “session_final”) – value to indicate if this session is Final for reporting purposes. (must be added as Dynamic field in {ProgramCode} Session_Episode and may match lookup Generic_{programCode}_Session_Final )
- Postcode (or “postcode”) – postcode of location where service was provided (required) (must be added as Dynamic field in {ProgramCode} Session_Episode)
- ContactType (or “contact_type”) – (must be added as Dynamic field in Session_Episode and may match lookup Generic_{programCode}_Session_ContactType )
- NoteCreatedDate (or “note_created_date”) – (Format: “dd-MMM-yyyy”, optional – if not provided then the current date & time will be recorded)
- NoteDate (or “note_date”) – (Format: “dd-MMM-yyyy”, without time value optional)
- NoteAuthor (or “note_author”) – (any text, not limited to current users or team members, optional)
- NoteSubject (or “note_subject”) – text of note subject (optional?)
- NoteContent (or “note_content”) – text of note contents (required)
- NoteTags (or “note_tags”) – comma-delimited list of any tags to be added to note (optional)
- NoteDirectTime (or “note_direct_time”) – integer of any Direct time related to this note (optional)
- NoteIndirectTime (or “note_indirect_time”) – integer of any Indirect time related to this note (optional)
- NoteTravelTime (or “note_travel_time”) – integer of any Travel time related to this note (optional)
- NoteCategory (or “note_category”) – (optional text, may be added to the note category list, may match values in “{Program Code}_Category???” lookup table)
- DeliveryMode (or “note_delivery_mode”) – (optional, must match values in “DeliveryMode” lookup table if provided, for example ‘Not applicable’)
Either an Episode Key or a Referral Id can exist. If both exist, the Episode Key will be used for the lookup. A list of errors will be shown prior to import.
The first row within the datafile must contain the column header values (see attached template, or use the above list of fields)
Check the attachments to this article for a sample import file. The template may also be downloaded from the Fixus Administration > Data Imports page after selecting the Import ‘Target’ type
Validation
During Import, the data will be validated to check required/optional values, formatting (eg Dates) and any expected values. Errors will be listed showing the details of the error and the row within the source file that caused the error.
*Note: Only those records that display an error have been excluded. ALL OTHER ROWS HAVE BEEN SUCCESSFULLY IMPORTED. This is important, under certain configurations simply fixing the invalid row(s) then re-importing may re-import the successful records and cause multiple records.
To avoid the creation of multiple records when re-importing data, make sure to provide either an Episode Key or Referral Key values. These will then be used to lookup the existing record and update with the values provided. A note is created for each episode record each time the import is run.