123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- package service
-
- import (
- "XT_New/models"
- "fmt"
- "github.com/jinzhu/gorm"
- )
-
- func GetSignPatients(orgId int64, keywords string, dateTime, schedule_type int64) (patients []*models.SignPatients, err error) {
- db := readDb.
- Table("xt_patients as p").Where("p.user_org_id=?", orgId).
- Preload("SignWeight", "user_org_id = ? AND record_date=? AND status = 1", orgId, dateTime).
- Preload("DialysisOrder", "user_org_id = ? and dialysis_date = ? AND status = 1 ", orgId, dateTime).
- Preload("Schedule", "user_org_id = ? and schedule_date=? and status = 1", orgId, dateTime).
- Preload("PredialysisEvaluation", "user_org_id = ? and assessment_date = ?", orgId, dateTime)
- if len(keywords) > 0 {
- likekey := "%" + keywords + "%"
- db = db.Where("p.name LIKE ? OR p.dialysis_no LIKE ? OR first_letter LIKE ?", likekey, likekey, likekey)
- }
- db = db.Where("p.status=1")
-
- if schedule_type >= 1 && schedule_type <= 3 {
- db = db.Joins("JOIN xt_schedule AS s ON s.patient_id=p.id").Where("s.schedule_date = ? and s.schedule_type=? and s.status=1", dateTime, schedule_type)
- }
- err = db.Select("p.id, p.user_org_id, p.user_id, p.avatar, p.patient_type, p.dialysis_no, p.admission_number, p.source, p.lapseto, p.partition_id, p.bed_id, p.name, p.alias, p.gender, p.marital_status, p.id_card_no, p.birthday, p.reimbursement_way_id, p.health_care_type, p.health_care_no, p.health_care_due_date, p.height, p.blood_type, p.rh, p.health_care_due_alert_date, p.education_level, p.profession, p.phone, p.home_telephone, p.relative_phone, p.relative_relations, p.home_address, p.work_unit, p.unit_address, p.children, p.receiving_date, p.is_hospital_first_dialysis, p.first_dialysis_date, p.first_dialysis_hospital, p.predialysis_condition, p.pre_hospital_dialysis_frequency, p.pre_hospital_dialysis_times, p.hospital_first_dialysis_date, p.induction_period, p.initial_dialysis, p.total_dialysis, p.attending_doctor_id, p.head_nurse_id, p.evaluate, p.diagnose, p.remark, p.registrars_id, p.registrars, p.qr_code, p.binding_state, p.status, p.created_time, p.updated_time").Find(&patients).Error
-
- return
- }
-
- // GetSignPanels 签到称重班次休息
- func GetSignPanels(orgid, dateTime int64) (map[int64]map[string]int64, error) {
- fmt.Println(dateTime)
- fmt.Println("世界的尽头")
- fmt.Println(orgid)
- panel := map[int64]map[string]int64{
- 1: {"schedule": 0, "sign": 0, "before": 0, "after": 0},
- 2: {"schedule": 0, "sign": 0, "before": 0, "after": 0},
- 3: {"schedule": 0, "sign": 0, "before": 0, "after": 0},
- }
- var err error
-
- type schedule struct {
- ScheduleType int64
- ScheduleNums int64
- }
-
- var schedulePanels []schedule
- err = readDb.Model(&models.Schedule{}).Select("schedule_type, count(schedule_type) as schedule_nums").Where("schedule_date=? and user_org_id=? and status=?", dateTime, orgid, 1).Group("schedule_type").Scan(&schedulePanels).Error
- if err != nil {
- return panel, err
- fmt.Println("panel是什么", panel)
- }
- for _, schedulePanel := range schedulePanels {
- if _, exist := panel[schedulePanel.ScheduleType]; exist {
- panel[schedulePanel.ScheduleType]["schedule"] = schedulePanel.ScheduleNums
- }
- }
-
- type sign struct {
- ScheduleType int64
- SignNums int64
- }
-
- var signPanels []sign
- err = readDb.Table("xt_assessment_before_dislysis as sw").Joins("JOIN xt_schedule as s ON s.patient_id = sw.patient_id").Select("count(sw.id) as sign_nums,s.schedule_type").Where("s.schedule_date = ? and sw.assessment_date = ? and s.user_org_id = ? and sw.status = 1 and s.status = 1", dateTime, dateTime, orgid).Group("s.schedule_type").Scan(&signPanels).Error
-
- if err != nil {
- return panel, err
- }
- fmt.Println("singpanels是什么东西", signPanels)
- for _, signPanel := range signPanels {
- if _, exist := panel[signPanel.ScheduleType]; exist {
- panel[signPanel.ScheduleType]["sign"] = signPanel.SignNums
- }
- }
-
- type befor struct {
- ScheduleType int64
- SignNums int64
- }
-
- var befors []befor
- err = readDb.Table("xt_assessment_before_dislysis as sw").Joins("JOIN xt_schedule as s ON s.patient_id = sw.patient_id").Select("count(sw.id) as sign_nums,s.schedule_type").Where("s.schedule_date = ? and sw.assessment_date = ? and s.user_org_id = ? and sw.status = 1 and s.status = 1", dateTime, dateTime, orgid).Group("s.schedule_type").Scan(&befors).Error
-
- if err != nil {
- return panel, err
- }
- fmt.Println("singpanels是什么东西", befors)
- for _, signPanel := range befors {
- if _, exist := panel[signPanel.ScheduleType]; exist {
- panel[signPanel.ScheduleType]["before"] = signPanel.SignNums
- }
- }
-
- type after struct {
- ScheduleType int64
- AfterNums int64
- }
-
- var afters []after
- err = readDb.Table("xt_assessment_after_dislysis as sw").Joins("JOIN xt_schedule as s ON s.patient_id = sw.patient_id").Select("count(sw.id) as after_nums,s.schedule_type").Where("s.schedule_date = ? and sw.assessment_date = ? and s.user_org_id = ? and sw.status = 1 and s.status = 1", dateTime, dateTime, orgid).Group("s.schedule_type").Scan(&afters).Error
-
- if err != nil {
- return panel, err
- }
- fmt.Println("after是什么东西", afters)
- for _, signPanel := range afters {
- if _, exist := panel[signPanel.ScheduleType]; exist {
- panel[signPanel.ScheduleType]["after"] = signPanel.AfterNums
- }
- }
-
- return panel, nil
-
- }
-
- func GetPatientDateSign(orgid, dateTime, patientId int64) (*models.SigninAndWeigh, error) {
- var sig models.SigninAndWeigh
- var err error
- err = readDb.Model(&models.SigninAndWeigh{}).Where("record_date = ? and patient_id=? and user_org_id=?", dateTime, patientId, orgid).First(&sig).Error
- fmt.Println("错误", err)
- if err == gorm.ErrRecordNotFound {
- return nil, nil
- }
-
- if err != nil {
- return nil, err
- }
-
- return &sig, nil
- }
-
- func EditPatientSign(m *models.SigninAndWeigh) error {
- var err error
- if m.ID > 0 {
- err = writeDb.Save(&m).Error
- } else {
- err = writeDb.Create(&m).Error
- }
- return err
- }
-
- func GetPatientInformationList(orgid, patientId int64, datetime int64) *models.PredialysisEvaluation {
- var pre models.PredialysisEvaluation
- err := readDb.Model(&models.PredialysisEvaluation{}).Where("patient_id=? and user_org_id=? and assessment_date =?", patientId, orgid, datetime).First(&pre).Error
- if err != nil {
-
- }
- return &pre
- }
-
- func GetPatientLastDryWeight(patient_id int64, org_id int64) (models.SgjPatientDryweight, error) {
-
- dryweight := models.SgjPatientDryweight{}
- err := readDb.Model(&models.SgjPatientDryweight{}).Where("patient_id = ? and user_org_id = ? and status =1", patient_id, org_id).Last(&dryweight).Error
-
- return dryweight, err
- }
-
- func GetInforByPatient(orgid, patientId int64, datetime int64) *models.AssessmentAfterDislysis {
- var ass models.AssessmentAfterDislysis
- err := readDb.Model(&models.AssessmentAfterDislysis{}).Where("patient_id=? and user_org_id=? and assessment_date=?", patientId, orgid, datetime).First(&ass).Error
- if err != nil {
-
- }
-
- return &ass
- }
-
- func SaveData(pre *models.PredialysisEvaluation, patientId int64, orgId int64) error {
- err := writeDb.Model(pre).Where("patient_id=? and user_org_id=?", patientId, orgId).Update(map[string]interface{}{"weight_before": pre.WeightBefore,
- "dry_weight": pre.DryWeight, "temperature": pre.Temperature, "pulse_frequency": pre.PulseFrequency, "breathing_rate": pre.BreathingRate, "systolic_blood_pressure": pre.SystolicBloodPressure, "diastolic_blood_pressure": pre.DiastolicBloodPressure}).Error
- return err
- }
-
- func Editdata(dis *models.AssessmentAfterDislysis, patientId int64, orgId int64) error {
- err := writeDb.Model(dis).Where("patient_id=? and user_org_id=?", patientId, orgId).Update(map[string]interface{}{"weight_after": dis.WeightAfter,
- "dry_weight": dis.DryWeight, "temperature": dis.Temperature, "pulse_frequency": dis.PulseFrequency, "breathing_rate": dis.BreathingRate, "systolic_blood_pressure": dis.SystolicBloodPressure, "diastolic_blood_pressure": dis.DiastolicBloodPressure}).Error
-
- return err
- }
-
- func Savesignweigh(sw *models.SignWeight) error {
- var err error
- err = writeDb.Create(&sw).Error
- return err
- }
- func Updatesignweigh(sw *models.SignWeight, patientId int64, orgId int64) error {
- writeDb.Model(sw).Where("patient_id=? and user_org_id=?", patientId, orgId).Update(map[string]interface{}{"sign_time": sw.SignTime,
- "record_date": sw.RecordDate, "weightbefore": sw.WeightBefore, "dry_weight_before": sw.DryWeightBefore, "temperature_before": sw.TemperatureBefore,
- "pulse_frequency_before": sw.PulseFrequencyBefore, "breathing_rate_before": sw.BreathingRateBefore, "systolic_blood_pressure_before": sw.SystolicBloodPressureBefore,
- "diastolic_blood_pressure_before": sw.DiastolicBloodPressureBefore, "weightafter": sw.WeightAfter, "temperature_after": sw.TemperatureAfter, "pulse_frequency_after": sw.PulseFrequencyAfter,
- "breathing_rate_after": sw.BreathingRateAfter, "systolic_blood_pressure_after": sw.SystolicBloodPressureAfter, "diastolic_blood_pressure_after": sw.DiastolicBloodPressureAfter,
- "status": sw.Status, "created_time": sw.CreatedTime, "weigh_before_time": sw.WeighBeforeTime, "weigh_time": sw.WeighTime})
- return err
- }
-
- func GetSign(orgid, dateTime, patientId int64) (*models.SignWeight, error) {
- var sigs models.SignWeight
- var err error
- err = readDb.Model(&models.SignWeight{}).Where("record_date = ? and patient_id=? and user_org_id = ?", dateTime, patientId, orgid).First(&sigs).Error
- fmt.Println("错误", err)
- if err == gorm.ErrRecordNotFound {
-
- return nil, err
- }
- if err != nil {
- return nil, err
- }
- return &sigs, nil
- }
-
- func GetSignweigh(orgid, patientId int64) *models.SignWeight {
- var sw models.SignWeight
- err := readDb.Model(&models.SignWeight{}).Where("patient_id=? and user_org_id =?", patientId, orgid).First(&sw).Error
- if err != nil {
-
- }
- return &sw
- }
-
- func GetDislysisBerfore(orgid, dateTime, patientId int64) (*models.PredialysisEvaluation, error) {
- var pre models.PredialysisEvaluation
- var err error
- err = readDb.Model(&models.PredialysisEvaluation{}).Where("assessment_date =? and patient_id =? and user_org_id = ?", dateTime, patientId, orgid).Find(&pre).Error
- fmt.Println("错误", err)
- if err == gorm.ErrRecordNotFound {
- return nil, err
- }
- if err != nil {
- return nil, err
- }
- return &pre, nil
-
- }
-
- func SaveDislysisiBefore(pre *models.PredialysisEvaluation) error {
- var err error
- err = writeDb.Create(&pre).Error
- return err
- }
-
- func UpdataDislysisiBefore(pre *models.PredialysisEvaluation, patientId int64, orgId int64, datatime int64) error {
- writeDb.Model(pre).Where("patient_id=? and user_org_id=? and assessment_date =?", patientId, orgId, datatime).Update(map[string]interface{}{"weight_before": pre.WeightBefore,
- "dry_weight": pre.DryWeight, "temperature": pre.Temperature, "pulse_frequency": pre.PulseFrequency, "systolic_blood_pressure": pre.SystolicBloodPressure, "diastolic_blood_pressure": pre.DiastolicBloodPressure, "status": 1})
- return err
- }
-
- func GetAssessmentaafterdislysis(orgid, dateTime, patientId int64) (*models.AssessmentAfterDislysis, error) {
- var ass models.AssessmentAfterDislysis
- var err error
- err = readDb.Model(&models.AssessmentAfterDislysis{}).Where("assessment_date =? and patient_id =? and user_org_id = ?", dateTime, patientId, orgid).Find(&ass).Error
- fmt.Println("错误", err)
- if err == gorm.ErrRecordNotFound {
- return nil, err
- }
- if err != nil {
- return nil, err
- }
- return &ass, nil
- }
- func SaveAssessmentafter(ass *models.AssessmentAfterDislysis) error {
- var err error
- err = writeDb.Create(&ass).Error
- return err
- }
-
- func UpdataAssessment(ass *models.AssessmentAfterDislysis, patientId int64, orgId int64, datetime int64) error {
- writeDb.Model(ass).Where("patient_id=? and user_org_id=? and assessment_date=? ", patientId, orgId, datetime).Update(map[string]interface{}{"weight_after": ass.WeightAfter,
- "dry_weight": ass.DryWeight, "temperature": ass.Temperature, "pulse_frequency": ass.PulseFrequency, "systolic_blood_pressure": ass.SystolicBloodPressure, "diastolic_blood_pressure": ass.DiastolicBloodPressure, "status": 1})
- return err
- }
-
- func GetForenoonData(dataTime int64, orgid int64, scheduleType int64) (total int64, schedule []*models.Schedule, err error) {
- err = readDb.Count(total).Where("schedule_date = ? AND user_org_id = ? AND schedule_type = ?", dataTime, orgid, scheduleType).Find(&scheduleType).Error
- fmt.Println("heeeeeeeeeehhhhh", err)
- return total, schedule, err
- }
|