github.com/Bio-core/jtree@v0.0.0-20190705165106-1d7a7e7d6272/repos/patient_repo.go (about) 1 package repos 2 3 import ( 4 "fmt" 5 "log" 6 7 database "github.com/Bio-core/jtree/database" 8 "github.com/Bio-core/jtree/models" 9 ) 10 11 const shortForm = "2006-01-02" 12 13 //InsertPatient allows users to add generic objects to a collection in the database 14 func InsertPatient(person *models.Patient) bool { 15 stmt, err := database.DBUpdate.Prepare("INSERT INTO `patients`(`first_name`,`last_name`,`initials`,`gender`,`mrn`,`dob`,`on_hcn`,`clinical_history`,`patient_type`,`se_num`,`patient_id`,`date_received`,`referring_physican`,`date_reported`,`surgical_date`)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);") 16 if err != nil { 17 log.Fatal(err) 18 } 19 result, err := stmt.Exec( 20 person.FirstName, 21 person.LastName, 22 person.Initials, 23 person.Gender, 24 person.Mrn, 25 person.Dob.Format(shortForm), 26 person.OnHcn, 27 person.ClinicalHistory, 28 person.PatientType, 29 person.SeNum, 30 person.PatientID, 31 person.DateReceived.Format(shortForm), 32 person.ReferringPhysican, 33 person.DateReported.Format(shortForm), 34 person.SurgicalDate.Format(shortForm)) 35 stmt.Close() 36 if err != nil { 37 log.Fatal(err, result) 38 } 39 return true 40 } 41 42 //UpdatePatient remove a patient by id 43 func UpdatePatient(person *models.Patient) bool { 44 stmt, err := database.DBUpdate.Prepare("UPDATE `patients` SET`first_name` = ?,`last_name` = ?,`initials` = ?,`gender` = ?,`mrn` = ?,`dob` = ?,`on_hcn` = ?,`clinical_history` = ?,`patient_type` = ?,`se_num` = ?,`patient_id` = ?,`date_received` = ?,`referring_physican` = ?,`date_reported` = ?,`surgical_date` = ? WHERE `patient_id` = ?;") 45 if err != nil { 46 log.Fatal(err) 47 return false 48 } 49 result, err := stmt.Exec( 50 person.FirstName, 51 person.LastName, 52 person.Initials, 53 person.Gender, 54 person.Mrn, 55 person.Dob.Format(shortForm), 56 person.OnHcn, 57 person.ClinicalHistory, 58 person.PatientType, 59 person.SeNum, 60 person.PatientID, 61 person.DateReceived.Format(shortForm), 62 person.ReferringPhysican, 63 person.DateReported.Format(shortForm), 64 person.SurgicalDate.Format(shortForm), 65 person.PatientID) 66 stmt.Close() 67 if err != nil { 68 log.Fatal(err, result) 69 return false 70 } 71 return true 72 } 73 74 //GetPatientByID gets all and results a list of samples 75 func GetPatientByID(ID string) *models.Patient { 76 patients := []*models.Patient{} 77 query := models.Query{} 78 query.SelectedFields = make([]string, 0) 79 query.SelectedFields = append(query.SelectedFields, "*") 80 query.SelectedTables = make([]string, 0) 81 query.SelectedTables = append(query.SelectedTables, "patients") 82 query.SelectedCondition = make([][]string, 0) 83 //query.SelectedCondition = append(query.SelectedCondition, make([]string, 0)) 84 conditions := []string{"AND", "patients.patient_id", "Equal to", ID} 85 query.SelectedCondition = append(query.SelectedCondition, conditions) 86 87 queryString := database.BuildQuery(query) 88 err := database.DBSelect.Select(&patients, queryString) 89 if err != nil { 90 fmt.Println(err) 91 return nil 92 } 93 if len(patients) == 0 { 94 return nil 95 } 96 return patients[0] 97 }