Releases: LightSys/midwife-EMR
0.2.21
Changes in this release
- Made date of birth an optional field with warning if not filled.
- Errors on new patient creation retain the fields already filled.
- Uses shortName on prenatal exam summary page.
- Refactored charts on home page to display more useful information.
- If LMP not set in Deworming report it is handled correctly.
- Fixed logic of prenatal day and location scheduling on the general tab.
- Made choosing supervisor while in attending role more understandable.
- Fixed bleed over of some long prenatal exam notes in summary report.
- Fixed tests.
Instructions after upgrading code
- Run grunt at the command line
grunt
0.20.20
Changes in this release
- Cleans up all orphaned tables in pregnancy delete.
- Minor refactoring of Master List Report.
- Displays proper msg to user if no records for Master List Report.
- Various code cleanups based upon jshint.
- Renamed displayName to shortName and added new displayName field to user table.
- Adjusted Phil Health report to use maidenname as the middle name.
Upgrade instructions
Run the following SQL against the database in order to upgrade.
ALTER TABLE user CHANGE displayName shortName VARCHAR(100);
ALTER TABLE user ADD COLUMN displayName VARCHAR(100) NULL AFTER shortName;
ALTER TABLE userLog CHANGE displayName shortName VARCHAR(100);
ALTER TABLE userLog ADD COLUMN displayName VARCHAR(100) NULL AFTER shortName;
DELIMITER $$
DROP TRIGGER IF EXISTS user_after_insert;
CREATE TRIGGER user_after_insert AFTER INSERT ON user
FOR EACH ROW
BEGIN
INSERT INTO userLog
(id, username, firstname, lastname, password, email, lang, shortName, displayName, status, note, isCurrentTeacher, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (NEW.id, NEW.username, NEW.firstname, NEW.lastname, NEW.password, NEW.email, NEW.lang, NEW.shortName, NEW.displayName, NEW.status, NEW.note, NEW.isCurrentTeacher, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, "I", NOW());
END;$$
DELIMITER ;
DELIMITER $$
DROP TRIGGER IF EXISTS user_after_update;
CREATE TRIGGER user_after_update AFTER UPDATE ON user
FOR EACH ROW
BEGIN
INSERT INTO userLog
(id, username, firstname, lastname, password, email, lang, shortName, displayName, status, note, isCurrentTeacher, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (NEW.id, NEW.username, NEW.firstname, NEW.lastname, NEW.password, NEW.email, NEW.lang, NEW.shortName, NEW.displayName, NEW.status, NEW.note, NEW.isCurrentTeacher, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, "U", NOW());
END;$$
DELIMITER ;
DELIMITER $$
DROP TRIGGER IF EXISTS user_after_delete;
CREATE TRIGGER user_after_delete AFTER DELETE ON user
FOR EACH ROW
BEGIN
INSERT INTO userLog
(id, username, firstname, lastname, password, email, lang, shortName, displayName, status, note, isCurrentTeacher, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (OLD.id, OLD.username, OLD.firstname, OLD.lastname, OLD.password, OLD.email, OLD.lang, OLD.shortName, OLD.displayName, OLD.status, OLD.note, OLD.isCurrentTeacher, OLD.updatedBy, OLD.updatedAt, OLD.supervisor, "D", NOW());
END;$$
DELIMITER ;
0.2.19
Changes
- Adds unique constraint on the MMC #, a.k.a. dohID to help prevent duplicate entries.
- Removes dependency upon git-history package and uses VERSION file to hold revision.
- Adds a new Inactive report.
- Adds a isValidDate() utility function.
- Sorts medicines in drop down display.
- Allows user specified sort order of medicines and vaccinations.
- Fixed default data SQL, optional when loading a new database.
Upgrade instructions
- Address duplicate records based upon MMC # (aka dohID)
Note: the new unique index on the patient.dohID field will require eliminating duplicate records before applying the create index statement below. This will require using the application to delete the duplicates and then using the following SQL to clean up the orphaned patient records. (It is on the to do list to not leave orphaned patient records during a delete.)
DELETE patient FROM patient LEFT JOIN pregnancy ON patient.id = pregnancy.patient_id WHERE pregnancy.patient_id IS NULL;
- Apply the following SQL after duplicates have been addressed.
CREATE UNIQUE INDEX patient_dohid_idx ON patient(dohID);
ALTER TABLE medicationType ADD COLUMN sortOrder TINYINT NOT NULL DEFAULT 0 AFTER description;
UPDATE medicationType SET sortOrder = 1 WHERE id = 3;
UPDATE medicationType SET sortOrder = 2 WHERE id = 4;
UPDATE medicationType SET sortOrder = 3 WHERE id = 5;
UPDATE medicationType SET sortOrder = 4 WHERE id = 6;
UPDATE medicationType SET sortOrder = 5 WHERE id = 1;
CREATE UNIQUE INDEX medicationType_sortOrder_idx ON medicationType(sortOrder);
ALTER TABLE medicationTypeLog ADD COLUMN sortOrder TINYINT NOT NULL DEFAULT 0 AFTER description;
DELIMITER $$
DROP TRIGGER IF EXISTS medicationType_after_insert;
CREATE TRIGGER medicationType_after_insert AFTER INSERT ON medicationType
FOR EACH ROW
BEGIN
INSERT INTO medicationTypeLog
(id, name, description, sortOrder, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (NEW.id, NEW.name, NEW.description, NEW.sortOrder, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, "I", NOW());
END;$$
DELIMITER ;
DELIMITER $$
DROP TRIGGER IF EXISTS medicationType_after_update;
CREATE TRIGGER medicationType_after_update AFTER UPDATE ON medicationType
FOR EACH ROW
BEGIN
INSERT INTO medicationTypeLog
(id, name, description, sortOrder, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (NEW.id, NEW.name, NEW.description, NEW.sortOrder, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, "U", NOW());
END;$$
DELIMITER ;
DELIMITER $$
DROP TRIGGER IF EXISTS medicationType_after_delete;
CREATE TRIGGER medicationType_after_delete AFTER DELETE ON medicationType
FOR EACH ROW
BEGIN
INSERT INTO medicationTypeLog
(id, name, description, sortOrder, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (OLD.id, OLD.name, OLD.description, OLD.sortOrder, OLD.updatedBy, OLD.updatedAt, OLD.supervisor, "D", NOW());
END;$$
DELIMITER ;
ALTER TABLE vaccinationType ADD COLUMN sortOrder TINYINT NOT NULL DEFAULT 0 AFTER description;
CREATE UNIQUE INDEX vaccinationType_sortOrder_idx ON vaccinationType(sortOrder);
ALTER TABLE vaccinationTypeLog ADD COLUMN sortOrder TINYINT NOT NULL DEFAULT 0 AFTER description;
DELIMITER $$
DROP TRIGGER IF EXISTS vaccinationType_after_insert;
CREATE TRIGGER vaccinationType_after_insert AFTER INSERT ON vaccinationType
FOR EACH ROW
BEGIN
INSERT INTO vaccinationTypeLog
(id, name, description, sortOrder, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (NEW.id, NEW.name, NEW.description, NEW.sortOrder, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, "I", NOW());
END;$$
DELIMITER ;
DELIMITER $$
DROP TRIGGER IF EXISTS vaccinationType_after_update;
CREATE TRIGGER vaccinationType_after_update AFTER UPDATE ON vaccinationType
FOR EACH ROW
BEGIN
INSERT INTO vaccinationTypeLog
(id, name, description, sortOrder, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (NEW.id, NEW.name, NEW.description, NEW.sortOrder, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, "U", NOW());
END;$$
DELIMITER ;
DELIMITER $$
DROP TRIGGER IF EXISTS vaccinationType_after_delete;
CREATE TRIGGER vaccinationType_after_delete AFTER DELETE ON vaccinationType
FOR EACH ROW
BEGIN
INSERT INTO vaccinationTypeLog
(id, name, description, sortOrder, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (OLD.id, OLD.name, OLD.description, OLD.sortOrder, OLD.updatedBy, OLD.updatedAt, OLD.supervisor, "D", NOW());
END;$$
DELIMITER ;
- Remove unnecessary packages
npm remove git-history
0.2.18
Changes
- Refactored address fields in pregnancy to handle a variety of address types.
- Added district field to general page and Phil Health daily report.
- Fixed the doh master report that referenced an edd field that no longer exists.
Database schema change
Upgrade by applying the following SQL. As usual, backup your database first.
ALTER TABLE pregnancy CHANGE COLUMN address address1 VARCHAR(150) NULL;
ALTER TABLE pregnancy CHANGE COLUMN barangay address3 VARCHAR(150) NULL;
ALTER TABLE pregnancy ADD COLUMN address2 VARCHAR(150) NULL AFTER address1;
ALTER TABLE pregnancy ADD COLUMN address4 VARCHAR(150) NULL AFTER address3;
ALTER TABLE pregnancy ADD COLUMN state VARCHAR(150) NULL AFTER city;
ALTER TABLE pregnancy ADD COLUMN country VARCHAR(150) NULL AFTER postalCode;
ALTER TABLE pregnancy MODIFY COLUMN postalCode VARCHAR(50) NULL;
ALTER TABLE pregnancyLog CHANGE COLUMN address address1 VARCHAR(150) NULL;
ALTER TABLE pregnancyLog CHANGE COLUMN barangay address3 VARCHAR(150) NULL;
ALTER TABLE pregnancyLog ADD COLUMN address2 VARCHAR(150) NULL AFTER address1;
ALTER TABLE pregnancyLog ADD COLUMN address4 VARCHAR(150) NULL AFTER address3;
ALTER TABLE pregnancyLog ADD COLUMN state VARCHAR(150) NULL AFTER city;
ALTER TABLE pregnancyLog ADD COLUMN country VARCHAR(150) NULL AFTER postalCode;
ALTER TABLE pregnancyLog MODIFY COLUMN postalCode VARCHAR(50) NULL;
-- ---------------------------------------------------------------
-- Trigger: pregnancy_after_insert
-- ---------------------------------------------------------------
DELIMITER $$
DROP TRIGGER IF EXISTS pregnancy_after_insert;
CREATE TRIGGER pregnancy_after_insert AFTER INSERT ON pregnancy
FOR EACH ROW
BEGIN
INSERT INTO pregnancyLog
(id, firstname, lastname, maidenname, nickname, religion, maritalStatus, telephone, work, education, clientIncome, clientIncomePeriod, address1, address2, address3, address4, city, state, postalCode, country, gravidaNumber, lmp, sureLMP, warning, riskNote, alternateEdd, useAlternateEdd, doctorConsultDate, dentistConsultDate, mbBook, whereDeliver, fetuses, monozygotic, pregnancyEndDate, pregnancyEndResult, iugr, note, numberRequiredTetanus, invertedNipples, hasUS, wantsUS, gravida, stillBirths, abortions, living, para, term, preterm, philHealthMCP, philHealthNCP, philHealthID, philHealthApproved, currentlyVomiting, currentlyDizzy, currentlyFainting, currentlyBleeding, currentlyUrinationPain, currentlyBlurryVision, currentlySwelling, currentlyVaginalPain, currentlyVaginalItching, currentlyNone, useIodizedSalt, takingMedication, planToBreastFeed, birthCompanion, practiceFamilyPlanning, practiceFamilyPlanningDetails, familyHistoryTwins, familyHistoryHighBloodPressure, familyHistoryDiabetes, familyHistoryHeartProblems, familyHistoryTB, familyHistorySmoking, familyHistoryNone, historyFoodAllergy, historyMedicineAllergy, historyAsthma, historyHeartProblems, historyKidneyProblems, historyHepatitis, historyGoiter, historyHighBloodPressure, historyHospitalOperation, historyBloodTransfusion, historySmoking, historyDrinking, historyNone, questionnaireNote, partnerFirstname, partnerLastname, partnerAge, partnerWork, partnerEducation, partnerIncome, partnerIncomePeriod, updatedBy, updatedAt, supervisor, patient_id, op, replacedAt)
VALUES (NEW.id, NEW.firstname, NEW.lastname, NEW.maidenname, NEW.nickname, NEW.religion, NEW.maritalStatus, NEW.telephone, NEW.work, NEW.education, NEW.clientIncome, NEW.clientIncomePeriod, NEW.address1, NEW.address2, NEW.address3, NEW.address4, NEW.city, NEW.state, NEW.postalCode, NEW.country, NEW.gravidaNumber, NEW.lmp, NEW.sureLMP, NEW.warning, NEW.riskNote, NEW.alternateEdd, NEW.useAlternateEdd, NEW.doctorConsultDate, NEW.dentistConsultDate, NEW.mbBook, NEW.whereDeliver, NEW.fetuses, NEW.monozygotic, NEW.pregnancyEndDate, NEW.pregnancyEndResult, NEW.iugr, NEW.note, NEW.numberRequiredTetanus, NEW.invertedNipples, NEW.hasUS, NEW.wantsUS, NEW.gravida, NEW.stillBirths, NEW.abortions, NEW.living, NEW.para, NEW.term, NEW.preterm, NEW.philHealthMCP, NEW.philHealthNCP, NEW.philHealthID, NEW.philHealthApproved, NEW.currentlyVomiting, NEW.currentlyDizzy, NEW.currentlyFainting, NEW.currentlyBleeding, NEW.currentlyUrinationPain, NEW.currentlyBlurryVision, NEW.currentlySwelling, NEW.currentlyVaginalPain, NEW.currentlyVaginalItching, NEW.currentlyNone, NEW.useIodizedSalt, NEW.takingMedication, NEW.planToBreastFeed, NEW.birthCompanion, NEW.practiceFamilyPlanning, NEW.practiceFamilyPlanningDetails, NEW.familyHistoryTwins, NEW.familyHistoryHighBloodPressure, NEW.familyHistoryDiabetes, NEW.familyHistoryHeartProblems, NEW.familyHistoryTB, NEW.familyHistorySmoking, NEW.familyHistoryNone, NEW.historyFoodAllergy, NEW.historyMedicineAllergy, NEW.historyAsthma, NEW.historyHeartProblems, NEW.historyKidneyProblems, NEW.historyHepatitis, NEW.historyGoiter, NEW.historyHighBloodPressure, NEW.historyHospitalOperation, NEW.historyBloodTransfusion, NEW.historySmoking, NEW.historyDrinking, NEW.historyNone, NEW.questionnaireNote, NEW.partnerFirstname, NEW.partnerLastname, NEW.partnerAge, NEW.partnerWork, NEW.partnerEducation, NEW.partnerIncome, NEW.partnerIncomePeriod, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, NEW.patient_id, "I", NOW());
END;$$
DELIMITER ;
-- ---------------------------------------------------------------
-- Trigger: pregnancy_after_update
-- ---------------------------------------------------------------
DELIMITER $$
DROP TRIGGER IF EXISTS pregnancy_after_update;
CREATE TRIGGER pregnancy_after_update AFTER UPDATE ON pregnancy
FOR EACH ROW
BEGIN
INSERT INTO pregnancyLog
(id, firstname, lastname, maidenname, nickname, religion, maritalStatus, telephone, work, education, clientIncome, clientIncomePeriod, address1, address2, address3, address4, city, state, postalCode, country, gravidaNumber, lmp, sureLMP, warning, riskNote, alternateEdd, useAlternateEdd, doctorConsultDate, dentistConsultDate, mbBook, whereDeliver, fetuses, monozygotic, pregnancyEndDate, pregnancyEndResult, iugr, note, numberRequiredTetanus, invertedNipples, hasUS, wantsUS, gravida, stillBirths, abortions, living, para, term, preterm, philHealthMCP, philHealthNCP, philHealthID, philHealthApproved, currentlyVomiting, currentlyDizzy, currentlyFainting, currentlyBleeding, currentlyUrinationPain, currentlyBlurryVision, currentlySwelling, currentlyVaginalPain, currentlyVaginalItching, currentlyNone, useIodizedSalt, takingMedication, planToBreastFeed, birthCompanion, practiceFamilyPlanning, practiceFamilyPlanningDetails, familyHistoryTwins, familyHistoryHighBloodPressure, familyHistoryDiabetes, familyHistoryHeartProblems, familyHistoryTB, familyHistorySmoking, familyHistoryNone, historyFoodAllergy, historyMedicineAllergy, historyAsthma, historyHeartProblems, historyKidneyProblems, historyHepatitis, historyGoiter, historyHighBloodPressure, historyHospitalOperation, historyBloodTransfusion, historySmoking, historyDrinking, historyNone, questionnaireNote, partnerFirstname, partnerLastname, partnerAge, partnerWork, partnerEducation, partnerIncome, partnerIncomePeriod, updatedBy, updatedAt, supervisor, patient_id, op, replacedAt)
VALUES (NEW.id, NEW.firstname, NEW.lastname, NEW.maidenname, NEW.nickname, NEW.religion, NEW.maritalStatus, NEW.telephone, NEW.work, NEW.education, NEW.clientIncome, NEW.clientIncomePeriod, NEW.address1, NEW.address2, NEW.address3, NEW.address4, NEW.city, NEW.state, NEW.postalCode, NEW.country, NEW.gravidaNumber, NEW.lmp, NEW.sureLMP, NEW.warning, NEW.riskNote, NEW.alternateEdd, NEW.useAlternateEdd, NEW.doctorConsultDate, NEW.dentistConsultDate, NEW.mbBook, NEW.whereDeliver, NEW.fetuses, NEW.monozygotic, NEW.pregnancyEndDate, NEW.pregnancyEndResult, NEW.iugr, NEW.note, NEW.numberRequiredTetanus, NEW.invertedNipples, NEW.hasUS, NEW.wantsUS, NEW.gravida, NEW.stillBirths, NEW.abortions, NEW.living, NEW.para, NEW.term, NEW.preterm, NEW.philHealthMCP, NEW.philHealthNCP, NEW.philHealthID, NEW.philHealthApproved, NEW.currentlyVomiting, NEW.currentlyDizzy, NEW.currentlyFainting, NEW.currentlyBleeding, NEW.currentlyUrinationPain, NEW.currentlyBlurryVision, NEW.currentlySwelling, NEW.currentlyVaginalPain, NEW.currentlyVaginalItching, NEW.currentlyNone, NEW.useIodizedSalt, NEW.takingMedication, NEW.planToBreastFeed, NEW.birthCompanion, NEW.practiceFamilyPlanning, NEW.practiceFamilyPlanningDetails, NEW.familyHistoryTwins, NEW.familyHistoryHighBloodPressure, NEW.familyHistoryDiabetes, NEW.familyHistoryHeartProblems, NEW.familyHistoryTB, NEW.familyHistorySmoking, NEW.familyHistoryNone, NEW.historyFoodAllergy, NEW.historyMedicineAllergy, NEW.historyAsthma, NEW.historyHeartProblems, NEW.historyKidneyProblems, NEW.historyHepatitis, NEW.historyGoiter, NEW.historyHighBloodPressure, NEW.historyHospitalOperation, NEW.historyBloodTransfusion, NEW.historySmoking, NEW.historyDrinking, NEW.historyNone, NEW.questionnaireNote, NEW.partnerFirstname, NEW.partnerLastname, NEW.partnerAge, NEW.partnerWork, NEW.partnerEducation, NEW.partnerIncome, NEW.partnerIncomePeriod, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, NEW.patient_id, "U", NOW());
END;$$
DELIMITER ;
-- ---------------------------------------------------------------
-- Trigger: pregnancy_after_delete
-- ---------------------------------------------------------------
DELIMITER $$
DROP TRIGGER IF EXISTS pregnancy_after_delete;
CREATE TRIGGER pregnancy_after_delete AFTER DELETE ON pregnancy
FOR EACH ROW
BEGIN
INSERT INTO pregnancyLog
(id, firstname, lastname, maidenname, nickname, religion, maritalStatus, telephone, work, education, clientIncome, clientIncomePeriod, address1, address2, address3, address4, city, state, postalCode, country, gravidaNumber, lmp, sureLMP, warning, riskNote, alternateEdd, useAlternateEdd, doctorConsultDate, dentistConsultDate, mbBook, whereDeliver, fetuses, monozygotic, pregnancyEndDate, pregnancyEndResult, iugr, note, numberRequiredTetanus, invertedNipples, hasUS, wantsUS, gravida, stillBirths, abortions, living, para, term, preterm, philHealthMCP, philHea...
0.2.17
Changes:
- Adds new Phil Health daily report
- District field is still not yet populated.
- Fixed issues related to an unpopulated lmp field
- Prenatal page display issue
- TT report issue in the lmp and AOG fields.
- Added cfg.site.titleLong as a configuration option to allow fuller site name in certain reports, etc.
- Fixed side-effect issue in getGA() in util.js that inadvertently modified the 2nd parameter if passed by reference.
Installation:
- Add the
cfg.site.titleLong
configuration option to your production/development config files. See config.global.js or config.sample.js for example.
v0.2.16
- After log out, a logout landing page appears. Users should not press the login button on that page until they are ready to login again. This should prevent most if not all login issues caused by stale login pages.
- Fixed EDD in patient header to reflect alt edd as appropriate.
- Put patient warnings each on their own line.
- Added note field to pregnancy history section of the Summary Report.
Run grunt
after checkout.
v0.2.15
Changes
- fix changeRoles by updating remaining columns (@enerve)
- Label changes per client request.
- Updated dropdown options for education levels.
- Refactored the patient header to include more information in less space.
- Do not store default of zero for number flds in prenatalExam where user specified nothing.
- Fixed improper default dates for datePicker UI in some circumstances.
Upgrade procedures.
-
Apply this SQL to the database.
INSERT INTO selectData (name, selectKey, label, selected, updatedBy, updatedAt) VALUES ('education', 'Vocational', 'Vocational', 0, 1, NOW());
-
Run grunt
Database Change
Database changes required. Run the following SQL to effect the changes and complete the upgrade to this version of the software.
ALTER TABLE labSuite DROP COLUMN viewTemplate;
ALTER TABLE labSuiteLog DROP COLUMN viewTemplate;
-- ---------------------------------------------------------------
-- Trigger: labSuite_after_insert
-- ---------------------------------------------------------------
DELIMITER $$
DROP TRIGGER IF EXISTS labSuite_after_insert;
CREATE TRIGGER labSuite_after_insert AFTER INSERT ON labSuite
FOR EACH ROW
BEGIN
INSERT INTO labSuiteLog
(id, name, description, category, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (NEW.id, NEW.name, NEW.description, NEW.category, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, "I", NOW());
END;$$
DELIMITER ;
-- ---------------------------------------------------------------
-- Trigger: labSuite_after_update
-- ---------------------------------------------------------------
DELIMITER $$
DROP TRIGGER IF EXISTS labSuite_after_update;
CREATE TRIGGER labSuite_after_update AFTER UPDATE ON labSuite
FOR EACH ROW
BEGIN
INSERT INTO labSuiteLog
(id, name, description, category, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (NEW.id, NEW.name, NEW.description, NEW.category, NEW.updatedBy, NEW.updatedAt, NEW.supervisor, "U", NOW());
END;$$
DELIMITER ;
-- ---------------------------------------------------------------
-- Trigger: labSuite_after_delete
-- ---------------------------------------------------------------
DELIMITER $$
DROP TRIGGER IF EXISTS labSuite_after_delete;
CREATE TRIGGER labSuite_after_delete AFTER DELETE ON labSuite
FOR EACH ROW
BEGIN
INSERT INTO labSuiteLog
(id, name, description, category, updatedBy, updatedAt, supervisor, op, replacedAt)
VALUES (OLD.id, OLD.name, OLD.description, OLD.category, OLD.updatedBy, OLD.updatedAt, OLD.supervisor, "D", NOW());
END;$$
DELIMITER ;
Release 0.2.13
More user friendly birth weight field for historical pregnancies.
Database change
Run this SQL to update the database.
ALTER TABLE prenatalExam MODIFY COLUMN note VARCHAR(1000);