PigSMART *-PC issue #-PDA issue Version 5.13 New Features * Modified sp_AddEvent() to validate incoming events according to the event_codes_allowed table. This will prevent the situation whereby a Pig2Gilt could be recorded and synced for the same Animal on two different PDAs. (Ticket #452) (revision 14562) *#Modified all Forms that have the "Status" lable visible to rearrange their Controls such that they fit within their parent Panels without scrolling. (Ticket #492) (revision 14567) *#The Mate Form no longer defaults the Server to the currently logged-in Operator. This allows the Server to be scanned, as per Ticket #479. (Ticket #495) (revision 14568) *#Implemented the RETURN event. This involved the following changes: - The Breeding Management report now shows RETURNs as "(status) RET". - Two new configuration settings are available, for specifying when a warning should be displayed when recording a RETURN: the number of days since the Mate that would be considered "too soon" (which defaults to 17), and the number of days since the Mate that would be considered "too late" (which defaults to 25). - The database upgrade process now: - Renames any existing RETURN event to RETURN_OLD. - Adds the RETURN TYPES Validation_Codes records, with values "Regular" and "Irregular". - Adds RETURN to the PDA's Gestation menu (if one exists, and enough room is available). (Ticket #499) Bug Fixes *#Fixed the situation whereby entering a Farrowing litter weight, but not entering any Piglet weights, causes the litter weight to be set to 0 when the "Verify Litter Weight After Farrowing Sow" configuration setting is turned off. It also fixes a similar situation with the wean weight for a Wean/Part Wean. (Ticket #491) (revision 14563) *#Fixed the inability to record multiple events for the same Animal on the same Form since the last sync. (Ticket #496) (revision 14564) The number of events that have been recorded so far -- per Animal, per Form, since the last sync -- is now shown as an additional column on each Form's "List" page. (Ticket #496) (revision 14565) Version 5.12 New Features *#Navigation on the Farrow form now skips the second "page" if the Farm tags Piglets individually and there are no fields visible on that "page". (Ticket #474) (revision 14511) * The utility applications (the database manager, the database connection manager, and the sync service manager) no longer require administrative permissions to run. (Ticket #481) (revision 14529 - 14530, 14535 - 14536) *#Drop-down lists that are populated from the Validation_Codes table now display the val_desc. The val_code is still stored in the database. (Ticket #479) (revision 14537, 14540) *#Drop-down lists that are populated from the Validation_Codes table can now have their values scanned by Scanners. The barcode data matches against values stored in Validation_codes.val_code. End-users should print their barcodes using a symbology that isn't already being used by their other barcodes, and configure it via the Config form -> Scanners tab -> (select the Scanner) -> "Configure barcode-type-to-ID-type mappings". (For example, if Visual IDs are already using Code128, then end-users should select a symbology for their Validation_Codes besides Code128.) The symbologies that are supported by PigSMART are listed on that same form. (Ticket #479) (revision 14544 - 14545, 14552) *#Drop-down lists that are populated from the Validation_Codes table now have auto-complete support. End-users can start typing an item from the list, and PigSMART will automatically select the first matching item. (Ticket #479) (revision 14547, 14550) # The Config form now only shows the "Configure barcode-type-to-ID-type mappings" button when the user selects a Scanner in the list box. Additionally, the button is now only enabled if the selected Scanner supports identifying barcode encodings (because if it doesn't, the mappings would not be used anyway). (revision 14541) * The Breeding Management, Sow Card, and Sire Performance reports now support BATCH IDs recorded with Mate events, in addition to the BOAR IDs that they already supported. In the case of the first two, this meant adding additional "Batch" columns. (Ticket #484) (revision 14555, 14557) *#Updated the copyright dates. (Ticket #488) (revision 14556) # The Setup application now has Distribution selections for the Motorola MC75A and Nautiz X4. (revision 14558) Bug Fixes * Fixed "file not found"-related errors that occur after syncing the virtual PDA. (revision 14516) *#Fixed the generic/custom event form's field values not being re-loaded when editing a previously-recorded event. (revision 14538) # Fixed the Config form's Scanners tab not updating properly if the user configures a Scanner and changes the type of IDs that it scans. (revision 14541) *#Fixed the status label causing scrollbars to appear on the Farrow Piglets form. (Ticket #485) (revision 14553) * Fixed a DATEFIRST error when running any statistic when PigSMART is configured with the first day of the week as Sunday. (revision 14554) Version 5.11 New Features *#Upgraded to Essi35 version 3.5.84. Please see the changelog.txt for Essi35, for more info on what's new in this version. (Ticket #480) (revision 14453) Bug Fixes *#Improved performance of the "Removing processed events from local database" part of the sync process. (revision 14482) Version 5.10 New Features *#The Mate form now populates the Server combo box with the currently logged-in Operator. (Ticket #364) (revision 14435) *#Data entry fields on all forms can now be configured as being "required". Generic/custom events can be configured via the Event configuration form, and all other events can be configured via the Screens configuration form -- both in the Workstation app. (Ticket #465) (revision 14436 - 14437, 14439) *#Data entry fields for generic/custom events can now have default values specified, via the Event configuration form in the Workstation app. (Ticket #465) (revision 14438) Bug Fixes *#Fixed values not being "saved" when the user responds "Yes" to a "Save the ___ for the next ___?" prompt. (Ticket #469) (revision 14434) * Fixed Screens configuration form incorrectly defaulting the selected Screens's Visible to "Y". (revision 14440) # Fixed the data entry area on all forms being shrunk on devices with screen resolutions greater than 240x320. (revision 14443) Version 5.9 New Features *#Sped up the sync a bit, particularly if a large volume of Events has been recorded since the last sync, but PigSMART has not been restarted since the user closed the last data entry Form. (revision 14304) *#Sped up the sync a bit, by not optimizing the "user data" database after building it, since -- by and large -- it requires more time to optimize the file and _then_ sync it, than it does to just send the un-optimized file. (revision 14312) *#Added the capability for end-users to delete incomplete Weans and PartWeans from a PDA, which basically: 1) completes the incomplete Wean/PartWean, and 2) deletes all Events that were recorded since the Wean/PartWean was started (which most likely compose just those Events that are related to the Wean/PartWean) (Ticket #391) (revision 14314) *#Altered some verbage on the "Incomplete Farrows" form to make it more consistent with similar verbage on the "Incomplete Weans" form. (Ticket #391) (revision 14315) *#Added the capability for end-users to delete incomplete Fosters from a PDA. (Ticket #391) (revision 14316) *#Modified the Farrow form such it no longer prompts to update, or even updates, the Sow's litter weight to match the tagged Piglets' weight, if the user did not actually tag any Piglets. (Ticket #437) (revision 14318) #Modified the database upgrade process to "split" some of the Screens records that are used by multiple controls on the Farrow Piglets form. (Ticket #409) (revision 14326 14361) *#Added a "List" page and a status label to the Farrow Piglets and Wean Piglets forms, and enabled all Animals list controls' columns to be dynamically customizable via the Screens table. (Ticket #380) (revision 14328) *#Modified many internal locations to make resetting Controls (that is, giving them a default value) much more consistently-implemented, including supporting default values specified via the Screens table. (Ticket #442) (revision 14329 14340) *#Improved performance when PigSMART is doing internal look-ups for Piglets by nurse Dam and birth parity. (revision 14331) *#Modified the sync process to prevent newer versions of the PDA app from syncing against older versions of the server database, and to simplify error message output on the (virtual) PDA for end users. (Ticket #436) (revision 14335 14339) *#Modified the sync process to prevent older versions of the PDA app from syncing against newer versions of the server database. (Ticket #436) (revision 14336) *#Modified several Forms to 1) add a "List" page with an Animals list control, and 2) persist that Animals list control to the database. (Ticket #444) (revision 14343) *#Improved sync performance when deleting the synced events from the PDA database. (revision 14343) *#Added Screens table records for each of the columns in the Animals lists on the Farrow form, Mate form, and Wean form, which means that end users can now configure those columns' captions. (Ticket #444) (revision 14356) *#Added support for editing previously-recorded events, to all forms that have a "List" page (which, as of this writing, is every form except the ones for manually adding Boars, Sows, or Piglets to the system). (Ticket #445) (revision 14408) *#For Farms that foster Piglets individually, the weight is now stored as an event result when fostering Piglets. (Ticket #454) (revision 14411) *#Added a new configuration setting to the Workstation app's Configuration form (Home -> Tools -> Configure Farm defaults -> (select a Farm) -> Settings tab -> Miscellaneous section) to determine whether PDA users can enter new items in drop-down lists. It defaults to being enabled, so that PigSMART continues to behave like previous versions, for those Farms that do not need to change it. *#Modified all locations that open a form to use the same title bar text for the Form as the menu button that opened it. (Ticket #374) (revision 14413) *#Reduced memory usage when switching between the Foster Piglet forms. (revision 14413) *#Upgraded to Essi35 version 3.5.83. Please see the changelog.txt for Essi35, for more info on what's new in this version. (Ticket #466) (revision 14419) Bug Fixes *#Added change tracking for the physical and virtual PDA databases, which fixes the issue whereby if a deleted incomplete Farrow, Weaned, or PartWean is the only change made in a (virtual) PDA database, that change will not sync, and the incomplete event will come back down to the PDA in the next sync. (Ticket #391) (revision 14310) *#Fixed a bug when deleting the PDA database that could result in incomplete resource cleanup in some circumstances. (revision 14311) *#Fixed asterisks still getting added to the main text box on the Sync form (thus, making it look like the form is still syncing) if the user opts to _not_ continue the sync when prompted. (revision 14313) *#Fixed the Farrow Piglets form's sex and weight not being copied from the "Live" page to the "Dead" page when the user clicks or taps the Dead button on the "Live" page. (Ticket #409) (revision 14319) *#Fixed the Farrow Piglets form's weight not being copied from the "Dead" page to the "Live" page when the user clicks Cancel on the "Dead" page. (Ticket #409) (revision 14319) *#Fixed an InvalidCastException that occurs when looking up a Piglet or a Boar on the Farrow and Mate forms. (revision 14325) *#Fixed an UnexpectedTypeException that occurs when looking up a Piglet or a Boar on the Farrow and Wean forms. (revision 14325) *#Fixed the litter and wean weights not updating in the Farrow form's and Wean form's Animals list controls when their Piglets forms close, and the user opts to update the litter/wean weight to match the total weight of the Piglets. (prompted by Ticket #444) (revision 14351) *#Fixed incorrect Piglet counts being shown in the Animals list, and in the success message, when the user reconciles a Weaned/PartWean. (prompted by Ticket #444) (revision 14352) *#Fixed PigSMART crashing after the user closes a Form (that has a Status message label visible) while a success message is being displayed. (prompted by Ticket #444) (revision 14355) *Fixed NFDEATH Piglets not displaying in the "Prewean Piglets" section of the Mortality Report. This involved adding the PWDEATH event, which should now be used for recording pre-wean Piglet deaths instead of NFDEATH, which should be used only for recording weaned Piglet deaths. The database upgrade process will automatically: 1) Configure the validation for PWDEATH and NFDEATH accordingly 2) Convert all existing NFDEATHs (where the Piglet was not weaned before the NFDEATH) to a PWDEATH, so that previously-recorded NFDEATHs will display on the Mortality Report 3) Copy NFDEATH's Event_Results for use with PWDEATH, thereby negating the need to configure event results for PWDEATH 4) Change the "Farrowing" menu's NFDEATH menu item to record PWDEATHs (Ticket #451) (revision 14414 14415) Version 5.8 New Features * Duplicate ReTag events (that is, a ReTag that tries to re-tag the Animal to the tags that it already has) are now silently ignored. (Ticket #412) (revision 14276) * The database upgrade process now searches for all Animals whose status_code is out-of-sync with their event status history, and re-generates their event status history, which should bring the two back in sync. (revisions 14286, 14297) *#Modified the Mate form to separate the Batch field into distinct Batch and Boar ID fields. (Ticket #363) (revision 14290) *#Modified the Mate form, and infrastructure all the way down, to ensure that 1) group numbers are selected correctly at form startup, 2) the group number is automatically updated if the user changes the date, and 3) if the user overrides the automatically-selected group number, the system prompts the user for whether they're sure they want to use that group number, and it flows all the way through the system to the Breedings record. (revisions 14292, 14294) *#The New Piglet form's Date of Birth field is now required. This prevents sync errors due to Animals.date_entered_system being non-NULLable. (revision 14296) Bug Fixes * Fixed Piglet RF IDs and Visual IDs being overwritten with Sow RF IDs and Visual IDs, for Events that contain both sets of IDs (such as StorPiglet, i.e. Piglets added via a Farrowing), on the Manage PDA Database form. (revision 14282) * Foster Ons now _only_ set Sow_Parity.weaned_date to NULL if the Foster On is dated for after the Sow's most recent Weaned event. This fixes those Sows' event status history being re-generated incorrectly, which fixes validation errors that are related to the incorrect status history. Affected Sows are automatically corrected as part of the database upgrade process. (revisions 14283 - 14284) *#Fixed a minor memory leak that occurs after syncing but before the next log in (without exiting PigSMART). (revision 14285) * Fixed the "NOT TAGGED" event result not appearing for Farrowing events when a Farrowing is reconciled with an untagged Piglet quantity specified. (revision 14293) * Fixed Piglets that are manually added to the system, via the New Piglet form (and thus, the NFPIGLET event), ending up with 'P' status instead of 'W'. Affected Piglets are automatically corrected as part of the database upgrade process. (Ticket #262) (revision 14295) Version 5.7 New Features * The installer now removes PigSMARTVirtualPDAUser.sdf on installation and uninstallation, if for some reason it's there, perhaps due to the user interrupting a virtual PDA session, and then upgrading or uninstalling. (revision 14267) Bug Fixes * Fixed the "Access to the path 'C:\Program Files (x86)\PigSMART\PigSMARTVirtualPDAUser.sdf' is denied" error when closing the virtual PDA. (Ticket #424) (revision 14266) Version 5.6 New Features *#Increased the PDA database transfer chunk size to 1MB. This reduces sync time. (Ticket #396) (revision 14223, 14225) *#The sync process now outputs much fewer status update messages, and uses a progress bar for progress updates. In the case of the PDA app, this meant adding a progress bar to the PDA Sync form. (Ticket #396) (revision 14228) # Modified the Sync form to add labels for displaying the number of events saved since the last sync, and the last successful sync time. (Ticket #396) (revision 14229) *#Modified the sync process to extract user data (i.e. events and temporary records) into a separate database for syncing, instead of syncing the entire database. This dramatically reduces sync time. (Ticket #395) (revision 14230, 14251) # Added the PDA Tools form, which has functionality for repairing and deleting the database, as well as upgrading PigSMART. Subsequently removed the upgrade functionality from the Config form. (Ticket #180) (revision 14232 - 14233, 14260) *#Removed all hard-coded validation logic from the PDA app that was already (or could be) enforced by the event_codes_allowed table. This also involved modifying the build process to no longer include the event_codes_allowed.sql populate script, which prevents event_codes_allowed from being cleared and re-populated as part of every version upgrade, thereby allowing different farms to have different event_codes_allowed records (and thus different validation) that is applicable only to them (such as allowing NFDEATH on unweaned Piglets for PIC). (Ticket #416) (revision 14239 - 14240) * Reduced the sync time by improving the performance of the Sow_Parity_View. (revision 14244) * Changed the UI and behavior on the Manage PDA Database Events form for saving deleted Events to a .csv file: 1) The "Save deleted Events to .csv file" check box is now checked by default. 2) The .csv file is no longer deleted and re-created every time the user deletes Events. This has the effect of appending Events to the .csv file if the user deletes Events several times from the same .sdf file. 3) The success MessageBox that is displayed after deleting EventsInterfaceEvents now includes the .csv path+filename that the Events were saved to. 4) No longer prompting the user for the .csv path+filename when checking the "Save deleted Events to .csv file" check box, instead moving that prompt into the new "Browse" button. If the user does not click the "Browse" button to choose the .csv file name to save to, then the form defaults to the path+filename of the .sdf file, but with a .csv extension instead. (Ticket #419) (revision 14248) *#Auto-weaning now always behaves according to the Configuration, with no confirmation prompt. (Ticket #417) (revision 14253) *#Upgraded to Essi35 version 3.5.80. Please see its changelog.txt for more info about what's new in this version. (Ticket #422) (revision 14259) Bug Fixes *#Fixed the situation whereby a user could start a Farrowing, then start and finish a Wean or Part Wean, and then be unable to complete the Farrow (and vice versa). (revision 14234) # Fixed the Sync form erroneously saying that there are X number of EventsInterfaceEvents saved since the last sync, even after the user uses the Tools form to delete the database. (Ticket #180) *#Fixed a NullReferenceException occurring on MateForm when the user does not select an AI Type (which would definitely be the case for Farms that do not enter AI Type, and thus have hidden it). (revision 14237) *#Fixed users being able to queuing Weaned Piglets for fostering (and the subsequent seemingly-unrelated error message when they try to process those queued fosterings). (revision 14238) * Fixed display oddities on the Manage PDA Database Events form. (Ticket #419) (revision 14241, 14248) * Fixed errors that could occur if using the Manage PDA Database Events form to save deleted Events to a .csv file, if it was done multiple times, and the form was closed and re-opened each time. (revision 14246) * Fixed Events being saved to the wrong .csv file if the user changes .sdf files while they have the Manage PDA Database Events form open. (Ticket #419) (revision 14249) *#Fixed "Argument does not contain an RF ID or a Visual ID (with a value) in its Parameters." on the Manage PDA Database Events form when working with a PDA database that contains a reconciled Farrowing. (Ticket #420) (revision 14250) Version 5.5 New Features * Added a form for selecting and deleting events in a (virtual) PDA database. This form is accessible via Home -> Tools -> Process PDA database, via the "Manage Animal Events before processing" button. (Ticket #358) (revision 14213 - 14214) * The Workstation app no longer automatically loads the Home form's "Current Events" list on startup. Instead, a new Refresh button is available, so that the user can load "Current Events" on-demand. (Ticket #414) (revision 14215) Version 5.4 New Features -Rolled back the changes from Ticket #256, due to complexities and issues arising from generated animal_keys, particularly when Pig2Gilt or Pig2Boar Events are recorded on PDAs. (revision 14189) Bug Fixes -Modified sp_AddEvent() so that 1) it no longer overwrites the input @event_dt_tm_in, and 2) that it passes it through to any other stored procedures that it calls. This fixes errors occurring in those stored procedures when PigSMART is configured to use a 1000-day calendar, because sp_AddEvent() was converting it, overwriting it, and passing it through, when the other stored procedures were expecting it to still be a 1000-day calendar date. (Ticket #398) (revision 14172) -Fixed the confirmation message box always being displayed when applying a REMOVE event to weaned Piglets. (revision 14188) Version 5.3 New Features *#Modified many of the stored procedures that are used when syncing a PDA to accept animal_key parameters, and modified the PDA to specify animal_key parameters instead of rf_id, visual_id, and alt_visual_id parameters. This improves performance while syncing, due to 1) the stored procedures not having to map rf_id and visual_id parameters to animal_keys, and 2) not requiring the additional storage in the PDA database for the additional parameters, thereby making the PDA database smaller. Subsequently modified the sync service to allow stored procedure parameters to not be specified by the PDA (like rf_id, visual_id, and alt_visual_id), and modified all of those same stored procedures such that they now pass that animal_key along to the stored procedures that they call. (Ticket #256) (revision 14151) * Modified the installer to specify dependencies for the sync service. (Ticket #392) (revision 14161) *#Upgraded to Setup version 1.11. (prompted by Ticket #392) (revision 14162) *#Added a new configuration setting for specifying whether Piglets should be auto-weaned on Farms that do not wean Piglets individually. When turned off, and weaning a Sow of more than 0 Piglets, the user will now be prompted for whether the Piglets should be auto-weaned. This setting defaults to being turned on, for backwards compatibility. (Ticket #397) (revision 14164) * Modified an error message in virtual PDA, such that the instructions for resolving it reflect the current UI design. (revision 14165) Bug Fixes * Fixed the inability to delete a Farrowing on the Workstation app's Sow form, when PigSMART is configured to use a 1000-day calendar. (revision 14146) * Fixed usp_RunStatistics.sql: if you run a statistics report for a week range then the start of the week would not always line up with the start of the week in the calendary interval table. (revision 14147) * Fixed sp_StorePigletInfo.sql: ensure default values. (revision 14148) * Fixed some Piglet birth weights not appearing on the Litter Report. (Ticket #381) (revision 14152) * Fixed the warning message about the Desktop Experience component not being installed when the user installs the Workstation Role on Windows Server 2016. (prompted by Ticket #392) (revision 14163) Version 5.2 New Features *#The error message that is displayed when the user attempts to record a status-changing event, for a date-and-time that is before the Animal's most recent status-changing event, now includes times (when PigSMART is configured to use a 1000-day calendar). This provides more troubleshooting information if the user is back-dating a status-changing event to the same day as the Animal's previous status-changing event, and the only difference between the two dates-and-times is the time. (revision 14135) *#Added specific error messages for PigToGilt and PigToBoar that indicate if the Animal is _already_ a Gilt (or a Sow) or a Boar, respectively. (revision 14139) *#RF IDs, when required, are additionally required to be at least 5 alphanumeric characters in length. (revision 14140) Bug Fixes *#Fixed many remaining instances where PigSMART does not handle 1000-day calendar dates properly. (revisions 14132 - 14134) *#Fixed an error message that could be displayed when recording a Foster Off, that was incorrectly referring to the Foster Off as a Foster On. (revision 14136) *#Fixed an incorrect error message being displayed when an RF ID is not required but determined to be invalid. (revision 14141) Version 5.1 Bug Fixes *#Fixed the inability to record a back-dated status-changing event, for the same Animal on the same day, due to times not being part of back-dated 1000-day calendar dates (and thus, previously, being assumed to be midnight). (Ticket #378) (revision 14128) Version 5.0 New Features * Added a database index that dramatically improves the performance of Historical Statistics for Average Lactation Length (and possibly others). (Ticket #339) (revision 14056) * Changed the logic for generating the mobile device installation instructions on the Home window, such that it now displays USB connection and download instructions when there are no IP addresses available (which would be the case if the workstation does not have any NICs, or they are all disabled or physically disconnected). (Ticket #336) (revision 14059) *#Added support for the new Mate PCAI pseudo-event, which is really just Mate AI, but with Breedings.pcai_services incremented instead of ai_services, based on a provided "AI TYPE" value. "AI TYPE" values that are on the "AI TYPE" drop-down codes list will cause the ai_services column to increment as usual; "AI TYPE" values that are on the "PCAI TYPE" drop-down codes list will increment the new pcai_services column. Both "AI TYPE" and "PCAI TYPE" values are selectable from the same "AI Type" combo box on the Mate AI window; the value that you select determines the column that will be incremented. (Ticket #340) (revisions 14063 14066 14067) *#Upgraded to Setup version 1.10. For more info about what's new in this version, please see the changelog.txt for Setup. (revision 14074) * "Cleared" upgrade_script.sql (that is, removed everything except for the changes that have been made since the last release). Note that this means that any users who are not currently running PigSMART 4.15 will have to upgrade to 4.15 first, and then to 5.0. (Ticket #332) (revision 14075 14345) * Added the UpgradeLog table, which will effectively log when customers upgrade to which PigSMART versions. (Ticket #332) (revision 14075) # PigSMART now takes the absolute value of the weight from the scales. This allows for PigSMART to be configured to weigh Piglets individually, yet start with all Piglets on the scale, then tare the scale before removing each Piglet from the scale (at which point the scale will send PigSMART a negative weight). (Ticket #343) (revision 14088) *#Modified the Config form to change the UI for the Piglet weighing methods for Farrowing and Weaning to add a checkbox that indicates that users tare their scale(s) before removing each Piglet. (Ticket #343) (revision 14089) * Modified the setup to replace SQL Server 2008 R2 Express with SQL Server 2014 SP2 Express. And since SQL Server 2014 SP2 Express requires at least Windows 7 or Windows 2008 R2, the Setup process now shows an additional Component on older OSes, that indicates that a newer version of Windows is required. Users that are using older versions of Windows can still install PigSMART, though, provided that they already have another version of SQL Server installed to use with PigSMART; they can simply click through the warning that a newer version of Windows is required. Future versions of PigSMART may also start to depend on newer versions of Windows, though, so it's recommended that users upgrade as soon as possible. (Ticket #354) (revisions 14102 14112 14113) * Upgraded to SetUpDatabase version 1.10. For more info about what's new in this version, please see the changelog.txt for SetupUpDatabase. (Ticket #354) (revision 14111) * The Login form now auto-fills its authentication info with that of the trial Operator, if PigSMART is itself running in trial mode (that is, licensed for x days / x uses, and not yet activated). To prevent the user from being locked out of PigSMART after activating (since the password _before_ activating is now auto-filled, meaning that the user won't know it), the Home form now displays a message box recommending that they create a different Operator and use that one instead, as well as offering to open the Config form to the Operators "tab". (Ticket #359) (revisions 14116 14120 14121) * The upgrade process will now rebuild the Event_Status table to contain only (and all) of the records that PigSMART requires, which ensures that Animal status codes are determined correctly, and Animal status histories are re-generated correctly. (prompted by ticket #377) (revision 14119) *#Upgraded to Essi35 version 3.5.78. For more info about what's new in this version, please see the changelog.txt for Essi35. (Ticket #383) (revision 14123) * Log output that goes through the old logging infrastructure is now written to the log files for the Workstation app and the sync service, and its verbosity is configurable via the corresponding .exe.config files. (revision 14124) Bug Fixes * Removed a duplicate column from the output of proc_rebreed_lag_report(). (revision 14065) * Fixed overflow errors that occur while trying to run the Gilts Awaiting Service report (and possibly other reports), when the report's SQL query returns more than 32767 records. (revision 14079) * Fixed the "Not logged in" error that occurs when submitting an issue report. (Ticket #348) (revision 14097) *#Fixes the sync failing if it that contains a Farrowing with a Piglet Death. (Ticket #377) (revision 14117) *#Fixed the inability to record a status-changing event following _another_ status-changing event, for the same Animal on the same day. (Ticket #378) (revision 14118) *#Fixed the inability to sync a Farrowing that has untagged Piglets. (Ticket #379) (revision 14122) Version 4.15 New Features * Modified the virtual PDA to check if there's an existing session that can be continued, and there is, it prompts the user for whether they'd like to continue that session, or end the previous session and begin a new one. This allows the user to work around a corrupted or missing virtual PDA database from a previous session, by starting a new session. (Ticket #317) (revision 13990) * Modified the Reports form to support location filtering for the Historical Statistics, Parity Analysis, and KPI reports. (Ticket #145) (revision 13994) * Modified usp_RunStatistics() to protects against SQL injection attacks, and to provide a minor performance boost. (Ticket #145) (revision 14007) * Modified the Home form such that double-clicking the Sows Requiring Heat Check report or the Sows Requiring Preg Check report opens them sorted by date. (Ticket #318) (revision 14008) * Miscellaneous UI modifications to the Home and Tools forms, which consisted of the following: - Replaced the Home form's Help button with the "Service Manager" button, which starts the Service Manager - Modified the Home form's Tools button to instead start the Database Manager - Renamed the Home form's menu bar's "More Tools" menu to just "Tools" - Added the "Database tools" menu item to the Home form's "Tools" menu, which opens the Tools form - Modified the Tools form to remove all of the "tabs" that indicate that functionality is no longer supported, has been moved or removed, etc. - Added the "Statistics" menu item to the Home form's "Tools" menu, which opens the Statistics form - Replaced the Home form's Statistics button with the "Event Configuration" button, which opens the Configuration form to the "Events" tab, and removed the "More configuration options" menu item from the File menu - Renamed the Configuration button to "System Configuration" - Added four new menu items to the Home form's "Tools" menu: "Configure Farm defaults", "Configure Events", "Configure drop-down lists", and "Configure virtual PDA", which open the Configuration form to the corresponding tab (Ticket #320) (revisions 14009 14025) Bug Fixes * Added the missing function ufunc_non_productive_days_per_parity(). This function was generated from the GPS database. (revisions 13992 13997) * Fixed the situation whereby some of the magnifying glass "Search" buttons on the Reports form open the Pig Search form, but the values that the user selects on that form are not transferred back to the Reports form. (revision 13995) * Fixed the "Clear" button not working for the Parity Analysis report UI on the Reports form. (revision 13996) * Fixed the inability to sync Exclude events against databases that already contained the Exclude event before it was officially supported by PigSMART. (Ticket #258) (revision 13998) Version 4.14 New Features -Upgraded to Essi35 version 3.5.73. Please see the changelog.txt for Essi35 for more info about what's new in this version. (Ticket #305) (revision 13975) -Upgraded to Setup version 1.9. Please see the changelog.txt for Setup for more info about what's new in this version. (Ticket #305) (revision 13976) -PigSMART now uses the new Mobile Device Setup.exe for downloading and installing PigSMART onto Mobile Devices, instead of ActiveSync / Windows Mobile Device Center. Instead of using the Start Menu shortcuts on the Workstation, the Workstation's Home form now includes replacement instructions for installing PigSMART onto Mobile Devices. (Note that ActiveSync / Windows Mobile Device Center is still included with, and installed by, the workstation/server Setup, for those PDAs that do not have networking hardware, and thus must still connect via USB.) Upgrading PigSMART on a Mobile Device is now done from within PigSMART itself, via a new "Upgrade" button on the "Config" form. (Ticket #305) (revision 13978) -Modified Server.OnStop() to ignore (but log) any exceptions that may happen while stopping the individual Servers. This ensures that the overall service will still stop successfully, even if exceptions occur while stopping it. (revision 13979) -Removed the Start Menu shortcuts "Install to Symbol PPT device", "Install to Trimble Nomad 900 device", and "Install to Trimble Nomad 1050 device". To install PigSMART onto a Mobile Device, follow the instructions that have been added to the Workstation's Home form instead. (Ticket #312) (revision 13981, 13983 - 13984) -Updated the copyright dates. (Ticket #313) (revision 13982) Bug Fixes -Fixed the "Process PDA database" form's "Server" and "Database" text boxes coming up blank, and the "Change" button causing an error when clicked, if a PDA has never been synced to that particular workstation (which means that the "Client databases" subdirectory hasn't been created yet). (Ticket #304) (revision 13942) -Fixed incorrectly updating the Animals table with a NULL value in status code. (revision 13956) -Fixes PDAs syncs failing silently (and thus making the user think that their data has synced, when it really hasn't) when PigSMART is licensed for Parity 1. (Ticket #309) (revision 13977) -Fixed Essi.PigSmart.Server not being able to start on computers that also have QuickBooks installed, because it was using TCP/IP port 9265, which is used by QuickBooks. Essi.PigSmart.Server now uses port 62830 instead. (revision 13980) Version 4.13 New Features *#The Mate form, custom event form, Farrow form, New Boar form, and New Sow form now "remember" any entered group numbers at the end of recording an event, similarly to location codes. (Ticket #291) (revision 13916 13917 13919 13930) *#Added the "Require Sow to have an RF ID" configuration setting. (Ticket #279) (revision 13921) *#Added support for the EXCLUDE event, which is (at its core) a custom event, but has additional specific processing for when it is validated and synced. Along with this comes a new configuration setting, which specifies how old the most recent mating is allowed to be, before it can be excluded. (Ticket #258) (revision 13928) *#Several other status-changing events now show up on the PDA's Status form. (revision 13929) * Modified upgrade_script.sql to remove a block that fixes Breedings.result_code, because it no longer applies. (revision 13939) (Ticket #293) * Modified upgrade_script.sql such that, instead of _deleting_ all Event_Results records that point to Event_Codes records that don't exist, it now creates _new_ Event_Codes for those Event_Results, and re-associates them (in addition to doing the same for Animal_Events). (revision 13939) (Ticket #293) Bug Fixes *#Fixed forms offering to "save" Location and Group Number values in text boxes that are invisible. (revision 13918 13931) *#Fixed the group number UI not properly refreshing when a custom event has a "Treatment Type" or "Apply To" custom field (which displays as a ComboBox), and the user picks "Group" from that ComboBox. (revision 13920) * Fixed OptionButtons and RadioButtons being rendered incorrectly (usually as solid black) when the Windows Aero theme is active in Windows Vista and up, and fixed the About form's controls having a very dark (instead of transparent) background color. (Ticket #168) (revision 13922) * Fixed custom group numbers being lost when upgrading to newer versions of PigSMART. (Ticket #292) (revision 13932) *#Fixed the inability to wean sows that don't have an RF ID. (Ticket #295) (revision 13933) * Modified a few stored procedures to fix a Weaned event's WEAN WEIGHT event result ending up with a value of 0.00 instead of 0. (revision 13938) Version 4.12 New Features *#A Piglet's dam_id can now be an RF ID _or_ a Visual ID. (Ticket #245) (revision 13767) *#A Sow can now be farrowed without an RF ID. (Ticket #245) (revision 13768) *#Added Animals.dam_key, which is logically similar to dam_id, except that it's the animal_key of the sow, instead of her rf_id or visual_id. (revision 13769 13783) This column is now visible in the ManualDataCorrectionUtility. (Ticket #246) (revisions 13770 13771) All internal look-ups that were using dam_id now use dam_key instead. (revision 13778) This allows performance to be slightly improved in the (virtual) PDA. (revision 13785 13786) * Modified the Current_Dam_ID view to include the new Animals.dam_key column. (revision 13784) * Modified the Piglets_View view to include the birth_dam_key and nurse_dam_key columns to complement the birth_dam_id and nurse_dam_id columns, deriving nurse_dam_key from the Current_Dam_ID view. The birth_dam_id and nurse_dam_id columns are retained for compatibility with third-party software. (revision 13784) * The Pig form in the Workstation app now requires that, if the user enters a Dam ID, it corresponds to an existing Sow. (Ticket #246) (revision 13814) * Added a report that displays invalid Dam references. (Ticket #246) (revision 13815 13816 13817) * Modified the Home form to disable the form and show the wait cursor while previewing the report. This provides better user feedback while the report is processing. (revision 13819) * Reduced duplicate code, and improved performance, in many places where a group number is being determined according to an event's date/time. (Ticket #260) (revision 13857 13861) * A new PDA database is no longer built and received when closing the virtual PDA. (Ticket #147) (revision 13866 13867) * Modified the Workstation app's Pig form to verify that the Animal will be found in the virtual PDA, before opening the virtual PDA. (Ticket #131) (revision 13870) * Modified the setup process to creates a shortcut to Setup.exe in the Start Menu, so that users can easily re-run Setup, without having to find where they originally downloaded the installation files to. (Ticket #176) (revision 13890) * Modified the setup process to install update_script.sql into the PigSMART installation folder. (Ticket #177) (revision 13902) *#Upgraded to Essi35 version 3.5.70. Please see the changelog.txt for Essi35 for more info about what's new in this version. (Ticket #288) (revision 13908) Bug Fixes * Fixed sp_AddEvent() - make sure to capture the correct event result for Euthanize events (Ticket #257) (revisions 13824 13825) * Fixed Death_Codes View - Changed to capture all the death codes. otherwise, the death code that is in the animals table will not match up with the available options in the frmPig combo box for cause of death codes and will thus be blank. (Ticket #257) (revision 13825) * Fixed historical data so that the 'Animals.cause_of_death_code' is populated based on the correct event result from a Euthanize event. (Ticket #257) (revision 13826) * Fixed a Sow's Piglets never being purged when purging a Sow. (revision 13779) * Removed some extraneous info from a message box message. (revision 13780) * Improved performance when loading the Home form. (revision 13818) * Fixed the issue whereby editing an existing event and tabbing out of the "Date" text box does not refresh the "Group Nbr" text box. (revision 13847) * Fixed values being stored in CalendarInterval.BeginDate and EndDate with 0 seconds. (revision 13859) * Fixed values being stored in CalendarInterval.EndDate with 29 seconds instead of 59 seconds. (revision 13860) Version 4.11 Bug Fixes * Modified sp_CheckSowStatus() to only allow a farrow event on Gestating Animals. (revision 13548) (Ticket #179) * Modified sp_StoreSowInfo() to: -Add transaction handling, since multiple tables are updated. -Check to make sure the animal is gestating before allowing the new sow parity. -Remove logic that creates a new animal record since it was not possible for that code to execute. (Note how earlier in the procedure it would error out if the animal key was not found.) (revision 13548) (Ticket #179) *#Fixed the situation whereby a farrowing can't be reconciled due to PigSMART determining that the reconcile is trying to happen "before" the original StoreSowInfo event (which would not be allowed, because the reconcile is an update of the previous StoreSowInfo event, and since StoreSowInfo is a status-changing event, it can't happen before the most recent status-changing event)... when in actuality the date/time for the reconcile has had a milliseconds value added onto it by PigSMART that is _less_ than the milliseconds that were added on when the StoreSowInfo was originally recorded, and thus the date/time for the reconcile turns out to be before the date/time of the original farrowing. (revision 13569) (Ticket# 186) *#Fixed the situation whereby a farrowing can't be reconciled if you sync between starting the farrowing and completing the reconcile, due to the Sow's FarrowingDate having its time component stripped after the sync, which prevents the reconcile's StoreSowInfo event from being stored, because its date/time (without a time component) then falls before the Farrow event. (revision 13572 - 13574, 13576, 13580) (Ticket #186) * Fixed the inability to sync a reconciled farrowing, where the user synced between starting the farrowing and completing the reconcile, because in that case the PDA would have created a new StoreSowInfo event record. (revision 13577 - 13578) (Ticket #186) Version 4.10 New Features -Changed the logic that determines whether the Sow's litter weight is updated to match the weight of the farrowed Piglets, including whether that update is automatic or whether the user is prompted; that logic is as follows (from the ticket): -If the the setting ("Verify the Sow's litter weight after all Piglets are processed") is turned on only prompt if the sow litterweight > 0 AND <> sum of piglet weights -If the settings is off always update the sow litter weight with the sum of the piglet weights. -If the settings is on and the sow litter weight is blank or zero, always update with the sum of the piglet weights. Dont prompt. (Ticket #163) (revision 13533) -Changed the logic that determines whether the Sow's wean weight is updated to match the weight of the weaned Piglets, including whether that update is automatic or whether the user is prompted; the logic is similar to that described above, but for weaning. (Ticket #163) (revision 13534) Bug Fixes -The database upgrade process now fixes the Animal_Events order for those Animals that have a New Animal that is not their first event (which was likely caused by the issue that was described in ticket #157 and resolved in revisions 13417 - 13420). (Ticket #173) (revision 13504) -Fixed a warning message that is displayed during installation on the Nomad 1050, which indicates that a later version of .NET is already installed. (Ticket #171) (revision 13509) -Fixed Sows' total birth weight doubling (at farrowing) when the user enters both the litter weight _and_ Piglet weights. (Ticket #163) (revision 13530) Version 4.9 New Features *#Modified weaning to support "subtractive" Piglet weighing functionality (that is, the weaning starts with all Piglets on the scale, and then the Piglets are removed and weaned one at a time), similarly to farrowing. (ticket #134) (revisions 13426 - 13432) *#Improved the sync by: 1) Speeding up the process of removing the processed events from the PDA database during a sync (which improves the overall sync time) 2) Improved user feedback during the sync 3) Preventing unneeded status messages from being sent to the PDA (which also improves the overall sync time) 4) Reducing the number of records that are required to store the additional Piglet weaning fields (which also reduces the time required to wean Piglets) (ticket #125) (revisions 13438 - 13452, 13458, 13461, 13462, 13465) *#Modified the sync process to delete the PDA database that is received if it fails integrity verification. This prevents the need to go outside of PigSMART and delete the database manually. Temporary data and unsynced events are not lost, however, because they will be sent to the PDA on the next sync. The sync also provides a more user-friendly error message if an error occurs while syncing. (ticket #144) (revisions 13453, 13456, 13457, 13459, 13460, 13463, 13464) *#Modified the Farrowing form to make "Parity" read-only. This prevents the end user from changing the parity that is used for a farrowing. (ticket #124) (revision 13466) *#All events are now recorded using a complete date and time, including the seconds. If the user does not enter a complete date and time for an event, PigSMART fills in the missing parts using the current date and time. (ticket #153) (revisions 13468 - 13471, 13475 - 13479, 13481 - 13483, 13487 - 13491, 13494 - 13495) *#Modified some date/time validation messages to be more user friendly. (revision 13493) Bug Fixes *#Fixed the issue whereby a New Animal event, followed by a Mate AI event on that same animal within the same minute, causes the New Animal to go in _after_ the Mate AI, and causes the Animal's Animal_Event_Status_History to not include the status change from Open to Gestating. (ticket #157) (revisions 13417 - 13420) *#Fixed the situation whereby farrowing more dead Piglets than the user counted in the SowParity's original "live births" total can cause the PigletDeath events to fail to sync, even when the user corrects the "live births" by reconciling at the end of the farrowing. (ticket #156) (revisions 13421 - 13425) * Fixed the issue whereby entering _both_ the Sow's "wean weight" _and_ each Piglet's "weight" during weaning causes all of those values to be added together, when it should only be one or the other. (ticket #158) (revision 13435) * Fixed the New Animal, New Boar, and New Piglet events (and their associated New Loc events) being recorded without the seconds in the date/time. (revisions 13472, 13480, 13484) Version 4.8 New Features * The .sdf filename used by the sync service can now be overridden via the configuration file if needed. (revision 13217) *#The virtual and physical PDAs, after syncing, now verify that the database that they received contains all of the proper tables, columns, and column data types that are needed by PigSMART. This is referred to as "full verification". (ticket #59) (revisions 13248, 13250, 13251, 13252, 13253) *#The virtual and physical PDAs' Config forms now provide a user interface for mapping barcode types to types of IDs (for example, mapping CODE128 barcodes to Alternate IDs). No barcode types are mapped by default. If the user scans a barcode type that is not mapped, then PigSMART interprets the barcode as the scanner's default ID type (for example, the Nomad's built-in barcode scanner scans visual IDs by default, so if there is no mapping for CODE128, then CODE128 barcodes will be scanned as Visual IDs.) (ticket #62) (revisions 13261 - 13269, 13274 - 13277) *#Added the DNA ID field to the Farrow Piglets form. (ticket #82) (revisions 13279 - 13282) *#The New Boar and New Sow forms now support scanning DNA IDs. (revision 13283) * The Workstation app's Home form now notifies the user when a new calendar needs to be generated. (ticket #102) (revisions 13284 - 13287) * Modified the Farm Diary History report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13288) * Modified the Drop Out report to support filtering by location, similarly to the Location report. (ticket #113) (revisions 13289 - 13290, 13331) * Modified the Mortality report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13291, 13334) * Modified the Sow Card report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13293) * Modified the Gilts Awaiting Service report to support filtering by location, similarly to the Location report. (ticket #113) (revisions 13294, 13296) * Modified the Sows Awaiting Service report to support filtering by location, similarly to the Location report. (ticket #113) (revisions 13297 - 13298) * Modified the Sows Requiring Heat Check report to support filtering by location, similarly to the Location report. (ticket #113) (revisions 13299, 13301, 13306, 13308) * Modified the Sows Requiring Preg Check report to support filtering by location, similarly to the Location report. (ticket #113) (revisions 13299, 13307, 13309) * Modified the Sows Due to Farrow report to support filtering by location, similarly to the Location report. (ticket #113) (revisions 13310 - 13311) * Modified the Sows Farrowed but Not Weaned report to support filtering by location, similarly to the Location report. (ticket #113) (revisions 13312 - 13313) * Modified the Breeding Management report to support filtering by current location _and_ breeding location, similarly to the Location report. (ticket #113) (revision 13314, 13317) * Added the Breeding_Location view, which can be used similarly to the Current_Animal_Location view, in that you can join a Breedings record to it to get the location_key of a Location_Codes record, which indicates the location at which the breeding occurred. (ticket #113) (revision 13316) * Modified the ReBreed Lag report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13318, 13332) * Modified the Farrowing report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13319) * Modified the Medication/Vaccination report to support filtering by current location _and _treatment location, similarly to the Location report. (ticket #113) (revision 13320, 13321) * Modified the Labor Performance report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13322) * Modified the Returns to Service report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13325, 13335) * Modified the Technician Performance report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13326, 13333) * Modified the Sire Performance report to support filtering by location, similarly to the Location report. (ticket #113) (revision 13327) * The Sow Card and Mortalities reports now allow for filtering _only_ by location. (ticket #113) (revision 13328) * Added a clickable magnifying glass PictureBox beside all Location fields on the Reports form. Each one opens frmPigSearch, which allows the user to look up a Location. (ticket #113) (revision 13329, 13338) * Modified the Litter report UI on the Reports form to indicate that the Location filter supports wildcards. (ticket #113) (revision 13336) * Modified the Animal ID List report UI on the Reports form to indicate that the Location filter supports wildcards. (ticket #113) (revision 13337) * Reset the tab order on the Reports form. (revision 13339) *#Implemented better support for the NEW BOAR event. (ticket #128) (revision 13347, 13348) * Modified the virtual PDA to sync via the sync service, just like a physical PDA. (ticket #126) (revisions 13354 - 13362) *#"ON" can now be selected for the Farrowing Time when Farrowing a Sow. (ticket #123) (revisions 13363 - 13365) * Replaced the Start Menu shortcut "Install to Pocket PC 2003+ device" with the shortcuts "Install to Symbol PPT device", "Install to Trimble Nomad 900 device", and "Install to Trimble Nomad 1050 device". (ticket #55) (revision 13369, 13372, 13410) *#Upgraded to Essi35 version 3.5.59. Among miscellaneous other bug fixes, this also fixes the long-standing bug of the "Install to" shortcuts in the Start Menu not being able to install the .NET Compact Framework onto a Nomad. (revision 13378, 13409) * The virtual PDA configuration is now stored in PigSMARTVirtualPDA.config instead of PigSMART.config. The installation process renames PigSMART.config to PigSMARTVirtualPDA.config, so that existing virtual PDA settings are not lost. (revision 13399) Bug Fixes * Fixed the inability to alternate between syncing the virtual PDA and physical PDAs, due to the Workstation and Server apps trying to work with the same .sdf file, but establishing different permissions when they re-create it. (revisions 13216, 13219, 13402) A side effect of this change is that the virtual PDA will have to be configured before it can be used, but all previous settings will be retained. * Fixed Animals.last_transaction_dt_tm and Sow_Parity.sow_parity_dt_tm not being set to the the date and time when the Farrowing event was actually recorded. (ticket #105) (revision 13292) * Fixed an oddity while tabbing through the controls for the Historical Statistics report on the Reports form. (revision 13340) * Fixed a number of statistics coming out wrong on the Historical Statistics reports (particularly those that are of Statistic Type "Weaning Performance"). (ticket #121) (revision 13344) * Fixed the results being displayed incorrectly on the Farm Diary report if displaying Litter Deaths where multiple Piglet Deaths were recorded on the same Sow in the same day. (ticket #57) (revision 13345) * Fixed the Event_Status table having an animal status of 'B' for the New Animal event. (ticket #128) (revision 13346) *#Fixed new Boars being added to the system using the NEW ANIMAL event. (ticket #128) (revision 13347, 13348) *#Fixed the configuration not properly being upgraded. (revision 13353) * Fixed euthanized animals not being accounted for on the Breeding Management report. (ticket #109) (revision 13367) * Fixed the situation whereby, if the user is Farrowing a Sow, and enters one or more born-live-but-dead Piglets that are _not_ accounted for in the original total that they entered for the Farrowing (thus triggering a reconcile when they're done entering Piglets), the reconcile sets the Sow's Deaths total to 0. (ticket #133) (revision 13373) * Fixed sp_CheckNewLocation.sql: Needed a second sort order to make sure current animal location is found when an animal is moved twice on the same day. (revision 13393) * Fixed the configuration file being upgraded incorrectly during the installation process. (revision 13398) * The installation process now removes PigSMARTVirtualPDA.sdf and PigSMARTPhysicalPDA.sdf, to prevent schema incompatibilities between versions from causing unforeseen issues. As a result, the warning that the installation process displays (that warns the user that they should sync their PDAs before installing) now also mentions syncing virtual PDAs as well. (revision 13408) * Modified a number of SQL functions to prevent division by zero. (revision 13411) Version 4.7 New Features * The installation/upgrade process now only removes the virtual PDA database on uninstallation, purely for the purpose of reclaiming disk space. Previously, it would also be removed when upgrading and repairing. (revision 13163) Bug Fixes * Fixed the issue whereby if a non-administrator Windows user starts the Workstation app, opens the virtual PDA (which creates the virtual PDA database), closes the Workstation app, starts the Workstation app again, and tries to open the virtual PDA again, it fails because it does not have permission to delete the virtual PDA database before re-creating it. (revision 13162) Version 4.6 New Features * The virtual PDA now stores its data in a SQL Server CE database on the workstation, instead of in the server database. This allows more than one workstation to use the virtual PDA at a time, without affecting the virtual PDA data that is being entered at other workstations. (Bug 27) (revisions 13129, 13130, 13131, 13132, 13133, 13134) * Modified the error message that is displayed when opening the virtual PDA when no Animal is found, such that it is more helpful to the user. (Bug 23) (revision 13136) *#The Dead, Death, and NFDeath events' Cause field now use the DEATH validation codes list, instead of the COND CAUSE validation code list. (Bug 24) (revision 13138) * Progress bars are now displayed while preparing the virtual PDA. (revisions 13142, 13143, 13144, 13145, 13146) * A progress bar is now displayed while processing events that were recorded on the virtual PDA. (revisions 13148, 13149, 13150, 13151, 13152) * The virtual PDA's *Temp tables, which are no longer used, are now removed when upgrading the database. (revision 13155) Bug Fixes * Fixed excessive "Loading" messages being displayed when opening the virtual PDA. (revision 13135) *#Fixed the Medicate and Observe events' Cause field being required to have a value entered. (Bug 24) (revision 13137) *#Fixed the application crashing when the Workstation's Home form, or the PDA's Sync form, receive a status update after they have already been closed -- which, in particular, happens on the PDA's Sync form if the user clicks the Close button during a sync. (revision 13141) * Fixed the Operator not being logged out of the virtual PDA when the user closes it. (revision 13147) *#Fixed the inability to wean Piglets that have a NULL RF ID or Visual ID. (revision 13154) Version 4.5 New Features *#PigSMART now interprets an Event Field Name of "service nbr" as being a Service Number. Previously, PigSMART would interpret an Event Field Name that contained "nbr" as being a Service Number. Thus, if the user created a custom event, with a custom field, and used a name for that field that contained "nbr", then all values entered into that field would be validated as a Service Number. And this would prevent the user from entering non-numeric values into that field, since Service Numbers have to be numeric. (Bug 19) (revision 13123) Version 4.4 New Features * Added the "NewDeadPig" event code, which works similarly to the "New Piglet" event code (which is used for recording tagged Piglets at farrowing), except it is used for recording mummies and stillborns, and mummies and stillborns are now recorded as dead. (Previously, mummies and stillborns were recorded using the "New Piglet" event code, and they were recorded as live.) Mummies and stillborns are recorded with a new event result, "BIRTH STATUS", with a value of "Mummy" or "Stillborn", as appropriate. (revisions 13081, 13082, 13083, 13084, 13085, 13086, 13087, 13092) *#The Cause of Death can now be specified when farrowing mummies or stillborns. If a Cause of Death is not specified, it defaults to "Mummy" or "Stillborn", as appropriate. The Cause of Death appears on the "NewDeadPig" event as the "CAUSE" event result. (revisions 13089, 13090, 13091) *#The configurable weight ranges now have default values. "Piglet pre-wean weight" now defaults to a maximum of 6, "Piglet foster weight" now defaults to a maximum of 15, "Piglet post-wean weight" now defaults to a maximum of 20, and "Piglet death weight" now defaults to a maximum of 22. (revision 13096) *#Dramatically decreased the time that it takes to add a large number of Animals to an Animals list box. Since the Status form uses an Animals list box on the Location "page", this means that it takes dramatically less time to look up all of the Animals that are in a particular Location. (revision 13100) *#Added a configuration setting for determining the default Farrowing group number. If "Use breeding's group number" is selected (which is the default), then the group number from the Sow's current breeding is used. If "Generate based on first service date" is selected, then the group number is generated based on the Sow's current breeding's first service date (which is the previous behavior). The Farrow form's "Set Group" button, and the validation for the group number, now obey this setting. This setting can be configured on the PDA's Config form, on the "Settings 6" tab. (revisions 13102, 13104, 13105, 13106) Bug Fixes *#Fixed the incorrect calculation of the number of Piglets on the Sow when reconciling a Farrowing. The calculation was incorrectly including the Deaths, Fostered On, and Fostered Off quantities from the Sow's previous parity. Depending on what those quantities were, and the quantity of Piglets from the actual Farrowing, this could prevent a "Dead Untagged" quantity from being entered. (Bug #14) (revision 13094) *#The Status form no longer displays the error message "No location exists for the provided ID", for those Farms that do not use location RF IDs, when switching between the Animal and Location "pages". (revision 13099) *#Fixed the busy cursor not being displayed while looking up a large number of Animals for a particular Location on the Status form (and anywhere else that uses a Location text box). (revision 13101) Version 4.3 New Features * Miscellaneous updates to the final issue in "Known issues.txt". (revisions 12966, 12967, 12968) *#Upgraded to Essi35 version 3.5.56. (revision 13000) Version 4.2 New Features * The database upgrade script now changes the database's recovery model to simple. (revision 12811) *#User-configurable settings are no longer stored in the .NET configuration files. Instead, they are now stored in PigSMART.config. (revisions 12845, 12846, 12847, 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858) # Modified the Sync form, such that the message that is displayed prior to syncing that is regarding incomplete events, now specifically describes which types of incomplete events there are. (revisions 12859, 12860, 12861, 12865) *#The PDA and virtual PDA login processes now notify the user if there are incomplete fosters. (revisions 12867, 12868) *#Modified the "notify" forms (which notify the user that there are incomplete farrows, fosters, or weans), such that when the user opens the corresponding "complete" form, completes the event, and closes the "complete" form, the "notify" forms now check for whether there are still incomplete events. If there are none, they now display a message indicating as such, and then close themselves. This possibly alleviates some user confusion after they have completed the final incomplete event, yet the "notify" forms still (incorrectly) indicate that there are still incomplete events. (revision 12869) * Modified the issue reporting system to include PigSMART.config from the PDA. (revisions 12875, 12876, 12877, 12882) * Modified the issue reporting system such that it's no longer fatal if the user has elected to include PigSMART.config and/or the database files, but it can't find PigSMART.config on the PDA, because it's possible that PigSMART.config isn't there simply because the PDA hasn't been configured yet, which means that it's perfectly valid for the file to not be there. (revisions 12878, 12879) * Modified the issue reporting system to include PigSMART.config from the workstation. (revisions 12880, 12882) # Modified the PDA app such that the .NET configuration file is no longer automatically placed in non-volatile storage. This was only really useful for those PDAs whose main storage is volatile, but those PDAs are no longer supported anyway (since we combined nearly all of PigSMART's data files into one single database). This fixes the inability of the workstation app's issue reporting system to find the PDA's .NET configuration file when it's in non-volatile storage, because the issue reporting system never supported this anyway. On PDAs that DO have a non-volatile storage path, this change may cause PigSMART to prompt the user to manually locate the configuration file in that path the next time that it starts up. (revision 12883) *#Added a new configurable weight validation range for Piglet Deaths. (revisions 12887, 12888, 12889, 12890) *#Duplicated the "Sex" and "Nipple" fields on the Farrow Piglet form onto the "Dead" fields page. (revisions 12897, 12898, 12899, 12900, 12901, 12902) *#Dead Piglets can no longer be fostered. (revision 12907) * PigSMART now tracks which PDAs are used to record events (including the virtual PDA). This is done via the new Animal_Events table column animal_event_source_key, which foreign keys to the new Animal_Event_Sources table, which contains the name of the PDA. (revisions 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927) *#Modified the Foster Untagged Piglets form such that the user is now allowed to continue when the Fostered Off and Fostered On totals don't match. The existing warning message is still displayed, but the subsequent error message has been removed. (revision 12928) *#Internally re-organized the error message infrastructure, and modified it to allow error messages to contain placeholders for dynamic values. Principally, this means that the error message that is displayed when the user enters a date that is too far in the past now contains the configured maximum number of past days. (revisions 12929, 12930, 12931, 12932, 12933, 12934, 12935) *#Added the "AI Type" field to the Mate form. (revisions 12937, 12938, 12939, 12940, 12941) * Upgraded to SetUpDatabase version 1.9. (revision 12957) * Upgraded to Setup version 1.8. (revision 12961) *#Upgraded to Essi35 version 3.5.55. (revision 12962) Bug Fixes * Fixed the issue whereby an unresolved assembly reference exception occurs when starting Essi.PigSmart.Workstation 4.1, because PigSMART 4.1 was upgraded to version 3.5.54 of the development libraries, and the user has modified Essi.PigSmart.Workstation.exe.config (by changing the virtual PDA settings), which causes Windows Installer to not update it when upgrading to 4.1, and thus it's still referencing 3.5.53. (revision 12835) * Fixed the inability of non-admin users to modify the "virtual PDA" configuration. (revision 12873) * Fixed the inability to repair PigSMART via "Programs and Features" on Windows Vista and up, by removing MDAC. This makes PigSMART require SP3 on Windows XP. (revision 12884) * Fixed the events for Piglets that were born live, but were dead at the time of Farrowing, such that -- when the user looks up the Piglet in the Workstation app, and checks its list of events -- the Dead event is no longer listed before the New Piglet event. (revision 12891) * Fixed the situation whereby if multiple Piglets are born live but are dead at Farrowing, only a single LDEATH event is recorded when syncing, when there should be an LDEATH for each dead Piglet. (revision 12892) * Fixed the Wean Comments being displayed in the Events grid (which is in the Workstation app, on frmPig, on the Events tab) using pipe characters instead of dashes. (revisions 12894, 12895, 12896) *#Fixed the fields on the Farrow Piglet form's "Dead" panel not being reset if the user starts to enter "Dead" info, but then taps Cancel and saves the Piglet as live. (revision 12903) * Fixed the "Avg Parity Dead Females", "Breeding Female Deaths", "Gilt Deaths", and "Sow Deaths" statistics not including euthanized Animals. (Note that "Gilt Deaths" and "Sow Deaths" are not visible on the Statistics form, because they are currently invisible by default.) (revision 12906) *#Fixed all hard-coded instances of the number 5, when that 5 refers to the maximum number of allowable days in the past for an event, such that it uses the configuration setting instead of the hard-coded 5. This means that the "Maximum number of days in the past for dates" configuration setting can now be safely changed. (revision 12936) *#Fixed some combo boxes (correctly) being read-only in the PDA, but (incorrectly) being editable in the virtual PDA. (revision 12942) Version 4.1 New Features * Modified the Tools form such that any "tab" that mentions Database Manager now provides a button to run it. (revisions 12717 12718) * The Add buttons on the Boars/Sows/Pigs form's Breedings and Parities tabs now also open the "virtual PDA". (revisions 12720 12721) * Improved the stability of the sync service (Essi.PigSmart.Server). (revisions 12738 12739 12740 12741 12756) * Modified the Workstation app (Essi.PigSmart.Workstation)'s Home form to display the results of the last sync. (revisions 12748 12749 12750 12751 12752 12753 12754 12755) * Modified the "Processing Events complete" status message that is reported by the sync service to be friendlier for end users. (revision 12763) * Added a user interface for (re)processing a PDA database, optionally against a different SQL Server and database. This user interface is accessible on the Workstation app's Home form, via the new "More Tools" menu. (revisions 12764 12765 12766 12779) * Modified the Boars/Sows/Pigs form's Events tab's Update button to no longer open ManualDataCorrectionUtility, but to instead open the old Event editing form, and to only allow the most recent Event to be edited. (revision 12783) # A Piglet Death's weight is now validated against the post-wean weight range. Previously, it was validated against the pre-wean weight range. (revision 12784) # A DNA ID can now be entered when Weaning a Piglet. Serial port scanners can also be configured to scan DNA IDs by changing the "ID Type" to "DNA", in which case the DNA ID will automatically go into the proper field when Weaning a Piglet. (revisions 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796) These fields are invisible by default, but can be made visible in the Workstation app, via Home -> Configuration -> Screens, selecting frmWeanPiglets, selecting lblDnaId and txtDnaId, and entering "Y" for Visible. (revision 12798) * Added a new issue to "Known issues.txt". (revision 12797) # Fixed a new PigSMART folder being created on the PDA with each new version that is installed, and fixed PigSMART being listed multiple times in "Remove Programs" (once for each version). Before upgrading to PigSMART 4.1, users should remove each instance of PigSMART from "Remove Programs", and then manually remove all PigSMART folders from "Program Files" (if there are any). Subsequent releases of PigSMART will upgrade the existing folder instead of creating a new folder. (revision 12799) *#Updated the copyright dates. (revision 12800) *#Upgraded to Essi35 version 3.5.54. (revision 12805) Bug Fixes * Fixed the log output from Essi.PigSmart.Server not having timestamps. (revisions 12712 12713 12714 12715) *#Fixed a sync error that occurs when an invalid combination of fostered on, fostered off, dead, and live Piglet quantities was entered at Farrowing, by ensuring that the Farrowing can not be processed until a valid combination of Piglet quantities is entered. (This issue only affects Farms that do not tag Piglets.) (revision 12726) * Fixed duplicate Foster On, Foster Off, and Litter Death events being recorded when syncing a Farrowing. (This issue only affects Farms that do not tag Piglets.) (revision 12727) *#Fixed the situation whereby the date and time of the Farrowing event can sometimes end up being recorded with a later date and time than the Foster On, Foster Off, and Litter Death events that are automatically recorded with the Farrowing event. (This issue only affects Farms that do not tag Piglets.) (revisions 12728 12730) *#Fixed an incorrect Status appearing on the PDA for some Sows. (revision 12729) *#Fixed the issue whereby if the user records multiple fosterings in a single batch on the PDA, and then syncs, only a single fostering is recorded in the server database. (revisions 12768 12769 12770 12771 12772 12773) # Fixed the issue whereby a Foster Off can be recorded on the PDA with a date and time that puts it before a Farrowing. (revisions 12775 12776 12777) * Fixed the inability to open the Configuration form in the Workstation app, by modifying the database upgrade script to remove all Event_Results records that point to Event_Codes records that don't exist. (revision 12780) # Fixed the message "Mated by X Boar(s)" being displayed when Farrowing a Sow has been mated by by the same Boar multiple times, but the Boar's ID was entered with different character casing each time. (revision 12781) # Fixed the inability to scan a new RF ID when Weaning a Piglet. (revision 12790) Version 4.0 New Features # A message is now displayed on the Sync form if there are queued fosterings that have not yet been processed. (revisions 12621 12622 12623 12624) # The "untagged" Fostering form now displays a message when the user closes it, which explains that the fosterings have been queued but have not yet been processed, and it describes how to process them. (revision 12625) *#Modified much of the PDA app's infrastructure to allow it to be used in the Workstation app, which allows events to be recorded in the Workstation app, using the PDA app's forms and infrastructure. When the user opens these forms in the Workstation app, it is referred to as a "virtual PDA". As such, only those settings that are relevant in the Workstation app are configurable via the virtual PDA's configuration form; the rest are disabled. (revisions 12628 12629 12630 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12689) *#Removed everything related to StartUpApplications. This functionality was created in order to run TWedgeCE at startup, but PigSMART integrates directly with serial port Scanners, and thus has never required TWedgeCE. (revision 12644) * Added ManualDataCorrectionUtility.exe.config to the .msi package, in case ManualDataCorrectionUtility needs to be configured in the future. (revision 12646) * Added SetUpDatabase.exe.config to the .msi package, in case SetUpDatabase needs to be configured in the future. (revision 12647) * The Workstation app's log file will now be included when the user submits issue reports. (revision 12651) * Miscellaneous cosmetic modifications to the PDA app's forms, to ensure that they look right when they are opened as the virtual PDA in the Workstation app. (revisions 12658 12659) * Modified the Animal info form such that clicking the Add button on the Events tab now opens the virtual PDA instead of the old event entry form. (revision 12660) * Modified the Animal info form such that clicking the Update button on the Events tab now runs ManualDataCorrectionUtility instead of opening the old event entry form. (revision 12667 12670 12671) * Modified ManualDataCorrectionUtility to give the user much more information if an exception occurs. (revision 12668) * Modified the Tools form to remove the functionality for the "Retry PDA Errors" list item, and to display the message "This feature is no longer supported". Events that are synced from a PDA are now processed in one giant transaction that either completely succeeds or completely fails, and thus, there are never any "error" events to be re-processed with this feature. (revision 12673) * Modified the Tools form to rename the "Verify PDA Settings" item to "Restart IIS", because that's the functionality that that item actually points to. (revision 12674) * Modified the Tools form to remove the functionality for the "Restart IIS" list item, and to display the message "This feature is no longer needed, since PigSMART no longer uses IIS." (revision 12675) * Replaced the Home form's "Find" button with the "Record Events" button, which opens the virtual PDA. (revision 12679 12680 12681 12682 12683 12684 12685) *#Upgraded to Essi35 version 3.5.53. (revision 12695) Bug Fixes # Fixed PigSMART disappearing (but continuing to run in the background) if an exception occurs when opening forms from the button menus. Instead of disappearing, PigSMART will now display the exception that occurred. (revision 12620) * Fixed the inability of non-administrator users to change configuration settings that are stored in the Workstation app's config file (such as the settings for the virtual PDA). (revision 12645) * Fixed the inability of the Workstation app to write to its log file when it is run as a non-administrator user. (revisions 12649 12650) * Fixed the inability to log in to ManualDataCorrectionUtility as an Operator whose stored password is not scrambled. (revision 12664) * Fixed ManualDataCorrectionUtility's "Please wait" window being displayed on top of error message windows. (revision 12669) * Fixed the situation whereby if a Mate AI or Mate Boar is recorded in the PDA app, and a Dead event is recorded for the same Gilt/Sow in the Workstation app, and then the PDA is synced, the Gilt/Sow's Breedings result is not Dead (which it should be, because she was dead from the Dead event). This works even if the Gilt/Sow does not have a current Breedings record when the Mate AI or Mate Boar is processed (in which case, one is created, with the Dead result). (revision 12688) Version 3.23 New Features *#Upgraded to Essi35 version 3.5.52. (Please see its changelog.txt for more info about what's new in this version.) (revision 12610) Bug Fixes * Fixed the inability to open the Configuration window when the LaborCodes in the database aren't already in the proper sort order (which is the case in the UNL database). (revision 12601) Version 3.22 New Features * A new interface is available for reporting issues. From the Workstation's Home window, choose "Submit issue report..." from the Help menu. (revisions 12424 12425 12426 12429 12436 12449) Many errors can also be reported via this mechanism, via the new "Report" button that is displayed on the error window. (revisions 12447 12448) *#Much of the workstation's and PDA's business layer code is now identical, which should reduce maintenance and support time. (revisions 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461) *#Much of the PDA's business layer code has been modified to be usable in the workstation as well, which will be used by future versions. (revisions 12462 12463 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12548) * Optimized the performance of several database views that are used to build the PDA database. This allows the sync service to build the PDA database faster, which reduces the time to sync a PDA. (revisions 12511 12512 12513 12514 12515 12516 12517) # The visual ID that is generated for dead-but-born-live Piglets no longer contains words. (revision 12518) # Added a weight text box to the "Dead" page on the form that is used for entering Piglets when farrowing a Sow. This makes it possible to finish entry of a dead Piglet by weighing it. (revisions 12531 12532) # Moved the "Comments" field on the form that is used for entering Piglets when weaning a Sow, so that it is on the first page of fields. Previously, it was on the page of "additional" fields, which are only visible if enabled via the configuration form. (revision 12533) * Upgraded to SetUpDatabase version 1.8. (revision 12543) As a result, SetUpDatabase will now prompt the user to enter a randomly-selected PigSMART-related word before proceeding with its processing. (revision 12544) * Renamed Essi.PigSmart.Forms.dll to NETtoCOMbridge.dll. (revision 12553) * Added a more convenient UI to ConfigurationForm for editing EventFieldPossibleValuesLists (a.k.a. validation code lists). (revisions 12582 12583) *#Upgraded to Essi35 version 3.5.50. (revision 12588) * When processing breeding information, a Sow/Gilt's parity is assumed to be 0 if it does not have a parity. (revision 12595) Bug Fixes * Fixed Piglet wean weights not appearing on the Litter Report, due to them having been recorded with a results_desc of "WEAN WEIGHT". (revision 12465) * Fixed the sire_id being incorrectly set to 'MULTI' when no sire IDs are found. (revision 12521) * Fixed the sire_id being set to 'MULTI' if the sire IDs differ only in character casing, and the default collation for the database is case sensitive. (revision 12522) * Fixed Mate AI and Mate Boar events creating new Breedings records with a result_code of G *only* if the Sow is Open (otherwise, the result_code from the previous Breedings record would be used), when new Breedings records for these events should *always* be created with a result_code of G. (revision 12536) Affected Animals are fixed during the database upgrade process. (revision 12596) * The Animal event status history is no longer regenerated for transferred or removed Animals. (revision 12545) * Fixed those situations where an event's transaction time portion might cause the wrong status to be located for the Animal in its event status history, and thus the event is validated incorrectly. (revision 12549) * Fixed the Heat NS event giving Piglets Open status. (revision 12580) Affected Piglets are fixed during the database upgrade process. (revision 12581) Version 3.21 New Features -Upgraded to Setup version 1.7. (Please see the changelog.txt for more info about what's new in this version.) (revision 12390) Bug Fixes -Fixed an incorrect data type in upgrade_script.sql, which was preventing databases from being upgraded if the current Farm's farm_id is not convertible to INT. (revision 12525) Version 3.20 New Features *#More helpful error messages are now displayed if an error occurs while processing an event during a sync. (revisions 12133, 12134, 12135) * Upgraded to Setup version 1.6. (revision 12279) * After downloading and installing this version, end users can dynamically and automatically update their installation files to new versions by running Setup.exe again. (revisions 12280, 12281) *#If an event fails to sync, the error message now includes the event code and the Animal's Visual ID. (revisions 12287, 12288, 12289) # A Comments field is now available when weaning Piglets. (revisions 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12309) # Reorganized the controls on the Config form's "Settings 1" and "Settings 2" tabs to maximize the amount of usable screen space. (revisions 12304, 12305, 12306, 12307, 12310, 12311, 12312, 12313, 12314, 12315, 12316) # It is now configurable on the Config form if a Piglet's Visual ID should be generated for Piglets that are born live but are recorded as dead when Farrowing. (revisions 12317, 12318, 12319, 12320, 12321, 12322, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336) Miscellaneous modifications were made across the system to use this new setting. (revisions 12323, 12324, 12325, 12326, 12327) # Reduced the Animal look-up times on the following forms, by no longer displaying treatment information: Wean Piglet, Complete Farrow, Complete Wean, Litter Death, Piglet Death, Wean Sow. (revisions 12338, 12339) # Reduced the Animal look-up times on the following forms, by no longer displaying mating information: Complete Farrow, Complete Wean. (revision 12341) # Added a new configurable weight validation range to the Config form, which validates Piglet weights when Fostering, to the new "Settings 6" tab page. The user interface for configuring the pre-wean and post-wean weight validation ranges has been moved onto this tab as well. (revisions 12345, 12346, 12347, 12348, 12350, 12351, 12352, 12353, 12354) # The text of the validation messages that are displayed on the Config form, when validating the pre-wean and post-wean weight validation ranges, now match the controls that they're referencing. (revision 12355) * Added controls to the Sow Card report filter user interface that allow a starting and ending event date range to be specified. (revisions 12357, 12358, 12359, 12360, 12361, 12362, 12363) * The "PigSMART database" Component that is displayed during the Setup process now indicates that it will 1) install a new database, OR 2) update one or more existing databases to the current version. (revision 12378) Bug Fixes *#Fixed the situation whereby a Pig2Gilt can be recorded on the PDA, and then a newer NFDeath can be recorded on the PC, and then when the PDA is synced, and the Sow ends up with a status_code of 'O', when it should be 'D' from the NFDeath. (revision 12290) # Fixed the inability to wean a Piglet with an automatic fostering if that Piglet's wean weight is outside of the pre-wean weight range. Instead of using the wean weight for the automatic fostering, a blank weight is now used instead. (revision 12291) * Fixed the date_of_death and cause_of_death_code remaining after deleting a Euthanize event. (revision 12292) *#Fixed the situation whereby if a Mate AI is recorded on a PDA, and a Dead is recorded on a PC, and then the PDA is synced, the existing Breeding's result_code would be set to Gestating by the Mate AI, despite the fact that the Dead is more recent than the Mate AI. Note that this only affects the result_code -- all other values that are normally changed (such as the AI and Natural Services counts) are still changed. (revision 12293) # Fixed the text for the "Show additional Piglet weaning fields" label on the Config form being displayed on three lines (which does not fit on the screen) on PDAs that use standard Pocket PC resolution. (revision 12302) * Fixed the entry_group_nbr being incorrectly assigned for Piglets when upgrading the database. It should be NULL until Piglets enter the breeding herd, via a Pig2Gilt or Pig2Boar. (revision 12356) This data is corrected during the database update process. (revision 12368) Version 3.19 New Features -Added Essi.PigSmart.DatabaseManager, which makes it easier to back up, restore, and delete databases, without requiring use of another tool (such as SQL Server Management Studio). A shortcut to this application is placed in the Start Menu by the Setup process. By default, it uses PigSMART's database configuration. (continued) Note that since Database Manager makes use of the back up and restore functionality that is built into SQL Server, the path that you provide to the back up file will be relative to the server, and _not_ to the computer that is running the back up or restore operation. That is, if SQL Server is running remotely on the "server" computer, and Database Manager is running locally on the "workstation" computer, and you begin a back up operation on the workstation, and you enter "C:\Backup.bak", then SQL Server will create "Backup.bak" on the _server's_ drive C. This is a limitation of SQL Server, and not of Database Manager. A workaround for this is to create a network share on the workstation computer, and then enter the UNC path to that network share into Database Manager, and -- if SQL Server can access the network share -- the back up file will appear locally. (continued) Since Database Manager is now available, the UI on the old workstation "Tools" form that was previously used for backing up, restoring, and deleting databases has been replaced with a label, which instructs the user to use Database Manager instead. (revisions 12104 12105 12106 12107 12108 12109) -The license types have been changed, from being dependent upon the number of active Sows and Gilts, to simply determining whether PDA data is ignored or accepted when syncing. Data is ignored if the license type is "PigSMART Parity 1", whereas it is accepted if the license type is "PigSMART Parity 2". For both license types, PDAs can still be synced before and after they have collected data, but that data will only be processed by the server if the license type is "PigSMART Parity 2". Aside from this one detail, the full range of PigSMART functionality is available for both license types. (continued) All existing installations are automatically upgraded to "PigSMART Parity 2" the first time that the workstation application is run. It is recommended that end users run the workstation application at least once, immediately after installation, to ensure that their license is properly upgraded. This upgrade does not affect the number of uses or days remaining, so any installations that have not been activated will keep the same number of uses and days remaining. (continued) New installations by default use "PigSMART Parity 2", with the usual 30 day / 30 use limit. (revisions 12110 12111 12112 12113 12114 12115 12116 12117) -Any messages that are PRINTed by stored procedures during a sync are now redirected to the sync service's log file. The messages are written with a severity of "Info", which means that they will only appear in the log file if the config file's LogSwitch is set to 3 or greater. (revision 12120) -Upgraded to Essi35 version 3.5.47. (Please see the changelog.txt for Essi35 for more information about what's new in this version.) (revision 12125) Bug Fixes -Fixed the situation whereby a Pig2Gilt event, followed by a Mate event on the same day, followed by a sync, would cause the Sow to end up on the PDA with a status of Open instead of Gestating. (revision 12119) Version 3.18 New Features # The status update messages that are displayed when saving the configuration on the Config form are now displayed in a label on the Config form itself, instead of in a separate window. This fixes numerous visual oddities that were happening when saving the configuration, such as the Config form disappearing while status update messages appear and disappear on the screen. (revision 11934) # The main database now defaults to being stored in the same location as the configuration file. This means that, if PigSMART finds one of the non-volatile configuration file paths (and thus it puts the configuration file in that path), the main database will default to being stored in non-volatile storage. (revision 11935) # The main database, the temporary database, and the events log database have all been combined into a single database. This makes PigSMART much more performant and fault-tolerant than previous versions. Note the following caveats to this change: 1) All PDAs should be synced before any PDA, workstation, or server is upgraded to this version of PigSMART. This is part of the recommended upgrade process for any version of PigSMART, but it is particularly important with this version. If a PDA is not synced before it is upgraded, the events in its (previously separate) events log database would have to be manually synced, and no such manual sync mechanism has been implemented. 2) Syncing a PDA will take longer in this version (and subsequent versions) than in previous versions, because the PDA now sends the single combined database to the server, when previously only the events log database would be sent. This is normal. In testing, this only added 20-30 seconds to the sync. 3) Some PDAs (such as the Symbol PPT88xx) may not have enough non-volatile storage space for the new combined database. Those PDAs that DO have enough space will probably see reduced performance, because their non-volatile memory is much slower than their main memory. If performance is critical, PigSMART can still be configured to store the database in main memory. However, if the PDA's operating system is older than Windows Mobile 5 (such as the Symbol PPT88xx), and power is lost (for example, due to the battery dying), then the PDA's main memory will be erased, including the database, including any recorded events. To prevent data loss, we recommend keeping the database in non-volatile storage, and if non-volatile storage is too slow or too small, we recommend keeping the database on a storage card (if the PDA has a storage card slot). 4) Since the temporary database (PigSMARTTemporaryDatabase.sdf) and the events log database (PigSMARTEvents.log) are no longer used, they can be safely deleted. (revisions 11937 11938 11939 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11955 11956 11978 11979 11980 11981 11982 11983 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000) * PDA databases that are sent to the server when syncing are now stored in the "Client databases" folder. Previously, they were stored in the "Events logs" folder. (revision 12006) *#All instances that were referring to "events log" have now been changed to "events interface", since there is no longer a separate events log. (revisions 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12039 12040) # PigSMART no longer attempts to store the configuration file on the SD card on the Trimble Nomad. (revision 12041) # The date for an automatic Foster Off is now approximated if the source Sow is no longer Lactating. The date that is used is the day before the source Sow was weaned. (revisions 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055) *#The ToCull event can now be applied to unweaned Piglets. (revision 12057) # Added the following fields when weaning a Piglet: Number of Teats Left Side (excluding Pin Nipples), Number of Teats Right Side (excluding Pin Nipples), Number of Teats Ahead of Navel, Number of Pin Nipples, Number of Uneven Spaces Between Teats. These fields are now displayed on their own "page" of fields, and this "page" is now the final page. These fields default to being invisible, and can be made visible via the Config form. (revisions 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080) *#Upgraded to Essi35 version 3.5.46. (Please see its changelog.txt for more info about what's new in this version.) Bug Fixes # Fixed no initialization messages being displayed after the first sync on the Sync form, which made the PDA appear to be frozen, when in actuality it is busy initializing the database. (revision 11957) # Fixed a memory leak that would happen if the user syncs multiple times without closing the Sync form. (revision 11957) * Fixed sp_AddEvent() failing with an allocation error if no RF ID or Visual ID are provided. (revision 12007) Version 3.17 New Features *#Only Animals that have Piglet, Weaned Piglet, Boar, Gestating, or Open status can be euthanized. Effectively, this makes it so that Sows with Lactating status can't be euthanized. (revision 11733) # The existing Minimum Weight and Maximum Weight configuration settings now only apply to a Piglet's birth weight, which is now called the "pre-wean weight". The related user interface elements, and validation and error messages, have been modified accordingly. Since the names of the settings have changed, they will need to be re-configured on PDAs that already have PigSMART installed; otherwise, the default range of 0 to 0 pounds will be used. (revisions 11734, 11735, 11736, 11737, 11740, 11741, 11744, 11755, 11758, 11759, 11759) # RF IDs can now be up to 50 characters long and alphanumeric. (revision 11742) * Added an issue to the "Known issues.txt". (revision 11743) # Added new configuration settings for specifying the minimum and maximum wean weight for Piglets, and modified the Wean Enter Piglets form to use them. (revisions 11745, 11747, 11748, 11749, 11756, 11757, 11759) # The weight that is entered when Fostering a Piglet is now validated against the configured "pre-wean weight" range. (revision 11761) # The weight that is entered when recording a Piglet Death is now validated against the configured "pre-wean weight" range. (revision 11762) * Re-implemented the user interface for configuring Events (formerly referred to as Event Codes), Event Fields (formerly referred to as Event Results), and Event Field Possible Values (formerly referred to as Event Result Codes) on the new configuration form. This new interface also includes a new feature: Event Field Possible Values can now be made active or inactive; only active Values are listed in the PDA app. (revisions 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11834, 11835, 11836, 11838, 11839, 11840, 11842, 11848, 11853, 11862, 11864, 11865, 11868, 11870) * A much more user-friendly message is now displayed if the user tries to delete the current Farm on the new configuration form. (revision 11854) * If the user changes modes on the new configuration form, between viewing a Farm, editing a Farm, or editing a Farm's settings, the input focus now moves to the appropriate control. (revision 11863) * If the user is editing on a particular tab on the new configuration form, they must now click the Cancel button (to back out of editing mode) before they can change tabs. This prevents the user from mistakenly changing to another tab, and then saving on that tab, and then thinking that their changes on the previous tab were also saved. (revision 11866) # If the user is completing a Wean or Part Wean, and the Wean or Part Wean event is not found, a much more helpful error message is now displayed. (revision 11869) # The events log database and temporary database are no longer optimized after they are initialized, out of concern that the optimization process presents a small window of opportunity that -- if interrupted -- would likely corrupt the databases and cause data loss. This was never particularly useful anyway, since the databases are already so small that optimizing them doesn't actually save much space. This also reduces the processing time when these databases are first created, which reduces the time that it takes to sync or log in. (revision 11871) # Added logging support. (revisions 11877, 11878) # A message is now written to the log when a sync starts or completes, and if there were any warnings or errors that occurred while syncing. (revision 11880) # A message is now written to the log when an operator logs in and out. (revision 11883) # A message is now written to the log when a data entry form is opened and closed. (revision 11884) # Added integrity verification for the databases, which runs when the user logs into PigSMART, when they open a data entry form, and every 10 minutes while they are using a data entry form. (revisions 11890, 11891, 11892, 11893, 11894, 11895, 11896) # More user feedback is given when the events log database is initializing. (revision 11897) # All events now create a record in the RecentEvents table; these records can be seen on the Status form. (revisions 11904, 11905, 11906, 11907) # A message is now written to the log when the user completes a Farrow, completes a Part Wean, or reconciles Piglet totals. (revision 11908) *#Upgraded to Essi35 version 3.5.45. (Please check the changelog.txt for more info about what's new in this version.) Bug Fixes * Modified the New Event form such that available animal events for the current animal are sorted by event code. * Fixed euthanized Animals not properly affecting the statistics-based reports. (revisions 11730, 11731, 11732) # PigSMART no longer suddenly exits if an error occurs when the user opens a data entry form; instead, the error message is displayed. (revision 11900) # Automatic Foster Offs (which are recorded for Piglet Deaths and Weans) no longer halt the sync process if the server does not process them successfully (which can happen if the SowParity is no longer Lactating by the time the PDA is synced). (revisions 11909, 11910, 11911, 11912) * Modified sp_StoreSowInfo() such that it correctly passes its @ignore_errors argument to all of the stored procedures that it calls. Previously, it would (incorrectly) ignore its @ignore_errors argument, and always pass 'TRUE' to some of those stored procedures. (revision 11913) Version 3.16.1 Bug Fixes # Modified the Trimble barcode scanner integration to be tolerant of zero-length scan data. This has the effect of fixing the spontaneous exits that have been reported by SPG. (revision 11855) Version 3.16 New Features # Modified all forms that allow entry of new Animals (such as the Farrow Enter Piglets form) such that pressing Enter in an ID field (such as RF ID, Visual ID, or Alternate ID) changes the focus to the next field (for example, if Enter was pressed in the RF ID field, the focus changes to the Visual ID field), provided that the ID in that field is a new ID and is not in use by an existing Animal. If the ID is _not_ new, the focus stays in that field, and the usual error message about the ID being in use is displayed. (This goes towards allowing the user to "Enter through" the ID fields when entering new Animals.) # Modified all forms that allow entry of new Animals (such as the Farrow Enter Piglets form) such that scanning an ID (such as an RF ID, Visual ID, or Alternate ID) changes the focus to the field that comes after the field that received the ID (for example, if an RF ID was scanned, the focus changes to the Visual ID field), provided that the ID is a new ID and is not in use by an existing Animal. If the ID is _not_ new, the focus is moved to the field that received the ID, and the usual error message about the ID being in use is displayed. (This goes towards allowing the user to "Enter through" the ID fields when entering new Animals.) # Modified the Farrow Enter Piglets form such that it no longer clears the ID fields if the user scans or enters an ID that is already in use. This fixes the user having to re-enter any new IDs that they may have already entered. Bug Fixes # Fixed the inability to sync after a hard reset if the events log contains a purely custom event (such as Defect). # Fixed the inability to sync or log in (until PigSMART is restarted) if an error occurs while initializing the storage infrastructure. Version 3.15 New Features * The "Days from wean to estrus", "Days acclimatize new gilt", and "Maximum expected litters before cull" settings are now configurable. # ID Scanners are now referred to simply as Scanners. # Genders can now be scanned. It's recommended that if a barcode is printed to represent a gender, the content of the barcode should be the abbreviation for the gender (for example, for Male, "M" should be used). # Custom genders can now be scanned or manually entered on the New Piglet form. # If a control receives a scanned ID, a scanned gender, or a weighed weight, the input focus is moved to the control that follows that control in the tab order. # On the generic event form, location text boxes now receive scanned location RF IDs in the same order as the tab order, instead of the reverse of the tab order. # The Events Log file is now internally a database instead of an ordinary text file. This allows PigSMART to modify and update previously-recorded events much more easily and efficiently, and it also makes PigSMART much more fault-tolerant when recording events. In the case of reconciling or completing weanings, the processing time is dramatically reduced. If -- after upgrading a PDA to this version of PigSMART -- there is still a text file Events Log on the PDA, this text file is automatically converted to a database, so that none of the events within it are lost. # All forms that have one or more location fields will now offer to save those locations for subsequent events, similarly to the Mate form. *#Upgraded to Essi35 version 3.5.44. (Please check the changelog.txt for more information about what's new in this version.) Version 3.14 New Features # If PigSMART is configured such that Piglets are weighed all at once when farrowing, and no weight is entered for the final Piglet, a message box is now displayed that asks the user whether they would like the remaining Piglet weight to be used as the final Piglet's weight. This prevents the user from being forced to manually enter the weight of the final Piglet, particularly if their scale does not send a 0 weight when all weight is removed from it (such as the WeighTronix scale). # A message is now displayed if PigSMART detects that a serial-port-based ID scanner or scale has disconnected, which can happen if the ID scanner or scale has gone to sleep. Note that, due to varying implementations of serial port hardware and devices, PigSMART may not display this message for every combination of PDA, ID scanner, and scale. It has been tested to be working on the Trimble Nomad and the Symbol PPT8800. # The DTR4 wand scanner is now supported, and has been tested to work on the Trimble Nomad and Symbol PPT8800. It will also work with the HP iPAQ hx2490b, rx3115, and H4355, but on those PDAs, PigSMART is unable to detect when it goes to sleep. To make it easier to configure PigSMART to use the DTR4, "DTR4 wand scanner" has been added to the "Config" combo box on the serial port ID scanner configuration form. Special notes for the Trimble Nomad: when pairing the DTR4 with the Nomad, the wireless code from the DTR4's label SHOULD be entered. However, when creating the outgoing serial port, a secure connection should NOT be used (and thus the wireless code should NOT be entered), because using a secure connection causes the Nomad to automatically delete the outgoing serial port when the Nomad loses connection to the DTR4. # On the forms for configuring serial port ID scanners and scales, the contents of "Config" combo box are now sorted alphabetically. Version 3.13 New Features # PigSMART can now be configured such that -- when farrowing a Sow -- it verifies the Sow's litter weight after the user finishes processing her Piglets. That is, PigSMART will check to see if the total weight of all of the Piglets matches the Sow's litter weight, and if it doesn't, PigSMART offers to automatically update the Sow's litter weight to match. This feature defaults to disabled. It can be enabled via the new "Settings 5" tab on the Config form, by selecting the "One at a time" radio button, and then checking the "Verify the Sow's litter weight after all Piglets are processed" check box. # PigSMART can now be configured such that -- when farrowing a Sow -- all Piglets can be weighed all at once for the Sow's litter weight, and then removed one at a time to process them. When a Piglet is removed from the scale, its weight is automatically calculated, based on the Sow's litter weight and the total weight of the Piglets that have been processed so far. This feature defaults to disabled, which effectively means that Piglets will be weighed and processed one at a time by default. It can be enabled via the new "Settings 5" tab on the Config form, by selecting the "All at once, then removed one at a time" radio button. # For those weight fields that are the only weight field on their "page" of fields, they will now always accept the weight from the scale(s), regardless of whether the field is focused or empty. This makes it easier to add multiple Animals one at a time to the scale, or to re-weigh a single Animal as many times as necessary. Note that a weight of 0 is ignored; this supports scales that send a weight of 0 when they are connected or when all weight is removed from them. Note that if your scale does NOT send a weight of 0 when all weight is removed from it, PigSMART will not be notified when the final Piglet is removed from the scale, and thus PigSMART will be unable to automatically calculate the weight of the last Piglet, and thus that weight will have to be entered manually. *#Upgraded to Essi35 version 3.5.43. (Check the changelog.txt for Essi35 for more info about what's new in this version.) Bug Fixes # Fixed the inability to farrow a Sow when the Pre-Farrow Weight, Post-Farrow Weight, or Litter Weight fields are left blank. Version 3.12 New Features # A new configuration setting has been added to the Config form that allows PigSMART to automatically re-connect to the configured ID scanners and scales when the PDA's backlight turns on. This complements the existing setting that allows PigSMART to automatically _disconnect_ from the configured ID scanners and scales when the PDA's backlight turns _off_. This also works when the PDA is turned back on after it has gone to sleep, since (on all PDAs that were tested, except for the "old" Symbol PPT8800) turning the PDA back on causes its backlight to turn on. This setting defaults to on. # If PigSMART is configured to automatically disconnect from the configured ID scanners and scales when the PDA's backlight turns off, a message is now while it is is disconnecting. # Modified a number of locations to no longer needlessly disconnect from the configured ID scanners and scales, which may provide a minor performance boost. # A new configuration setting has been added to the Config form that causes PigSMART to wait for the PDA to "warm up". This delay occurs after the PDA's backlight turns on, but before PigSMART tries to automatically re-connect to the configured ID scanners and scales (if, of course, it's configured to do so). This "warm up" delay ensures that all of the hardware in the PDA that is used by the ID scanners and scales (such as Bluetooth hardware) is given a long enough time to "warm up" before PigSMART tries to use that hardware to connect to the ID scanners and scales. This setting defaults to 1 second. It's recommended that it be set to the following values on the following PDAs: > Trimble Nomad: 1 (the default) > HP iPAQ hx2490b: 2 seconds > HP iPAQ rx3115: 3 seconds > HP iPAQ H4355: 4 seconds > Symbol PPT8800 ("new" model): 5 seconds > Symbol PPT8800 ("old" model): 6 seconds If you receive connection errors when the PDA's backlight turns on (including if the PDA is turned on after it has gone to sleep), try increasing this setting. # PigSMART no longer displays the confirmation message when a NursFinDeath is being recorded and it is unable to determine the most recent status-changing event. # Weights of zero are now required to be within the range of the configured minimum and maximum weight. Previously, the system would always accept a weight of zero, even if the minimum weight was greater than zero. If a weight of zero is acceptable, the minimum weight should be set to zero. * The setup now installs SQL Server 2008 R2 using SQL_Latin1_General_CP1_CI_AS as the default collation, which matches PigSMART's SQL scripts. Bug Fixes # Fixed the issue whereby, while weaning a Piglet, if a Piglet is weighed while the scale is disconnected, and then the scale is re-connected, the Piglet is automatically weaned without a weight. Note that E.S. Systems could not duplicate this issue internally, and thus the end user should re-test this issue to verify that it is fixed. # The Piglet Weaning form now changes the focus to the correct control when switching into reconcile mode. # Fixed an error message that could occur while weaning a Piglet. The error message was referring to the wrong event. Version 3.11 New Features * The settings grid on the new configuration form can now be scrolled without having to click the "Edit" button first. # Serial-port-based scanners and scales are now much more configurable and flexible. The baud rate, parity, stop bits, etc. can all be configured. To make it easier to configure scanners and scales that have been widely-deployed in the past -- such as the Niton wand scanner or the WeighTronix scale -- these scanners and scales can be selected on their configuration form, and their settings applied to the new fields. The settings for the Niton wand scanner and the WeighTronix scale will automatically carry over to the new configuration forms. Up to three each of serial-port-based scanners and scales can be configured, including the Niton wand scanner and the WeighTronix scale. * The NEW BOAR, NFPIGLET, and NURSEON events will now appear in an Animal's event status history when it is regenerated via the ManualDataCorrectionUtility. # When starting up, if PigSMART is unable to locate the configuration file, it now prompts the user to locate it. This allows the user to move the configuration file (outside of PigSMART) to a non-volatile location that PigSMART does not know about, so that the configuration can be retained after a hard reset, even on PDAs on which PigSMART has not been tested. *#Upgraded to Essi35 version 3.5.42. Among other changes, this version includes an improved ConfigurationManager, which improves performance system-wide, particularly when finishing weanings. (Please check the changelog.txt for Essi35 for more info about what's new in this version.) Version 3.10 New Features * The setup process now opens the port in Windows Firewall that is used for syncing, which allows PDAs to sync with a workstation computer over a network. # The Config form now indicates, on its Server tab, that an IP address can also be entered. * The database upgrade process now re-generates the event status history for all Animals whose status code is out of sync with their event status history. For many Animals, this causes their status code to now be in sync with their event status history. # Weanings can now be resumed even after the user hard resets their PDA. This includes if the user explicitly does so (such as by pressing a specific combination of buttons), or if the PDA's battery dies. # PigSMART will now automatically store the configuration file in the "\Storage Card" path if it exists. This path corresponds to the removable storage card in many PDAs. # PigSMART now disconnects from all serial-port-based ID scanners when they go to sleep, which includes the the Niton Bluetooth wand scanner. This fixes sluggish performance, which in particular occurs on the Symbol PPT8800 series and on the Trimble Nomad, when the wand scanner goes to sleep. Note that, because of varying serial port implementations, PigSMART may not notice immediately that the wand scanner has gone to sleep. On the Trimble Nomad and on the HP iPAQ series, this can take up to 20 seconds; on the Symbol PPT8800 series, this is typically less than 5 seconds. During this time, the PDA is still responsive (it's only _after_ this time that performance was previously sluggish). During this time, if the user attempts to re-connect the scanners (via the menu in the lower left corner of any data entry form), the Trimble Nomad will display a wait cursor for several seconds and will then re-connect successfully; the HP iPAQs will display errors until the time elapses, and thus, the user should keep trying to re-connect -- ignoring any errors -- until the ID scanners are successfully re-connected. # When using the menu in the lower left to re-connect scanners, disconnect errors are no longer displayed; only connect errors are displayed. This makes the re-connection process a little smoother. # The same changes that were made above for serial-port-based ID scanners were also made for serial-port-based scales. *#A new data type has been added, called "OtherID". When this data type is used for a field in a custom event, that field will receive IDs that are scanned via the ID scanners (such as the wand scanner, barcode scanner, etc.). This data type should be used instead of "EID" or "VisualID" when it's desired that a ReTag event _not_ be processed with the event. * The status bar on the Home form now matches PigSMART's printed marketing materials. *#Updated the support e-mail and support URL. # Before syncing, a message is now displayed if there are events that have not yet been completed (such as farrowing or weaning events). This message indicates that only part of the PDA's events may sync, and that the incomplete events should be completed before the PDA will fully sync. *#Upgraded to Essi35 version 3.5.41. (Please check the changelog.txt for more information about what is new in this version.) # Modified the Config form to allow the path and file name of the main database to be changed via its Browse button. When the configuration is saved with a new path and/or file name for the main database, the old file (and any related files) is automatically moved to the new path and given the new name. # The same changes that were made above to the Config form in regards to the main database were also made for the events log file. # The Config form now provides better user feedback to indicate that it's busy while it's saving the configuration. Bug Fixes * Fixed the "New Piglet" and "Wean" events being removed from a Piglet's event status history when that Piglet is edited via the ManualDataCorrectionUtility. * Fixed the "New Animal" event being removed from a Boar's event status history when that Boar is edited via the ManualDataCorrectionUtility. * Fixed events that resulted in Dead status being removed from an Animal's event status history when that Animal is edited via the ManualDataCorrectionUtility. # Fixed the inability to begin and end events in any order. Previously, for example, if a weaning was begun on Sow A, then a weaning was begun on Sow B, and then the weaning was completed on Sow A, then trying to complete the weaning on Sow B would fail with an error message. * Fixed a number of additional events being removed from an Animal's event status history when that Animal is edited via the ManualDataCorrectionUtility. * Fixed a Sow's status potentially getting out-of-sync with her event status history when she receives a Foster On later on the same day that she was weaned. # Fixed Sows potentially having an incorrect status on the PDA, which could allow events to be recorded that could later fail when syncing. Version 3.9 New Features * Added a shortcut to the Start Menu that allows the user to change the database connection settings, after PigSMART is installed, without having to start PigSMART. This is useful if the database connection settings are causing errors when PigSMART starts up. # The act of weighing a Piglet can now complete the entry of that Piglet when farrowing or weaning. This behavior can be enabled or disabled (it defaults to disabled) via the new "Settings 4" tab on the Config form. * Upgraded to SetUpDatabase version 1.7. * Upgraded to Setup version 1.5. Bug Fixes * Fixed the animal event results values for Wean Weight. These values were causing errors when running the "Pigs Weaned (Part Wean Basis)" statistics report when the database server is SQL Server 2005 Express. # Fixed PDAs gradually getting slower and slower as more and more events are processed. Note that the process of completing a weaning will still gradually get slower and slower with each weaning that is completed, but the rate at which it gets slower is less than in version 3.8. * Fixed the "Sows Due to Farrow" report failing to run (and thus causing an error during startup) when there is no data available (which is the case for the template database). * Fixed the setup not installing Windows Mobile Device Center onto operating systems that are newer than Windows 7 and Windows Server 2008. Version 3.8 # Improved performance when determining the most recent status-changing event for an Animal. Since this determination is made for many different events, this means that performance is improved for many different events. # Improved performance when determining if a Sow has an incomplete Farrow on record. # Improved performance when determining if a Sow has an incomplete Weaned or PartWean on record. # Improved performance when there are no incomplete Farrows on record. # Improved performance when there are no incomplete Weaned or PartWeans on record. # The barcode scanner in the Trimble Nomad PDA is now supported. It can be enabled and configured like any other Scanner on the Config form. *# Upgraded to Essi35 version 3.5.39. Bug Fixes # Fixed a memory leak that occurred while syncing. Version 3.7 New Features # The events log is now placed in non-volatile memory by default on many PDAs. *# Updated the copyright dates. # Modified the indexes in the main and temporary databases to improve performance. # Improved fault tolerance when the temporary database is being upgraded. # Made numerous modifications to ensure that temporary databases that are in production are properly upgraded. # Dramatically improved performance when completing a wean. Performance when logging all other events may also be slightly improved. # Added a form that displays farrows that are not complete. This form automatically opens after the user logs in, if PigSMART detects any incomplete farrows. The user can scan or select the Sow whose farrow they would like to complete, and then complete it. # Added a form that displays weans that are not complete. This form automatically opens after the user logs in, if PigSMART detects any incomplete weans. The user can scan or select the Sow whose wean they would like to complete, and then complete it. *# Upgraded to Essi35 version 3.5.38. Bug Fixes # The last displayed progress update message no longer stays "stuck" on the screen if an error occurs while logging in. Version 3.6 New Features * Upgraded to Essi35 version 3.5.37. (Please see the changelog.txt for Essi35 for more information about what is new in this version.) * Upgraded to SetUpDatabase version 1.6. (Please see the changelog.txt for SetUpDatabase for more information about what is new in this version.) * Made several changes to the setup process to make it more flexible for users that may already have SQL Server (and possibly a database too) installed. (KB# 4154) * The desktop application now has a configuration file that configures it to write log output to Essi.PigSmart.Workstation.log. * The database is no longer quietly changed to "SwineHerd" 1) if an error occurs while PigSMART searches for compatible databases during startup, or 2) if no compatible databases are found. Instead, a message box is displayed to that effect, and any errors that occurred are written to Essi.PigSmart.Workstation.log. Note that the database _will_ still be changed to "SwineHerd" if the user attempts to log in anyway after the message box is shown. (KB# 4156) * While PigSMART is searching for compatible databases during startup, it now continues searching until it checks all of the available databases. Previously, if an error occurred while checking a database, the remaining databases would not be checked. * All features are now installed by default when installing the desktop application (PigSMART.msi). Previously, the Sync Service and PDA Installer features would only be installed if doing a Complete installation, or if doing a Custom installation and including them manually. * The desktop application (PigSMART.msi) is now installed unattended. This means that the user is no longer prompted to choose the features to install, the installation path, etc. Bug Fixes * The desktop application now runs with Data Execution Prevention disabled. This fixes AccessViolationExceptions that occur when trying to run the statistics reports, and when trying to run the Returns to Service, Rebreed Lag, Historical Statistics, Parity Analysis, and KPI reports. * Fixed nothing happening when trying to preview the Returns to Service report. * Fixed the Animal Menu form not opening after opening the Tools form, selecting "Edit Animal Status", clicking the "Find" button, and then closing the Pig Search and Pig forms in sequence. * Fixed the setup process incorrectly detecting that SQL Server CE is already installed if SQL Server Management Studio is installed. Version 3.5 New Features * The "Piglets to Print" filter for the Litter report now defaults to "--All--". (KB# 4151) * The Sow Card report now displays the "Service Technician" in its second section, positioned horizontally between "Service Date" and "Boar ID". (KB# 4152) * The Sow Card report now supports filtering by Event. (KB# 4143) Bug Fixes * Fixed an empty Group Number being detected incorrectly, prior to running the Sow Card report. * Fixed the inability to sort by Location on the Gilts Awaiting Service report. (KB# 4136) * Fixed the first sort order being ignored when selecting "Entry Date" for the second sort order on the Gilts Awaiting Service report. * Fixed a Sow not going back to Lactating status if she is Weaned and then receives a Foster On on the same day. Also, the database update process fixes these Sows in existing databases. (KB# 4153) Version 3.4 New Features # Wean and Part Wean events can now be completed if they are interrupted while Piglets are being entered, similarly to the previous functionality for the Farrow event. Note that a Wean / Part Wean can NOT be completed if the PDA is synced before completing the Wean / Part Wean; this will be fixed in a future version. (KB# 4141) # Wean and Part Wean events can now be reconciled. That is, if a different number of Piglets is processed than was indicated when starting the Wean / Part Wean, that difference can now be reconciled. Quantities for untagged Piglets can now be entered as well. # Completing a Farrow event is now more tolerant of potential errors. * Messages that are written to the sync service's log file (regarding the processing of events) now include the event's identifier, instead of its line index within the events log file. This makes it easier to match up error messages to specific events. # The Sync form now displays progress messages while the sync service is processing a PDA events log. # The Sync form now displays messages more often when the sync service is sending the PDA database to the PDA, which better indicates to the user that the PDA hasn't frozen. # The PDA's events log is now cleared immediately after the server processes it, instead of waiting until the very end of the sync. This makes it nearly impossible to sync the same set of events multiple times, even if an error occurs while syncing. # Miscellaneous minor changes to some sync error messages. * When syncing, individual events are now allowed up to 10 minutes to process. This fixes events sometimes timing out during processing, due to the previous time limit being only 30 seconds per event. * The sync service no longer writes any log output to the Windows event log. By default, it is now only configured to write log output to its own log file. * The sync service now includes a date and time on every line that it writes to its log file. #* Errors that "bubble up" now include an easier-to-follow chain of all related errors. Individual errors in the chain no longer include the messages of errors that are further down the chain. * Errors that occur while the sync service is generating the PDA database are now written to the log file with additional troubleshooting details. # Output on the Sync form can now be copied to the clipboard by tapping and holding on the text box and then tapping Copy from the pop-up menu. This allows the output to be easily pasted into other applications, such as text-editing applications, which can then save it to a file. That file can then be easily sent to E.S. Systems for troubleshooting purposes. # PigSMART now explicitly runs against the .NET Compact Framework 3.5. This fixes it mistakenly running against the .NET Compact Framework 2.0 on some PDAs. # PDAs with higher-resolution screens are now supported. # More 2D barcode scanning engines, and scanning symbologies, are now supported on Symbol PDAs. As such, on the Config form, on the Scanners tab, the "Symbol PPT88xx barcode scanner" has been renamed to simply "Symbol barcode scanner". As a result, end users will have to explicitly configure "Symbol barcode scanner" after upgrading to this version, before they can use the Symbol barcode scanning hardware. # If the user chooses "Scanners" from the "Re-connect..." menu on most forms, a message is no longer displayed that indicates that the scanners were successfully reconnected, if there are no scanners enabled on the Config form. The same is true for scales. * Added the ServiceManager application, including a shortcut to it in the Start Menu. This application provides a much more easily-accessible and user-friendly interface for starting, stopping, etc. the sync service. # Weaning a Sow no longer leaves her status as Lactating, if the user fostered Piglets onto the Sow while performing the Wean. (KB# 4147) # Piglets are now validated for either a Wean or Piglet Death event immediately after they are scanned while weaning. If neither event can be performed, an error message is displayed. This prevents the user from wasting time entering info for the Piglet, only to find out afterwards that it can't be weaned OR made dead. (KB# 4147) * Better user feedback is provided while the user is saving changes to a Farm. * When saving changes to a Farm, the time limit has been increased from 30 seconds to 10 minutes. This fixes the inability to save a Farm with a new FarmId, because so many database changes are required that the 30 second time limit was frequently insufficient. # The Complete Farrow form no longer displays an exception window if the user looks up an Animal that is not a Sow. Instead, an ordinary (and much less ominous) error message window is displayed. # The Foster Untagged Piglets form now displays an error message if the user looks up an Animal that is not a Sow. # The Complete Farrow form now displays a message that directs the user to the Farrow form if the user looks up a Sow that does not have an incomplete Farrow on record. # The Foster Tagged Piglets form now allows the user to tap the OK button to look up a Piglet whose information has been manually entered. Previously, the user would have had to press the Enter key to look up the Piglet. # The DNS name of the sync server is now configurable via the Config form's new Server tab. For most PDAs that use a physical cable to connect to a desktop PC to sync (such as a serial or USB cable), the default value "PPP_PEER" will not need to be changed. If the PDA is unable to find the sync server using "PPP_PEER", or you would like to sync over a network, enter the DNS name of the computer that you would like to sync with. If the PDA and the sync server are on the same Windows LAN, you may use the name of the Windows computer as the DNS name. Note that syncing over a network will require that port 31415 be opened or forwarded on the sync server. # Upgraded to Essi35 version 3.5.36. Bug Fixes # Fixed some controls having different captions when doing a Part Wean versus a Wean. # Fixed the Wean and Part Wean forms not fully supporting user-assignable control captions (which can be assigned via the desktop application). # Fixed ObjectDisposedExceptions occurring if a form that has a weight field is opened and closed, and then another form that has a weight field is opened, and then an object is weighed. Version 3.3 New Features *# Upgraded to Essi35 version 3.5.34. # ID Scanners and Scales are now automatically disconnected when the PDA's backlight turns off. This fixes the PDA being unresponsive and sluggish after coming out of sleep. This behavior can be enabled or disabled via a new checkbox on the Config form on the new "Settings 3" tab, called "Automatically disconnect scanners and scales when the backlight turns off". This checkbox defaults to being checked. Also, some Symbol PDAs might be incompatible with the default method that PigSMART uses to detect when the backlight turns off. If "Automatically disconnect scanners and scales when the backlight turns off" is checked, and the PDA is still sluggish and unresponsive after turning back on, then the PDA is likely incompatible with the default backlight detection method. If the PDA is a Symbol PDA, there is a second new checkbox, also on the "Settings 3" tab, called "Use the alternate method for detecting when the backlight turns off (for Symbol devices only)". This checkbox defaults to not being checked. (KB# 4126) # On the Mate form, values can now be scanned into the Genetics combo box. (KB# 4128) # All group numbers are now generated to contain six characters, including those that are generated within the first nine weeks of the year. (KB# 4130) # The Farrow form now indicates visually if a Sow has been mated by multiple Boars during her current breeding, similarly to the visual indicators for treatments. (KB# 4132) # Performance was improved on forms that display an Animal's treatment info on multiple "pages", or panels. # The Litter Number can now be scanned during farrowing. (KB# 4134) # Minor modifications were made to the Farrow, Mate, New Boar, New Piglet, New Sow, and Wean forms to ensure that scanning behavior is consistent across the system. # The New Piglet and New Sow forms now support scanning values into their Genetics combo boxes. # The "Could not verify whether it is OK to apply" confirmation message is no longer displayed when recording a Piglet Death event. (KB# 4137) # For those Farms that tag Piglets while Farrowing, a Farrowing can now be completed later if it is interrupted while Piglets are being entered (such as by PigSMART freezing, the PDA's battery dying, etc.). After starting PigSMART back up, log in as normal, and if the PDA has a "Farrow" menu, the upgrade process will add a new button to that menu called "Complete Farrow". The user should tap this button, scan the same Sow that they were farrowing previously, and then enter the remaining Piglets using the same process. # For those Farms that wean Piglets individually, the Wean form now allows dead Piglets to be entered while weaning. A new field has been added to the panel for the Sow's event data that allows the quantity of dead Piglets to be entered. Also, while scanning Piglets, new radio buttons allow the user to indicate whether the Piglet is alive or dead; if it is dead, the cause of death can also be entered. (KB# 4141) # For those Farms that wean Piglets individually, the Wean form now allows Piglets that are not nursing on the Sow to be weaned or recorded as dead. In this case, PigSMART will automatically foster the Piglet off of its previous nurse Sow, then foster the Piglet onto the current Sow, and then wean or record the Piglet as dead. After the user scans the Piglet, they are notified that these changes will take place. # For those Farms that wean Piglets individually, the Wean form no longer allows the user to opt out of entering Piglets. # The Wean form now confirms that the Piglet quantities are correct before recording the Sow's event data. # For those Farms that wean Piglets individually, the Wean form now allows the user to stop entering Piglets before they have entered all of the Piglets that they indicated when recording the Sow's event data. The user is warned in this case that they have not finished entering Piglets, but they are still allowed to stop. Previously, PigSMART would wean the remaining Piglets automatically, but this feature has now been removed. # For those Farms that wean Piglets individually, the Wean form no longer requires that a quantity of Piglets be entered that matches what PigSMART "thinks" is on the Sow. The user is warned if their quantity differs from what PigSMART expects, but they are still allowed to continue and enter Piglets. # Part Weans can now be done by Farms that do not wean their Piglets individually. # When the soft input panel is opened, the portion of the form that is above it becomes scrollable, allowing the user to see what they are entering into fields that are positioned lower on the form. (KB# 4133) Bug Fixes # Fixed the inability to record Positive Preg Check events, due to dates being calculated incorrectly internally. *# Fixed a Sow, and her Piglets, not receiving the "MULTI" Sire ID during farrowing if multiple Boars were mated with the Sow during her current breeding. (KB# 4131) # Fixed PigSMART exiting unexpectedly if an error occurs while weighing an Animal. (KB# 4135) # Fixed the Wean form's Piglet existing location and Piglet new location fields being BOTH hidden or shown, when the desktop application is used to hide or show only one of them. # Fixed the Piglet Death form's Sow existing location and Piglet existing location fields being BOTH hidden or shown, when the desktop application is used to hide or show only one of them. # Fixed the user being able to scan values into fields that are not visible. * Fixed the inability to run the desktop application if the PDA sychronization service is not installed. Version 3.2 New Features * Several reports can now be "previewed" on the Home form. That is, those reports are displayed, along with the number of affected animals, in the "Current Events" list that was previously divided into "Today" and "Tomorrow" sections. Double-clicking a report opens a preview of that report, using the default filter criteria. If it takes more than a few seconds to load the report data, a window is now displayed that shows progress. * Only those databases that are compatible with PigSMART can be selected from the combo box on the Login form. The check for compatible databases is done while loading the Login form. If the check takes more than a few seconds, a window is now displayed that shows progress. * The current database can now be changed via the new "Database" menu on the Home form. # PigSMART can now be installed onto Windows Mobile 5 devices. # PigSMART now prevents status-changing events from being entered out of order, by requiring that the date for a status-changing event be more recent than the date from the Animal's previous status-changing event. For example, if an Animal's most recent status-changing event is a Pig2Gilt event that occurred on 12/11, PigSMART will not allow a Mate event to be entered on that Animal using a date before 12/11. If the previous status-changing event could not be determined (which is possible if, for example, the previous status-changing event is very old, and it was thus filtered out before being synced to the PDA), then a warning message is displayed. This warning is not displayed for events that are the first in the sequence, such as NF Piglet, New Sow, Pig2Gilt, etc. # PigSMART no longer "powers on" and "powers off" ID scanners and scales, but rather, it "connects to" and "disconnects from" ID scanners and scales. This should help alleviate any ambiguity that may cause the user to assume that PigSMART is capable of physically powering on and powering off ID scanners and scales -- PigSMART does not have this capability. # The error messages that are displayed when an error occurs while connecting to an ID scanner or a scale are now more descriptive. # The sync process now provides much more user feedback. # The sync process is now much more responsive to being canceled, including when the PDA is disconnected from the desktop PC. # The "The ___'s next service date (mm/dd/yy) has passed" confirmation message is no longer displayed. # Blank values can no longer be specified for "Batch" fields. This ensures that the Boar ID must be entered when recording a Mate AI event. # Date text boxes now include a time component in addition to the date. This ensures that the time of the event is also recorded, which allows multiple status-changing events to be recorded on the same day for the same Animal. # Group numbers are now calculated using the new logic for determining the first week of the year. The first week of the year is the first week that contains both a Thursday and January 4th. # The button menus are now displayed such that they no longer contain blank spaces (which were previously being caused by invisible menu items). # "Reports" sub-menus are now hidden, because the PDA software is not currently capable of running reports. # When farrowing a Sow, the default group number is now based on the Sow's last service date, if the Sow has a last service date. # When farrowing and entering Piglets, the Sex field is no longer reset after a Piglet is entered. This allows the user to process multiple same-gendered Piglets back-to-back, without having to -- for example -- change the gender to Male for every Piglet when the user is processing males. # When farrowing, the entire farrowing operation -- including entering the Sow data, and entering all of the Piglets -- is now done within one large transaction. This fixes the situation whereby a SowParity can't be re-farrowed (due to her farrowing info already having been saved) if she is initially farrowed, but the PDA is soft-resetted while entering her Piglets. # Modified the processing of the Death and Wean events such that, if a Piglet dies or is weaned on a Sow that is not the Piglet's nurse Sow, the Piglet is automatically Fostered Off of its nurse Sow (provided that its nurse Sow is still Lactating), and then Fostered On to its death/wean Sow. The corresponding forms have been modified to display a message that allows the user to confirm that the automatic fosterings will take place. # If a Piglet is Fostered On to its nurse Sow, the Foster On event is silently ignored (because it's not necessary). # Values can now be scanned into the Genetics field on the New Boar form. # The reconciliation info label that is displayed while reconciling Piglet totals during farrowing is now easier to read and interpret. # Modified Foster Tagged Piglets form, such that the process now is as follows: 1) The SowParity is scanned first, and is only scanned once 2) The quantity of Piglets to be Fostered On is entered 3) Each Piglet to be Fostered On is scanned 4) All fosterings are processed as one big transaction 5) All Foster Offs are (still) processed automatically # Modified the error message that is displayed by the Wean form when the entered Count does not match what PigSMART expects, such that it is more descriptive, and it contains the Count that PigSMART expects. # *Upgraded to Essi35 version 3.5.28. Bug Fixes * Fixed the registration information for Essi.PigSmart.Forms.dll changing with every build. * Fixed the "Current Events" list on the Home form not refreshing if the database server and/or the database is changed in the configuration. # Fixed the "The specified module could not be found" error when logging into PigSMART for the first time on a new or hard-resetted PDA, which was caused by missing SQL Server CE files. # Fixed an exception that would occur when mating a Sow if the Sow's next service date could not be determined. # Fixed incorrect calculation of group numbers, particularly if the corresponding date is in December. * Fixed a number of events not being recorded if the event happened on the same day as the Sow's first service date. # Fixed the "Group number is invalid or not equal to the service date." message being displayed immediately after scanning a Sow on the Farrowing form. * Fixed the logic that sets a Piglet's sire ID to "MULTI" if its Sow has had multiple matings by different Boars, including if the Sow has farrowed more than once. # Fixed the Symbol PPT8xx barcode scanners not scanning some specific types of barcodes. # Fixed the Piglet's dam ID not being written to the Piglet record when processing an NF Piglet event. * Fixed the Sow's deaths total not being updated after syncing a Death event. Version 3.1 New Features * Modified the database to further support the Euthanize event. * Added the new configuration form, which currently only supports working with Farms, but will eventually completely replace the old configuration form. This form can be opened from the Home form, via the "File" -> "More configuration options..." menu item. # Improved the error message that is displayed when the user enters a numeric value that is out of range. * Removed some stored procedures from the databse that are no longer in use. * Changed the default SQL Server login from "pigsmart" to "pigsmartuser". * Upgraded to SetUpDatabase version 1.4. *# RF IDs are no longer required to start with "985". * The "Statistics" button on the Home form now opens the Statistics form. * Upgraded to Essi35 version 3.5.27. Bug Fixes # Fixed some miscellaneous clean-up issues that would occur if the PDA is synced multiple times without restarting PigSMART. * Fixed the Setup.exe not correctly detecting that the PigSMART.msi has successfully installed, including those situations in which the user elects to not install the desktop application feature. * Fixed some Essi.PigSmart.Interop.dll registration issues in PigSMART.msi. * Fixed Interop.EssiPigSmartForms.dll getting out-of-sync if changes are made to Essi.PigSmart.Forms.dll. Version 3.0 New Features # Added two forms for recording fosterings. One form is used when the current Farm doesn't foster Piglets individually, and the other form is used when the current Farm DOES foster Piglets individually. The appropriate form is opened by default according to the configuration, which indicates whether the current Farm fosters Piglets individually. After the default form is opened, the user can switch between the two forms by using a special button that is on both forms. *# Events are no longer logged such that processing errors are ignored. These processing errors are emitted by the stored procedures that are called while syncing. These processing errors are now recognized by the sync process, and will cause all of the database changes that were made during the sync to be rolled back, and the error will be reported to the user on the PDA. The user will then have the opportunity to address the error, and attempt syncing again. *# Improved the intelligibility of some error messages that are emitted while syncing. # Improved the performance of situations in which an Animal is being looked up that is not a Sow. *# Added a configuration setting for the length of time that is allowed between a Sow's wean date and their next Foster On event, when the Sow is Open. It defaults to 1 day. There is currently not a user interface for configuring it; if you would like this value to be changed, please contact E.S. Systems. # Recording of Nurse On events is now explicitly disallowed, since the implementation for Nurse On events is incomplete. This will not impact typical usage, since no form exists for recording Nurse On events. *# Upgraded to Essi35 version 3.5.26. Bug Fixes * Fixed out-of-date versions of Essi.PigSmart.Workstation.exe being included in the installation package. * The "pigsmart" SQL Server user is now given the "dbcreator" server role. This fixes the inability to restore database backups using the "Tools" form in Essi.PigSmart.Workstation.exe. # Fixed the sync process such that fosterings are actually processed. Previously, nothing would be done to process fosterings, and no error would occur. *# Fixed sync errors sometimes not being sent from the server to the PDA. # Fixed the Log In form taking a long time to load after syncing. The delay has been moved to the end of the sync process, and as a result, syncing now takes slightly longer. A message is displayed during the delay that describes it. Version 0.10 New Features # A count of at least 1 is now required in order to process a LitterDeath event. # Added the Litter Death form. # Added the Piglet Death form. # Validation of the Parity for Sows and Gilts is now separate (since a Gilt's Parity must be 0, and a Sow's Parity must be between 1 and 30, inclusive). *# Event Results with a results_desc of "source" now map to the 'source farm' data type instead of the 'semen' data type. This means that existing databases whose Event Results specify a results_desc of "source" (to indicate the 'semen' data type) should be manually changed to specify "semen" instead. # Added the New Sow form. * Added Essi.PigSmart.Workstation.exe, which contains the new Home form, as well as the licensing logic that was previously in Essi.PigSmart.Licensing; this replaces PigSMART.exe. * Removed Essi.PigSmart.Licensing.dll, since its functionality has been moved into Essi.Pigsmart.Workstation.exe. * Added Essi.PigSmart.Forms.dll, which is used by Essi.PigSmart.Workstation.exe to open forms that were previously part of PigSMART.exe. # Added the New Boar form. # Added the New Piglet form. It is now used to process NFPIGLET events instead of the generic event form. # Improved the performance when loading treatment information, which affects several forms. # The form that is displayed when multiple Animals match the lookup criteria now loads faster, displays differently those Animals that have treatments on record, and displays "Weaned" as the Status for weaned Piglets. # Improved the performance of Animal lookups by looking up Sows first, followed by Piglets, then Boars. # Improved the performance of looking up Boars and Piglets by Alternate ID or location code. # Improved the performance of looking up Sows by group number. # Improved the performance of looking up Recent Events by event code. # Improved the performance of looking up Operators. # Added the Status form. # Added the new configuration setting AnimalTreatmentInfoCachingThresholdInSeconds, which defaults to 10, and modified the form that is displayed when multiple Animals match the lookup criteria, such that -- if this threshold is exceeded while it is loading treatment info for the matching Animals -- it loads all Animal treatment info to reduce the remaining loading time. Note that there is not currently a user interface for configuring this setting. # Added the Confirm Time form, which is displayed during startup if the PDA's time is earlier than the time of the last event that was recorded, and allows the user to set the correct time. This helps to ensure that events are not recorded using an incorrect time (since the default time of events comes from the PDA's time). # SD cards are now identified as non-volatile storage (for storing the configuration file) if the PDA mounts the SD card as the path "\SD Card". # Modified the processing for the Piglet Death event such that it no longer changes the Piglet's Genetic ID, Gender, Date of Birth, or Location Code. *# Modified the licensing to support different types of licenses, based on the number of Sows and Gilts that the farm has. As such, the system now restricts adding Sows and Gilts, according to the license type. Any copies of PigSMART that were previously activated will need to be re-activated with a specific license type; users will be prompted to re-activate the first time that they run Essi.PigSmart.Workstation.exe. Users should re-activate PigSMART before attempting to sync PDAs that use this version of the software. New installations will receive a trial license with a license type of "5001+ active Sows and Gilts". # The PDA software now requires that the software be licensed before allowing users to log in. # Improved the performance of looking up Boars, Piglets, and Sows by status code. * Added Essi.PigSmart.Interop.dll, which is intended to contain .NET code that is accessible via COM. It currently contains functionality for accessing the license information. * Added the About form, which provides information about the current installation, along with buttons for checking and changing the license. This form can be opened via the new Help menu on the Home form. * Essi.PigSmart.Server.exe and Essi.PigSmart.Workstation.exe now include support information. *# Upgraded to Essi35 version 3.5.25. Bug Fixes # If entering IDs for a new animal, scanning a new ID no longer clears the other ID fields. This affected the Enter Piglets form when Farrowing. # Fixed some situations where scanning a location RF ID when looking up an Animal did not properly resolve that location RF ID to a location code. # Fixed some incorrect message box captions and icons. # Fixed Piglets with custom genders (i.e. not male or female) not being included in the PDA database. Their maximum age is determined by the new column Farms.max_piglet_age_for_pda_custom_genders (which defaults to 220), and whether they are included is determined by the new column Farms.include_piglets_with_custom_genders_in_pda_database (which defaults to 1). Note that there is not currently a user interface for configuring these columns. # Fixed the Sync form incorrectly reporting that the sync was successful if a new database was not received, because a new database should be received on every sync. # Fixed dead Piglets being moved when their (former) nurse Dam is moved. # Fixed dead Piglets being weaned automatically by the system when there are Piglets still remaining to be weaned, yet the user has indicated that they are done weaning Piglets. Known Issues * After upgrading to this version, the desktop and start menu shortcuts will disappear. To restore them, go to Add/Remove programs in the Control Panel and repair the PigSMART installation. Version 0.9 (June, 2012) New Features *# Upgraded to Essi35 version 3.5.23. * The sync service now automatically restarts if an error occurs during syncing. Previously, the user would have to restart the sync service manually. # A message is now displayed at the end of the sync process that indicates whether the sync was successful. *# The first day of the week is no longer (effectively) hard-coded to Sunday; it can be configured to be any day of the week. This affects how group numbers are calculated. Note that there is not currently a user interface for configuring the first day of the week; contact E.S. Systems support for assistance. # If attempting to farrow a Sow, and her last service date is less than 110 days ago or more than 125 days ago, the associated error messages are now displayed immediately after the Sow is scanned, instead of allowing the user to enter farrowing information anyway and then stopping them when they attempt to process the farrowing. # If attempting to farrow a Sow, and the Sow does not have a last service date, the user is now prompted to accept a last service date that is calculated by the system (which is the current date minus the "days mate to farrow" configuration setting). * When farrowing, each Piglet's sire ID is now set to "MULTI" if the Sow has had multiple matings by different Boars since her last farrowing. # The reconciliation form for weaning now has an "Unknown" field, which is used by the user when there is a quantity of Piglets to which something has happened that they don't know. # An Animal's status is now changed to Dead when a Euthanize event is applied. * PigSMART is now licensed, per seat, for 30 days or 30 uses, whichever comes first. Contact E.S. Systems support to activate your copy of PigSMART, which will allow you to enjoy unlimited usage. Bug Fixes * Fixed the sync service stopping if an error occurs while sending an error message to the PDA. # Events logs can now only be synced successfully once, since syncing the same events log again would likely cause data duplication or other issues. # Fixed requiring a restart of the PDA application before updated Farms table configuration settings can be used. Version 0.8 (June, 2012) New Features *# Upgraded to Essi35 version 3.5.22. * Upgraded to Setup version 1.4. * Upgraded to SetUpDatabase version 1.3. * Added Role support to setup. The following Roles are now selectable by the user at the beginning of setup: Server, Workstation, Workstation and Server. * Setup now configures Windows Firewall to open port 1433 for SQL Server. * Updated Known Issues. Bug Fixes * Fixed Setup no longer detecting that PigSMART is installed after the user runs a report (and possibly after other functions). * The "DBSERVER" setting now defaults to the computer name instead of "(local)", which fixes the inability to connect to SQL Server on some versions of Windows using the default settings. Version 0.7 (March, 2012) New Features *# PigSMART now uses the new logo. # Changed the name of the application shortcut on the PDA from "PigSmart" to "PigSMART". * Added some additional issues to "Known issues.txt". * Updated the copyright notices in each .exe, .dll, and form. * Instances of "Digital Angel" (and variations thereof) have been changed to "E.S. Systems, inc.". * Filename and code instances of "DFAM" have been changed to "PigSMART". * Instances of "Destron" or "Destron Fearing" have been changed to "E.S. Systems" (or whatever would be contextually appropriate). Bug Fixes * Fixed Essi.PigSmart.Server needing to be stopped or restarted if the user attempts to restore or delete the database at some point after a PDA has synced. * Fixed non-admin users being unable to log into PigSMART under Windows XP, due to non-admin users not having access to HKEY_LOCAL_MACHINE by default (which is required, now that PigSMART settings are stored in HKEY_LOCAL_MACHINE). Version 0.6 (March, 2012) New Features * IIS is no longer required in order to run reports. * PigSMART settings are now stored in HKEY_LOCAL_MACHINE instead of HKEY_CURRENT_USER, which resolves setup issues, sync service issues, and allows different Windows users to use the same settings when running PigSMART. * Upgraded to Setup version 1.2.0.0. * Upgraded ManualDataCorrectionUtility to .NET 3.5 SP1. * Added ManualDataCorrectionUtility to the main PigSMART installation package as a new feature. It's selected to install by default. * Upgraded to Essi35 version 3.5.17. Bug Fixes * Fixed mscomctl.ocx not being registered by the setup. Version 0.5 (February, 2012) New Features * Miscellaneous changes to hacking.txt to reflect the current implementation. * Removed the SwitchFiles project, since it's not being used anymore. * Miscellaneous database corrections for SPG. * Changed the default database name from "SwineHerd" to "Swineherd", for backwards compatibility. * Changed the default database authentication credentials to no longer use the "sa" account. * It's no longer required to drop the existing template database before running the build script. * The build script now shrinks the template database before backing it up to the .bak file. * Overhauled the setup to use ESSI Setup and Wix instead of InstallShield, and implemented it to use ESSI SetUpDatabase for setting up the database. The new setup supports installation onto 32-bit and 64-bit versions of Windows XP, Windows Vista, Windows 7, Windows Server 2003, and Windows Server 2008. * Added the PigSMART-specific resource assembly for use by Setup. * Added the PigSMART-specific plugin assembly for use by SetUpDatabase. * Overhauled the build process to build _everything_, and to build it into the "redist" folder. After building, the contents of the "redist" folder is suitable for distribution as a .zip, a CD, etc. * Upgraded to Essi35 version 3.5.16. * Added "Known issues" document. * Deleted files used by the old setup process. Bug Fixes * Fixed the setup not registering tabctl32.ocx and msflxgrd.ocx. version 0.4 (September, 2011) New Features * Essi.PigSmart.Server now emits a warning message if a raw event value can't be converted to a strong data type, instead of silently ignoring the value. * Essi.PigSmart.Server now uses a single database connection to process the entire EventsLog, instead of creating, opening, and closing a database connection for each event in the EventsLog. This improves sync time slightly, and uses slightly fewer resources. * Essi.PigSmart.Server now processes a PDA's events log transactionally. This means that all of the database changes resultant from processing an events log will only be committed if every event in the events log processes successfully. If any one event fails to process, all database changes for that entire events log are rolled back. This is useful for maintaining data integrity if the user performs events that are actually a collection of individual events, such as farrowing or weaning a Sow; if any of those individual events fails processing, then none of them will be processed. Previously, data would have to be manually corrected if an events log partially failed processing. * Essi.PigSmart.Server no longer creates events logs for successfully- and unsuccessfully-processed events. This functionality is no longer be needed, now that events logs are processed transactionally, because it's no longer be possible for an EventsLog to be processed partially successfully and partially unsuccessfully. Complete events logs received from the PDA are still archived as before. # Essi.CF.PigSmart.Client now provides better user feedback during time-consuming operations. * Modified the Wix setup to provide Typical, Complete, and Custom installation options. * Everything from the old InstallShield setup (except for the functionality in the VB scripts) has been copied into the Wix setup. This means that it now installs the PigSMART desktop app, in addition to Essi.PigSmart.Server and the installation files for Essi.CF.PigSmart.Client. These are organized into three installation features. The PigSMART desktop app is installed by default when doing a Typical installation; Essi.PigSmart.Server, and the installation files for and Essi.CF.PigSmart.Client, are only installed if doing a Complete installation, or if they are selected manually when doing a Custom installation. * The Wix setup now creates the registry settings that were previously being created by the InstallShield setup via a VB script. For some settings (such as server name, database name, user name, and password), the settings are only created if they do not already exist in the registry. This prevents the user from having to re-configure PigSMART every time that they install a new version. * The Wix setup has been re-branded with PigSMART logos. * Building has now been automated by build.bat and PigSMART.build. * Any errors or warnings that happen on the server when synchronizing are now sent to the PDA and displayed on its screen. Errors now halt the sync. Previously, these errors would be silently ignored, and a new PDA database would be built and sent even if part of the PDA's events log failed to process. Bug Fixes * Essi.PigSmart.Server now correctly converts raw event values to strong data types when the raw value contains leading or trailing whitespace. # Fixed instances in Essi.CF.PigSmart.Client where confirmation message boxes appeared to stay open long after responding to them, when in actuality, it was simply that the form underneath needed re-painting. * Modified sp_WeanSow() such that it only aggregates the @wean_weight into the Sow_Parity's total_wean_weight if the current Farm doesn't wean Piglets individually. This fixes the situation whereby the total_wean_weight would end up larger than expected if the current Farm DOES wean Piglets individually, because the call to sp_WeanSow() would be followed by a call to sp_Wean() for each Piglet, and sp_Wean() adds the Piglet's weight onto total_wean_weight. version 0.3.1 (August, 2011) Bug Fixes * Fixed incorrect handling of "1" and "0" as booleans by the desktop sync service. version 0.3 (August, 2011) New Features # Modified all labels that show Animal treatment information to also display the date of the treatment. # Date fields no longer include the time by default. # When an event is successfully processed, a "success" message box is shown for a length of time, instead of displaying a normal message box which must be closed by the user. The length of time can be configured via the configuration form; it defaults to 1. # Split the "Misc" tab on the configuration form into "Settings 1" and "Settings 2". # A number of success messages are less generic now, which should be clearer to the user. # When a set of fields is displayed, and Enter is pressed in the final field, the focus moves to the form's Ok or Next button, instead of moving back to the first field. # Simplified the captions on all forms. Generally, the caption will be the event that is being recorded. Previously, the caption would change after scanning an Animal to include the Animal's RF ID or Visual ID, which wasn't helpful because there is often not enough horizontal screen space to display the event AND the ID. # Re-organized the tabs on the configuration form such that the most frequently-needed tabs are listed first. # Updated the address information on the "About" form. # Updated the assembly information for all assemblies to be more current and descriptive. # The "Reset" menu displayed at the bottom of each form is now called "Re-connect". # Buttons now display a focus rectangle when they have the focus, and their text is centered and split between multiple rows if it is too long to fit on a single row. # For "Location" fields, if a Location is scanned when that field does not have the focus, the focus stays in the current field. Previously, the focus would be moved to the field following the "Location" field. # Custom genders (i.e. genders besides male and female) are now supported. # The system now prevents you from tagging an Animal using an RF ID that is already in use as a Location RF ID. # The captions for look up fields (i.e. RF ID, Visual ID, Alternate ID, and Location) now match the old system as closely as possible. # The captions for fields on the "ReTag" form now match the old system as closely as possible. # The system now ensures that Weaned and Part Wean events can only be applied to Lactating Sows. # The system now ensures that Part Wean can only be applied if the current Farm weans Piglets individually. # Added the Wean form, which allows Sows and Piglets to be weaned. * Animals.dll is no longer required to be registered in order for PDAs to synchronize with the desktop sync service. This also means that there does not need to be a specific version of Animals.dll installed in order to sync PDAs. * The desktop sync service now additionally looks for database connection settings in HKEY_CURRENT_USER, when it was previously only looking in HKEY_LOCAL_MACHINE. This eliminates the need to manually copy database connection settings from HKEY_CURRENT_USER to HKEY_LOCAL_MACHINE after changing those settings in the desktop PigSMART application, provided that the desktop sync service is manually configured to run as the same Windows user that uses the desktop PigSMART application. Bug Fixes # Fixed the tab order on the "Start" form. # Fixed Enter keypresses being handled by the incorrect control if pressing Enter causes the focus to move to another control. # NULL Animal look up criteria (i.e. RF ID, Visual ID, Alternate ID, and Location) no longer cause errors when recording an event. # Reduced flickering and performance issues for a number of forms when navigating forward or backward. version 0.2 (June, 2011) New Features # Added UI to Config form for configuring which types of Piglets can be tagged after farrowing a Sow. # Added UI to Config form for configuring whether the Farrowing date should default to today when farrowing a Sow. # Most memory operations are now transactional, which allows the memory state to be restored if an error occurs during processing. # Added Farrowing form, which allows a Sow to be farrowed, along with the Enter Piglets form, which allows Piglets to be tagged after farrowing a Sow. # Essi.CF.PigSmart.Client.exe now has an icon. # Added Farms.farrow_event_maximum_days_in_past_of_sow_parity_farrowing_date column, which allows configuration of the value that specifies how far in the past, in days, that a SowParity's FarrowingDate can be in order to be used when recording a Farrow event. This value defaults to 28. Note that there is currently no UI for configuring this value. # Added Farms.farrow_event_maximum_days_in_past_of_sow_parity_last_service_date column, which allows configuration of the value that specifies how far in the past, in days, that a SowParity's LastServiceDate can be in order to be used when recording a Farrow event. This value defaults to 150. Note that there is currently no UI for configuring this value. # Added Farms.farrow_event_too_soon_error_threshold_in_days column, which allows configuration of the value that specifies when it is too soon for a SowParity to farrow, stopping the user with an error. This value defaults to 110. Note that there is currently no UI for configuring this value. # Added Farms.farrow_event_too_soon_warning_threshold_in_days column, which allows configuration of the value that specifies when it is too soon for a SowParity to farrow, but the user can still continue. This value defaults to 113. Note that there is currently no UI for configuring this value. # Added Farms.farrow_event_too_late_warning_threshold_in_days column, which allows configuration of the value that specifies when it is too late for a SowParity to farrow, but the user can still continue. This value defaults to 119. Note that there is currently no UI for configuring this value. # Added Farms.farrow_event_too_late_error_threshold_in_days column, which allows configuration of the value that specifies when it is too late for a SowParity to farrow, stopping the user with an error. This value defaults to 125. Note that there is currently no UI for configuring this value. # Added Farms.farrow_event_litter_size_in_piglets_warning_threshold column, which determines how many Piglets can be in a litter before the farrowing form will warn you. This value defaults to 20. Note that there is currently no UI for configuring this value. # Added "Reset" menu option to most forms, which allows the user to manually reset any connected scanners or scales, without having to log out and log back in. # The configuration file is now stored in non-volatile memory on the Dell Axim X50 PDA. # Miscellaneous minor UI adjustments. Bug Fixes # Modified the PDA setup to no longer include mscorlib.dll from the desktop .NET Framework. # When farrowing a Sow, quantities entered for Fostered On, Fostered Off, and Dead are no longer doubled. # Fixed errors occurring when objects are weighed as part of generic events that are recorded back-to-back. # Fixed the input focus being restricted to animal look-up fields when cycling through fields by pressing Enter. # Miscellaneous minor bug fixes. version 2.4.9 (September, 2007) Bug Fixes # the PDA was recording a the sow's previous location on piglets during farrow event IF the sow is moved to a new location during the farrow event. version 2.4.8 (September, 2007) Bug Fixes * Piglet tab on Sow/Gilt screen was invisible. version 2.4.7 (August, 2007) Bug Fixes * Animal event screen does not allow pig2gilt event * Animal edit screen crashes when you double click non-existent dam_id (transferred piglet, dam exists in other database) * Animal edit screen would not display animal data if origin farm was incorrect. * Transfer program would import incorrect animal breed groups * Transfer program would set incorrect animal status after transfer in # PDA would not automatically continue to next piglet at weaning when reading weight from scale # PDA model Symbol PPT8800 was built against wrong library. version 2.4.6 (June, 2007) Released transfer.exe only Bug Fixes * transfer was failing when sow parity record for parity 0 already exists * transfer was only transferring one one animal event results per animal event * transfer was not inserting proper operator id per animal event * misaligned label caption on transfer in form. * rf_id and/or visual_id could be wrong after transfer when animal was retagged in other farm. version 2.4.5 (June, 2007) New Features Bug Fixes * 3377 Program error trying to add a new farm * Animal Event Status History was built incorrectly if an animal was weaned on same day as foster on events but synced later. e.g. Wean a sow at 1PM Foster on to same sow at 2PM Sync PDA Wean the same sow again at 3PM End of day. Go home Next day, sync the PDA at 7AM -> the second wean event now appears before the first wean event. # A variable was not set properly to prevent NFPiglet events from PDA version 2.4.4 (May, 2007) New Features * Rebuilt the install program to install the latest help documentation Bug Fixes * Update the current version in the registry version 2.4.3 (April, 2007) New Features Bug Fixes * 3233 The transfer program is not setting correct animal_status and animal_type * SQL update script no longer adds invalid sow_parity records * 2831 Adding piglets from piglets tab of a sow does not set correct date entered system * 3074 oldid field will not save on Animal status screen * 2809 Sow Card prints with incorrect sort order Known Issues version 2.4.2 (March, 2007) New Features * Added ability to enter a list of visual_ids seperated by a comma on reports where you can enter a visual_id * Cleaned up report form to align objects a little better. Cleaner appearance. Bug Fixes * Parity end date was not recorded corrcetly as the end-of-day time * transfer program now correctly sets the origin farm key value in animals table Known Issues * Transfer program does not correctly set animal_type and animal_status when transferring in an animal and the merge option is selected. * SQL update script adds incorrect sow_parity records to invalidate historical statistics report version 2.4.0 (March, 2007) New Features #Added the ability to change animal location during a Mate, Farrow, and Wean event. (Adds a NEW LOC event) *Added the ability hide the new location field on the Mate, Farrow, and Wean event screens. (Use PigSMART configuration | Screens) *Added the ability hide the new rf_id field on the Wean event screen. (Use PigSMART configuration | Screens) *Added the ability to limit the number of piglets that download to a PDA by piglet age in days and by piglet gender. *#Updated help document *From piglet screen you can double click in Dam ID field to move directly to Dam *From piglet tab on Sow?gilt screen you can double click on a piglet id to go directly to the Piglet record. *If a search by alt_visual_id or loc results in multiple hits, show search screen with all hits Bug Fixes #automatically advance the cursor on the PDA when you hit/tap enter #Alligned the data entry boxes on the PDA #warn the user if an event is backdated more than 5 days. Warn on future dates. #Have to hit Enter every time you weigh a pig at weaning #Corrected tab order on Mate screen. *Enhanced the animal look up screen. It was using extremely slow searching on visual_id type-ahead *You can now look up an animal by alt_visual_id on the main animal screen *oldid field was not updating on animal status screen *new breed events could grab the wrong group number under some circumstances. *transfer program now populates the farm_id correctly based on where the animal came from. *Adding piglets from piglets tab of a sow does not set correct date entered system *sow card: incorrect sort order. *If searching piglets default to showing piglets limited by age. *Search on loc, and alt_visual_id was failing *When historical statistics displays results by Group and the date period spans a year the group numbers are out of sequence. This is because the sequence number starts at 1 for every calender created. *From the piglets tab of the pig form in PigSMART piglets could be deleted without selecting a piglet from the list. Also, the panel would sometimes behave as through a piglet were being edited even when no piglet was selected. This could cause a piglet to be created with no DAM ID or Sire ID. version 2.3.336 (October, 2006) KB Issue Description 2126 Allow for a POS PREG CHK on an OPEN animal 2148 Remove 45 day warning after first service 1991 Future dates on events cause problems 2009 The animal screen loads too many animals in the drop down lists 2011 Deleting an event does not correctly adjust other tables 2033 Check status before applying Skip Heat or Heat No Service events 2034 Add a "delete query" option to delete ad-hoc reports 1976 New Event PART WEAN 1977 Litter Death Count in farrowing tab not changing when Litter Death Event is deleted 2317 new report : Rebreed Lag 2352 Add a shortcut to TWedgeCE on the desktop during installation 2360 update user status during an update about time of database update 2066 Mate event on PC does not check for status changing events 2096 Add a new screen to PigSMART to maintain the location_rf_ids table 2101 Animal screen takes long time to load. 2225 Create an export utility to extract animal events from PigSMART 2275 Sows due to farrow report stops working if sows have medicate or vaccinate events 2284 Historical Statistics - Remove summary column from from 1st page 2675 Setup detects duplicate parities but erases the log file 1993 KPI Report Crashes on unweaned pig inventory 1979 Add event for status change. 2298 Reports Menu - Change Order 2153 Make Total Birth Weight available (separately from Post Farrow Weight) for entry from handheld while entering a farrow event. 2151 Breedings Tab does not update when new mate event is entered 2008 genetics should default to blank value 2036 minor changes to GUI of animal edit screen 1924 Incorrect Warning: it has been more than 5 days since 1st mating 1961 Retag event on PDA does not validate animal 1970 Sows Due To Farrow report has incorrect sort order 1968 VERIFY created events: when you create a farrow event on the PDA AND ON PC 2064 Store visual_id as upper case. 2103 New Report: Returns to service report 2659 Historical Statistics : Verify preweaning mortality rate when Break by Genetics is selected 1926 Add freeform data entry fields to Animal Screen 1911 Warn the user if the target OS is Windows 98, Windows ME, Windows 2000 or Windows XP Home. 2070 Allow setup to skip updating the PigSMART DB. 2507 Create help file for PigSMART Installation. 1984 Breedings event does not enter parity correctly for sows entered with parity > 0