Migration
Migration is the project, not a detail.
When the import covers your source system, the data comes in through the same entry point and under the same rules as someone typing on the screen, and you receive a report showing what came in.
Illustrative values. The report contains only counts, with no personal data.
The method
Four steps, in this order.
01
Measure the current database
We count what exists in today’s system, with read-only access and totals only, before importing anything.
02
Confirm with the pharmacist
Each code without a clear meaning in the previous system is given a documented destination, and the responsible pharmacist approves the mapping.
03
Test-run on a copy
The import runs on a copy of the data and ends with a count-based reconciliation report.
04
Publish with approval
The data only takes effect in the live system after the test run, with explicit, recorded approval.
What comes over
From the catalog to the inventory history.
The data goes in one row at a time, with the same validations as someone using the screen. A rejected row is counted in the report without blocking the others.
Products, categories, capsule types, shelf lives, synonyms and capsule and packaging rules
Suppliers
Lots with their parent lot, receiving records and adjustments
Stock ledger history, with pure substance
Lot assays
Lot and adjustment numbering continuing from where the previous system left off
How the data is handled
What comes in is counted; what diverges stays in plain view.
Source identity
Each imported record keeps its source table and identifier, which appear on the record and cannot be changed outside the import.
Can be run again
A new run with the same data neither duplicates nor changes anything, and a record the pharmacy deleted does not come back.
Change at the source
If a ledger entry changes in the previous system after it was imported, the new run reverses it and records the replacement, indicating which entry it replaces.
Inconsistencies in plain view
Lots with a problem at the source, such as a negative balance or expired with a balance, come in flagged as imported and not reconciled, for your team to resolve.
Confirmed meanings
The lot statuses and ambiguous fields of the previous system have their meaning confirmed in writing by the pharmacy before the import.
What is not migrated
Names of users from the previous system, the username and password for SNGPC (ANVISA’s controlled-substance reporting system), bank details and supplier contacts are not imported. The pharmacy enters this data.
