[go: up one dir, main page]

Menu

Code Commit Log


Commit Date  
[r492] by matfanjol

+ Added the "Quantity" field to the "tAgendaDrugs" table
+ Added the "SafeLife" field to the "tDocuments" table
+ Added the "SafeLife" field to the "tDocumentsFiles" table
+ "tDrugsPrescriptions": The EveryType field could be also set to N for "when necessary"
+ Added the rsUS_DRUGS_EVERY_WhenNecessary, rsDateTimeFormat_Navigation_Examinations translations
+ TfrmEditDrugs_Prescriptions.FillEvery: adds also rsUS_DRUGS_EVERY_WhenNecessary
+ Added the constDB_Every_WhenNecessary constant
+ Array_DrugsEvery: handles the "when necessary"
+ TfrmEditDrugs_Prescriptions.qDataEveryTypeChange: hides and blank the every quantity when "when necessary" is used
+ added the "tDrugsNamesConflicts" table: here you will say that, i.e, the A drug can't be taken together with the B drug because they are in conflict and you have to wait at least X hours between them
+ tContactsTypes table: extended the Name field to 20 characters
+ TfrmNavigationContactsTypes: extended the Name field to 20 characters
+ TfrmEditContacts_Types: extended the Name field to 20 characters
+ added procedure TfrmNavigationExaminations.FormCreate(Sender: TObject) to setup the date time format for the date of the examination within the list
+ TfrmEditExaminations: added the lblDayOfWeek label
+ Added procedure TfrmEditExaminations.UpdateDayOfWeek(const _Date: TDateTime);
+ TfrmEditExaminations.qDataDateChange: calls UpdateDayOfWeek to sets inside lblDayOfWeek label the day of the week of the selected date
+ Added the THorDBDateTimePicker component, derived from TDBDateTimePicker, to get the OnHorDateTimeChange event
+ TfrmEditExaminations.qDataAfterEdit: calls UpdateDayOfWeek

2022-12-30 14:58:35 Tree
[r491] by matfanjol

* Updated *.po files
- TfrmEditBase.SetColorForRequiredFieldsInside: checks that the requested field exists to avoid errors
- TfrmEditAllergies.pcData: hides the tabs names because there is only one tab
- TfrmEditAllergies.sbDTHAddClick: I really don't know why, but if the page is changed after the append, the dataset goes back to browse.... Then first I change tab, then I append.
+ New reminder

2022-12-29 17:13:08 Tree
[r490] by matfanjol

+ TfrmRestore: added the FStartTime member variable
+ TfrmRestore: added the tmrDuration timer
+ Added procedure TfrmRestore.StartTimerDuration
+ Added procedure TfrmRestore.StopTimerDuration;
+ Added procedure TfrmRestore.tmrDurationTimer(Sender: TObject);
+ TRestoreJob.UpdateForm: calls StartTimerDuration on sContinueAfterUserConfirmation
+ TRestoreSteps: added sStopTimer
+ TRestoreJob.UpdateForm: handles sStopTimer
+ TRestoreJob.Execute: asks to stop the timer of the duration when necessary
+ hor_restore: added the _ProgressBarMax_RestoringScript_ constant
* TRestoreJob.Restore: uses the _ProgressBarMax_RestoringScript_ constant
+ TfrmBackup.tmrDurationTimer: shows also the hours in the duration also if it should never happen (my 5,6 Gb backup takes 12 minutes)

2022-12-28 12:40:34 Tree
[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
Older >