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  }