[go: up one dir, main page]

Menu

Code Commit Log


Commit Date  
[r489] by matfanjol

+ THorSQLScript: added the HorLine read-only property to access FHorLine
+ TRestoreJob.Restore: uses a file stream and the THorSQLScript.HorExecuteFromStream method to load and execute the script to restore the database
+ TRestoreJob.Restore: uses HorLine instead of Line to log the current script line
+ TfrmDbConnect.FormCreate: fneBackup selects, by default, *.zip files, but you can choose "all files" filter as well
+ Added function THorSQLScript.HorRemoveComments(const _Statement: AnsiString ): AnsiString;
+ THorSQLScript.HorProcessStatement: uses HorRemoveComments to check for directives
- THorSQLScript.HorHandleKeyword: fixed the ktStartEnd start check
- THorSQLScript.HorHandleKeyword: fixed the ktString double usage
+ TRestoreJob.CheckIntegrity: sets search_path to fix the public schema usage
* TRestoreJob.Restore: uses 10000 steps in the progress bar
- TRestoreJob.Restore: uses $$ DollarStrings to be able to compile the functions
+ TRestoreJob.OnHorStatement: updates the progress bar according to the file position

2022-12-27 18:51:50 Tree
[r488] by matfanjol

+ TODO reminders
+ TUpdateThread: added the FRunningLongOperation member variable
+ TUpdateThread.Create: initializes FRunningLongOperation
+ added procedure TUpdateThread.ScriptStatement(Sender: TObject; Statement: TStrings; var StopExecution: Boolean): initializes FRunningLongOperation and StopExecution
+ TUpdateThread.GetStatus: uses also FRunningLongOperation to understand if a long operation is running
+ hor_backup: TNotifyDataActions: added ndaAskKeepTempFolderToManualZip
+ hor_backup: TNotifyData: added ModalResult
+ Added the following messagges:
rsQMsgTitleManualCompress
rsMsgErrorCompressingGoManual
rsTitleProvideDestinationBackupFolder
+ TExecuteBackupThread.AccessMainForm: handles ndaAskKeepTempFolderToManualZip
+ TExecuteBackupThread.Execute: if the compression fails, deletes the malformed zip file and asks if the user wants to manually compress the file. If the answer is yes, the temporary folder is opened instead of removed
+ added destructor TExecuteBackupThread.Destroy;: clears the temporary folder
+ added the Duration_BackupCompressed field to the tSettings table: How many seconds took the last backup with the compression
+ added the Duration_Backup field to the tSettings table: How many seconds took the last backup taken without the compression
+ TfrmBackup.FormClose: destroyes FThread
* TExecuteBackupThread.AccessMainForm: the btnCloseOpenFolder button is shown only when there are no errors
+ TfrmBackup: added the tmrDuration to show the duration and to estimate the missing time
+ TfrmBackup.bbtnCreateBackupClick: starts tmrDuration
+ TfrmBackup.FormClose: stops the tmrDuration
* TExecuteBackupThread.Execute: calls the ndaFinalizationWithErrors also in the case of outside exceptions
+ TExecuteBackupThread.AccessMainForm: on ndaFinalizationWithErrors and ndaFinalization stops the tmrDuration. On ndaFinalization saves the duration time
+ TfrmBackup: added FStartTime, FLastDuration, FCompress member variables
+ added class function TfrmBackup.GetLastBackupDuration(const _Compressed: boolean): integer;
+ Added procedure TfrmBackup.tmrDurationTimer(Sender: TObject);
+ Added function TfrmBackup.GetStartTime: TDateTime;
+ Added procedure TExecuteBackupThread.SaveDurationAndLastRun;
+ TExecuteBackupThread.AccessMainForm: save the last backup duration and date time
+ TfrmBackup: added the radiogroup to choose if to create the ZIP file or not. When not, the folder name is requested
+ TfrmBackup.FormCreate: sets the zip compression
+ TExecuteBackupThread.AccessMainForm: change icon when the compression has not to be done
+ TfrmBackup.btnCloseOpenFolderClick: handles the case of manual compression
+ TfrmBackup.FormCreate: sets the title of the select folder
+ TExecuteBackupThread: added the FCompress member variable
+ TExecuteBackupThread.Create: added the _Compress parameter to initialize FCompress
* Renamed TExecuteBackupThread.CreateInformationFile into TExecuteBackupThread.ChooseDestinationFolderCreateInformationFile
+ TExecuteBackupThread.AccessMainForm: commits the transaction on finish
* TfrmBackup: mmDumpStatus resizes with the window
- TUpdateThread.GetStatus: script line increased by one to show the current running line statement
* Added a workaround to avoid conversion errors from blob field to large object (sometimes, at least in my test computer, Postgresql is not able to read the entire blob field raising an error. Now those records are skipped and tried again later [till 4 trials])
+ Working on THorSQLScript to be able to run very huge script files

...yes: I'm still here, but the time is not so much...

2022-12-26 15:43:44 Tree
[r487] by matfanjol

- CONSOLE does not work to me on Linux, but only on Windows... Replaced by _HOR_CONSOLE_ and added to the compilation parameter

2021-01-16 15:35:51 Tree
[r486] by matfanjol

- Fixed compilation settings

2021-01-16 15:13:05 Tree
[r485] by matfanjol

* hor_usb_stick_medicaldata: moved TSaveThread inside the new hor_export_medicaldata as TExportMedicalData
* hor_export_medicaldata: renamed TKeyList into TExportKeyList
* hor_export_medicaldata: renamed TThreadError into TExportError
+ hor_export_medicaldata: added TExportProgressBarMax
+ TExportMedicalData: added fOnProgressBarStep, fOnProgressBarMax, FPath variables
+ TExportMedicalData: added OnProgressBarMax property
+ TExportMedicalData: added OnProgressBarStep property
* TExportMedicalData.PB_SetMaxSize: calls OnProgressBarMax if set
* TExportMedicalData.PB_StepIt: calls OnProgressBarStep if set
+ Added procedure TfrmUsbStick_MedicalData.ThreadProgressBarMax(Sender: TObject; const Max: integer)
+ Added procedure TfrmUsbStick_MedicalData.ThreadProgressBarStep(Sender: TObject);
+ TfrmUsbStick_MedicalData.bbtnOkClick: sets also the OnProgressBarMax and OnProgressBarStep
+ TExportMedicalData.Create: added the Path parameter
- TfrmUsbStick_MedicalData.bbtnOkClick: Fixed compilation warning
* TFrmMain: Changed the type of FilesToDeleteOnClose and of FoldersToDeleteOnClose into TStringList
- Removed TfrmMain.DeleteThisFileOnClose
- Removed TfrmMain.DeleteThisFolderOnClose
+ TDocuments: added FFilesToDeleteOnClose and FFoldersToDeleteOnClose variables
+ TDocuments.Create: added the FilesToDeleteOnClose and FoldersToDeleteOnClose parameters
+ Added TDE_Monitors_Intervals:
// Extract the available intervals of date to be used for a
// patient+measurement
+ Added TDE_Monitors_Preparation:
// Calls a function that creates a temporary table with
// the monitor data
+ Added TDE_Monitors_ColumnsCheck:
// Analize the temporary table to show the monitor data
+ Added TDE_Monitors_Data:
// The monitor data
* TfrmMonMeasurementsDrugs: qIntervals is now a local variable of TDE_Monitors_Intervals type
* TfrmMonMeasurementsDrugs: qDataPreparation is now a local variable of TDE_Monitors_Preparation type
* TfrmMonMeasurementsDrugs: qDataColumnsCheck is now a local variable of TDE_Monitors_ColumnsCheck type
+ Added constructor TfrmMonMeasurementsDrugs.Create(TheOwner: TComponent): initializes qIntervals, qDataPreparation, qDataColumnsCheck and sets qData sql from the TDE_Monitors_Data class
+ Added destructor TfrmMonMeasurementsDrugs.Destroy: destroyes qIntervals, qDataPreparation, qDataColumnsCheck
+ TExportMedicalData.Execute: added the qMonitorDataIntervals, qMonitorDataPreparation, qMonitorDataColumnsCheck, qMonitorDataData variables
* TExportMedicalData.Execute: no more access TfrmMonMeasurementsDrugs
+ Added the following messages:
rsMsgMissingMandatoryParameters
rsParExportDatabase
rsParExportDoNotResetFlagToExport
rsParExportForce
rsParExportHost
rsParExportPassword
rsParExportPatient
rsParExportPort
rsParExportUsername
rsParHelp
rsStatusConnectingToDatabase
rsStatusOk
rsStatusError
rsMsgErrorConnectingToTheDatabaseDetails
rsStatusCheckingIfExportNeeded
rsMsgNoSettingsFound
rsQMsgDidYouRunProgramOnce
rsStatusYes
rsStatusNo
rsStatusResettingExportFlag
rsStatusLookingForThePatient
rsStatusOkDetails
rsMsgPatientDetailsNotFound
rsStatusExporting
rsStatusExceptionDetails
rsMsgMissingExportPath
rsMsgLogErrorOf
rsMsgDoneWithErrors
rsStatusLongOperation
rsMsgSelectTheFileToRestoreOrTheFolderWithBackupFiles
rsQMsgAreYouSureWasFolderWithBackupFiles
+ tSettings: added the "NeedExport" field
+ TExportMedicalData.Execute: disables the Synchronize on Console compilation because it is not working neither raising errors
+ TExportMedicalData.ProblemsFilter: handles not assigned fProblems
+ TExportMedicalData.PathologiesFilter: handles not assigned fPathologies
- TDocuments.SaveAttachmentsIntoFolder: avoid to change the mouse cursor when running from console application
+ TUpdateThread.GetStatus: the line 51 of 6th script can be very long (conversion of the files into large objects). Now it reports it as a long operation.
- hor_database: DB_Update: was reporting a failed update as a success
- hor_database: DB_Connect: was reporting a failed user's data database update as a success if the default data database update was fine
+ TFrmBackup: imglImages: added a X icon in the case of failure
+ TFrmBackup: TNotifyDataActions: added ndaErrorStep and ndaFinalizationWithErrors
+ Added procedure TExecuteBackupThread.ErrorStep(const _Step: TNotifyDataSteps);
+ TExecuteBackupThread.AccessMainForm: handles ndaErrorStep and ndaFinalizationWithErrors
+ TExecuteBackupThread.CreateDatabaseDump: calls ErrorStep during an exception
+ TExecuteBackupThread.CompressFiles: calls ErrorStep during an exception
+ TExecuteBackupThread.CreateInformationFile: calls ErrorStep during an exception
+ TExecuteBackupThread.Execute: notified ndaFinalizationWithErrors in the case of errors in the latest steps
- TfrmBackup.FormCreate: no more initializes the lblDone.Caption because it is done inside TExecuteBackupThread.AccessMainForm
* TfrmdpbDatabaseUpdate: lblLongOperation uses the rsStatusLongOperation message
+ TfrmBackup: added lblLongOperation
+ TfrmBackup.FormCreate: initializes lblLongOperation
+ TExecuteBackupThread.AccessMainForm: shows/hides the lblLongOperation label
+ TfrmDbConnect: added the possibility to restore from a folder where you have manually extracted the backup files (I'm having troubles with zip/unzip around 5Gb)
* TfrmRestore.Create: renamed the _FileName into _Name
+ TfrmRestore.Create: added the _IsFileName parameter
* TfrmRestore: renamed FFile into FName
+ TfrmRestore: added FIsFile
* TRestoreJob: renamed FFile into FName
+ TRestoreJob: added FIsFile
+ TRestoreJob.Create: added FIsFile
+ TRestoreJob.UpdateForm: shows/hides the decompress according if we have a file or a directory to work with
+ TRestoreJob.Execute: if we have selected a folder, no decompress step and we don't clean up that folder

It is hard... I'm out of topic, I know, with export program, but I need it.
Then I had troubles (and I still have) with my huge db (around 5Gb of dump) where the zip/unzip don't work. Then I have created a restore from folder so you can manually zip/unzip, but now TSQLScript is not able to work because it tries to load on memory the complete script without success....
I will need to implement a new component like TSQLStreamScript to work reading, when necessary, from a file, but... other work on work...

2021-01-16 14:55:01 Tree
[r484] by matfanjol

+ "tPlaces" table: added the "Expired" field
+ Added a new TODO reminder
- TfrmEditHospitals.FormClose: fixed comments
- TfrmEditHospitals.dbeNameChange: fixed compilation warning
+ Added TfrmEditPlaces class
+ Added TfrmNavigationPlaces class
+ Added procedure TfrmMain.actPlacesListExecute(Sender: TObject);
+ Added procedure TfrmMain.actPlacesAddExecute(Sender: TObject);
+ Added the Places: you can define general indoor/outdoor places like bars, restourants, gyms, lakes
+ "tPatients": add "Pregnant_Since" field
+ Added procedure TfrmEditPersons.SetupPatientComponents: setups the visibility/settings of the components after the patient query was opened
+ TfrmEditPersons.qPatientBeforePost: if more than 9 months were elapsed since the pregnant day, asks to clear it
+ TfrmEditPersons: qDoctors: it is not filtering by category (not available yet) and it is opened by SetupPatientComponents
+ Added function FUNC_PregnantAge( const PregnantDate : TDateTime): string:
// Calculates the pregnant age strings
// i.e. '13 days'
// '2 weeks'
// 'one month, 2 weeks, 4 days'
+ Added the following messages:
rsMsgTitleDataImprovement
rsQMsgMayIclearFieldDetails
rsPregnant_TooMuchTime
rsPregnant_DayOne
rsPregnant_Days
rsPregnant_WeekOne
rsPregnant_Weeks
rsPregnant_MonthOne
rsPregnant_Months
rsDateFormat_SqlShort
rsHintWheelMouseClickOpenIt
+ Added procedure TfrmEditPersons.HideShowSexRelatedFields;
+ Added procedure TfrmEditPersons.qPatientPregnant_SinceChange(Sender: TField) to recalculate the pregnant age
+ TfrmEditPersons.dbcbSexChange: calls HideShowSexRelatedFields
+ TfrmEditPersons: added qFathers, qMothers, dsFathers, dsMothers
+ TfrmEditPersons.qDataAfterOpen: opens qFathers, qMothers
+ Patients: you can define who is the family doctor and the pregnant date
+ Persons: you can define the biological mother and father

2021-01-02 15:25:55 Tree
[r483] by matfanjol

* TframeContacts.Create: removed the _Parent parameter and changed the _Owner into _OwnerAndParent
+ Added hor_messages_windows with all the messages sent between our windows/components
+ Added procedure TfrmNavigationStandard.MsgEvents_RefreshData(var Msg: TLMessage) to refresh data on HORMSG_REFRESH message
+ TfrmEditStandard: added the FNotifyWindow variable
+ Added constructor TfrmEditStandard.Create(TheOwner: TComponent; const _NotifyChangesTo: HWND);
+ TfrmEditStandard.Save: posts the HORMSG_REFRESH message to the notify window if available
+ TfrmEditMdlStandard: added the FNotifyWindow variable
+ Added constructor TfrmEditMdlStandard.Create(TheOwner: TComponent; const _NotifyChangesTo: HWND);
+ TfrmEditMdlStandard.Save: posts the HORMSG_REFRESH message to the notify window if available
+ TfrmGenericEditContacts.Create: added the _NotifyChangesTo parameter
+ TfrmGenericNavigationContacts.qListBeforeEdit: provides the _NotifyChangesTo parameter value to be notified when the list needs to be refreshed
+ TfrmGenericNavigationContacts.qListBeforeI: provides the _NotifyChangesTo parameter value to be notified when the list needs to be refreshed
- TfrmGenericNavigationContacts.qList: Fixed the delete sql (not working due to wrong ID parameter)
- hor_navigation_allergies: added the Copyright statement
+ TfrmNavigationStandard: added FSystemField variable
+ TfrmNavigationStandard.qListAfterOpen: initializes FSystemField
+ TfrmNavigationStandard.qListBeforeDelete: stops the operation if acting on a system record
+ TfrmNavigationStandard.qListBeforeEdit: stops the operation if acting on a system record
- TfrmNavigationPathologies.qListBeforeDelete: removed. Now more necessary because it is handled inside TfrmNavigationStandard
+ TfrmNavigationPathologies.qListBeforeEdit: calls the inherited method
+ TfrmNavigationDocuments.qListBeforeDelete: calls the inherited method
+ TfrmNavigationDocuments.qListBeforeEdit: calls the inherited method
- TfrmNavigationAllergiesReactions.qListBeforeDelete: removed. Now more necessary because it is handled inside TfrmNavigationStandard
+ TfrmNavigationAllergiesReactions.qListBeforeEdit: calls the inherited method
+ TfrmNavigationCountries.qListBeforeEdit: calls the inherited method
+ TfrmNavigationPersons.qListBeforeEdit: calls the inherited method
+ TfrmNavigationMeasurements.qListBeforeEdit: calls the inherited method
+ TfrmNavigationProblems.qListBeforeEdit: calls the inherited method
+ TfrmNavigationPathologies.qListBeforeEdit: calls the inherited method
+ TfrmNavigationHospitals.qListBeforeEdit: calls the inherited method
+ TfrmNavigationExaminations_Names.qListBeforeEdit: calls the inherited method
+ TfrmNavigationExaminations.qListBeforeEdit: calls the inherited method
+ TfrmNavigationExaminations_Names_Categories.qListBeforeEdit: calls the inherited method
+ TfrmNavigationPrescriptions.qListBeforeEdit: calls the inherited method
+ TfrmNavigationHospitalsWards.qListBeforeEdit: calls the inherited method
+ TfrmNavigationDrugs_Companies.qListBeforeEdit: calls the inherited method
+ TfrmNavigationDrugs_Names.qListBeforeEdit: calls the inherited method
+ TfrmNavigationDrugs_Prescriptions.qListBeforeEdit: calls the inherited method
+ TfrmNavigationExemptionsAndMore.qListBeforeEdit: calls the inherited method
+ TfrmNavigationDrugs.qListBeforeEdit: calls the inherited method
+ TfrmNavigationDiary.qListBeforeEdit: calls the inherited method
+ TfrmNavigationHospitalizations.qListBeforeEdit: calls the inherited method
+ TfrmNavigationAllergies.qListBeforeEdit: calls the inherited method
+ TfrmNavigationExaminationsPeriodical.qListBeforeEdit: calls the inherited method
+ TfrmNavigationContactsTypes.qListBeforeEdit: calls the inherited method
+ TfrmGenericNavigationContacts.qListBeforeEdit: calls the inherited method
- TfrmEditHospitals.tsContactsEnter: moved into TfrmEditHospitals.tsContactsShow to avoid refresh problems
- TfrmEditPersons.tsContactsEnter: moved into TfrmEditPersons.tsContactsShow to avoid refresh problems
+ TfrmGenericNavigationContacts: added the FNotifyWindow variable
+ TfrmGenericNavigationContacts:Create: added the _NotifyChangesTo parameter
+ Added procedure TfrmGenericNavigationContacts.MsgEvents_RefreshData(var Msg: TLMessage ): notify to refresh the data also to the calling window
+ Added procedure TframeContacts.MsgEvents_RefreshData(var Msg: TLMessage)
+ TframeContacts.btnContactsEditClick: provides the handle to get the HORMSG_REFRESH message when the grid need to be refreshed
+ Added procedure TfrmGenericNavigationContacts.qListAfterDelete(DataSet: TDataSet): notify to refresh the data also to the calling window
+ Added the rsQMsgNoHospitalExistsCreateOne and rsMsgNoHospital messages
+ Added TfrmComboBoxHospital to select/create a hospital
+ Added function TfrmMain.SelectHospital(var ID: LongInt; var Name: string): boolean
+ TfrmEditHospitals: added the OpenedToCreateAnewHospital variable
+ TfrmEditHospitals.FormCreate: initializes OpenedToCreateAnewHospital
+ Added procedure TfrmEditHospitals.FormClose(Sender: TObject; var CloseAction: TCloseAction): hides the form when used to create a new hospital

2020-12-26 14:52:13 Tree
[r482] by matfanjol

+ hor_database: added the aContactsTypes variable
+ hor_database: DB_ClearDynamicCodeDescriptionArrays: clears also aContactsTypes
+ hor_database: added function Array_ContactsTypes: TArray;
+ hor_database: TCodeToDescr: added ctdContactsTypes
+ hor_database: DecodeCodeOrDescription: handles also ctdContactsTypes
+ hor_usb_stick_vital: TSaveThread.Execute: added qContacts
+ hor_messages_usb: added the following messages:
rsUS_Country
rsUS_Contacts
rsUS_CountryInternationPhoneCode
+ hor_messages: added the following messages:
rsTitleContactsOf
rsMsgErrorUnhandledValue
+ hor_usb_stick_vital: TSaveThread.Execute: writes the country and the contacts
+ Added hor_generic_contacts: defines the available contacts and the relative database information
+ Added the TfrmGenericEditContacts form able to edit the contacts of a Hospital, Person or Place
+ Added the TfrmGenericNavigationContacts form able to list the contacts of a Hospital, Person or Place
+ Added the TframeContacts frame able to list the contacts of a Hospital, Person or Place
+ TfrmEditPersons: added the FContactsFrame variable
+ Added TfrmEditPersons.FormDestroy to destroy, if necessary, the FContactsFrame variable
+ TfrmEditPersons.tsContacts: uses TframeContacts as content of the tab using the FContactsFrame variable
+ TfrmEditHospitals: added the FContactsFrame variable
+ Added TfrmEditHospitals.FormDestroy to destroy, if necessary, the FContactsFrame variable
+ TfrmEditHospitals: added the tsContacts tab that uses TframeContacts as content of the tab using the FContactsFrame variable
+ Added tPlacesContacts table
+ New reminders about next steps...

2020-12-25 15:27:54 Tree
[r481] by matfanjol

+ Added the missing TfrmEditPersonsContacts and TfrmNavigationPersonsContacts (sorry...)

2020-12-21 04:01:48 Tree
[r480] by matfanjol

+ hor_database: added constDB_ContactType_Web
* "tContactsTypes": Extended the "Name" field to 15 characters
+ "tContactsTypes": added the "Url" field
+ Added the rsUS_CT_Web and rsHintDoubleClickToActivateContact messages
+ hor_database: CheckContactTypes: Added the "web page" contact type
+ hor_database: CheckContactTypes: Adds and updates also the "Url" field
+ Added TfrmNavigationPersonsContacts
+ Added TfrmEditPersonsContacts
+ TfrmEditPersons: added the Contact tab with a button to open the contacts of the current person
* DB_CheckSystemData: commit pending transactions before to start
* DB_Connect: commit the transaction only when still open
+ Added the following messages:
rsMsgCheckFailed
rsUS_Height
rsUS_HeightData
- TfrmEditExaminations: Fixed compilation warnings
- TfrmEditPrescriptions: Fixed compilation warnings
- TfrmNavigationExaminations: Fixed compilation warnings
- TfrmNavigationPersons: Fixed compilation warnings
+ TSaveThread.Execute: added the height
- Removed the unused TfrmEditExemptionsAndMore.qDataAfterPost
- Removed the unused TfrmEditExemptionsAndMore.qDataAfterInsert
- TfrmEditExemptionsAndMore: Fixed compilation warnings

2020-12-20 15:27:59 Tree
Older >