Schema changes between CareRight V7.4.2 and CareRight V7.5.0
New Tables
- admission_category_bed_reservation_specialties
- areas
- bed_reservation_specialties
- bed_reservations
- object_equipments
New Columns
- admission_categories.bed_allocation_assessment_name
- admission_categories.discharge_assessment_name
- admission_categories.intake_assessment_name
- admission_categories.is_accommodation_required
- bed_statuses.notes
- bed_statuses.user_id
- beds.current_status_id
- beds.note
- patients.cases_count
- patients.clinical_notes_count
- patients.events_count
- patients.suggested_assessments_count
- plan_elements.associated_assessment_name
- plan_elements.care_plan_id
- room_statuses.notes
- room_statuses.user_id
- rooms.area_id
- rooms.current_status_id
- rooms.note
- suggested_assessments.completion_strategy
- suggested_assessments.deadline_at
- suggested_assessments.expires_at
Changed Columns
- add_index :bed_reservations, :reserved_from
- add_index :bed_reservations, :reserved_to
- add_index :bed_statuses, :user_id
- add_index :beds, :current_status_id
- add_index :plan_elements, :care_plan_id
- add_index :room_statuses, :user_id
- add_index :rooms, :current_status_id
- change_column :care_plans, :description, :text
- change_column :care_plans, :title, :string
- change_column :plan_elements, :description, :text
- change_column :plan_elements, :frequency, :string
- change_column :plan_elements, :title, :string
- CREATE SEQUENCE guarantor_number
- CREATE SEQUENCE line_allocation_number
- CREATE SEQUENCE service_location_number
- rename_column :care_plans, :end_date, :finish_at
- rename_column :care_plans, :frequency_code, :frequency_cron
- rename_column :care_plans, :long_description, :description
- rename_column :care_plans, :review_frequency, :review_frequency_cron
- rename_column :care_plans, :short_description, :title
- rename_column :care_plans, :start_date, :start_at
- rename_column :plan_elements, :long_description, :description
- rename_column :plan_elements, :short_description, :title
- rename_column :transfers, :approved, :approved_at
- rename_column :transfers, :date, :transfer_at
- rename_table :elements, :plan_elements
- rename_table :plan_details, :care_plans
Deleted Tables
- actual_conflicts
- actual_milestones
- classifications
- contain_elements
- element_associations
- element_categories
- element_classifications
- element_milestones
- element_restrictions
- element_types
- legacy_ip_record
- fixed_times
- location_time_periods
- medicare_batch_payment_reports_old1
- time_periods
Deleted Columns
- contain_elements.milestone_no
- care_plans.after_admit
- care_plans.assessinstid
- care_plans.class_name
- care_plans.classification_no
- care_plans.close_date
- care_plans.code
- care_plans.condition_id
- care_plans.customised
- care_plans.default_staff
- care_plans.delay
- care_plans.delay_period
- care_plans.discipline
- care_plans.drg_id
- care_plans.duration_period
- care_plans.duration_time
- care_plans.element_id
- care_plans.frequency_cron
- care_plans.hide_repository
- care_plans.icd
- care_plans.is_disease
- care_plans.last_update
- care_plans.long_text
- care_plans.milestone_id
- care_plans.next_review
- care_plans.oneoff_review
- care_plans.override_reason
- care_plans.parent_id
- care_plans.pre_discharge_end_date
- care_plans.pre_discharge_start_date
- care_plans.problem_id
- care_plans.root_item_id
- care_plans.short_text
- care_plans.special_time
- care_plans.suggested_node
- care_plans.variance
- care_plans.variance_id
- contain_elements.after_admit
- contain_elements.classification_no
- contain_elements.req_milestone
- elements.adjust_req
- elements.after_admit
- elements.allow_time_adjust
- elements.assessment_id
- elements.break_page_after
- elements.break_page_before
- elements.class_name
- elements.client_type
- elements.codeclassverdate
- elements.frequency_req
- elements.instance_tag
- elements.last_update
- elements.link
- elements.location
- elements.long_text
- elements.prev_version
- elements.ref_type
- elements.short_text
- elements.special_time
- elements.stay_period
- elements.stay_time
- elements.type_id
- elements.usage
- elements.use_after_discharge
- elements.version
- f_patient.PT_AC_STATUS
- f_patient.PT_ACARE_DATE
- f_patient.PT_ACTIV_DATE
- f_patient.PT_ARC_DATE
- f_patient.PT_CHANGE_DATE
- f_patient.PT_COMP_RECORDS
- f_patient.PT_DUE_DATE
- f_patient.PT_EMAIL
- f_patient.PT_FAX
- f_patient.PT_FLAG
- f_patient.PT_FLAG1
- f_patient.PT_FLAG2
- f_patient.PT_FLAG3
- f_patient.PT_FLAG4
- f_patient.PT_FLAG5
- f_patient.PT_FUND_COVER
- f_patient.PT_FUND_MEMB_DATE
- f_patient.PT_FUND_MEMB_NO
- f_patient.PT_FUND_NOTES
- f_patient.PT_FUND_REF
- f_patient.PT_GRAV_STAT
- f_patient.PT_HARD_COPY
- f_patient.PT_INPAT_IR_NUMB
- f_patient.PT_INPAT_SL_REF
- f_patient.PT_LAB_CB
- f_patient.PT_LAB_LB
- f_patient.PT_LAB_RB
- f_patient.PT_LAB_RT
- f_patient.PT_LOCK_COUNT
- f_patient.PT_PAPER_FILE_ARCHIVE_DATE
- f_patient.PT_PAPER_FILE_STATUS
- f_patient.PT_PARITY
- f_patient.PT_REF_NUMBER
- f_patient.PT_SMS
- f_patient.PT_SPARE1
- f_patient.PT_SPARE2
- f_patient.PT_SPARE3
- f_patient.PT_SR_NOTE_NO
- f_patient.XXPT_PICT_NO
- plan_elements.code
- plan_elements.end_date
- plan_elements.start_date
CareRight 7.3.1 Changes
Receipt Numbers
We have swapped from referring to the f_counters table and the ct_rec_no field to a proper database sequence (receipt_number).
- Removed column ct_counters.ct_rec_no
- Create sequence receipt_numbers
This does not change the definition of affected columns that referenced this number. However it changed the behaviour. Importantly, where a transaction rolled back; previously this would discard any attempts to assign a new receipt number.
From this release, this will continually increment the receipt numbers even if the transaction is rolled back. This may manifest as "missing" receipt numbers; but is an expected behaviour.
existing_data = CounterSet.where(ct_number: 1).first start = 1 start = CounterSet.next_counter_value("CT_REC_NO") if existing_data # historically went into: # f_statement.stat_ref # refunds.number # receipt.number check = (Statement.maximum(:stat_ref) || 0) + 1 start = check if check > start check = (Receipt.maximum(:number) || 0) + 1 start = check if check > start check = (Refund.maximum(:number) || 0) + 1 start = check if check > start case ActiveRecord::Base.connection.adapter_name.downcase when "sqlserver" execute <<~END_OF_SQL CREATE SEQUENCE receipt_number START WITH #{start} INCREMENT BY 1 END_OF_SQL when "postgresql" execute <<~END_OF_SQL CREATE SEQUENCE receipt_number START #{start} END_OF_SQL else raise "Unhandled database type" end remove_column :f_counters, :ct_rec_no end
While this change is small and should be routine, we are recommending customers have:
- Appropriate database backups in place
- A regression test plan to validate receipt creation post deployment functions as expected.