12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package management_service
-
- import "Xcx_New/service"
-
- type ChartDataStruct struct {
- Date string `json:"date"`
- Value int64 `json:"value"`
- }
-
- //患者统计
- func GetPatientChartData(user_org_id int64, start_time int64, end_time int64, statistics_type int) (datas []*ChartDataStruct, total int64, err error) {
- db := service.XTReadDB()
- switch statistics_type {
- case 1:
- err = db.Raw("select from_unixtime(created_time,'%m-%d') as date, count(distinct id) as value from xt_patients patient Where patient.user_org_id = ? AND patient.created_time >=? AND patient.created_time <=? AND patient.status = 1 AND patient.lapseto = 1 Group by date", user_org_id, start_time, end_time).Scan(&datas).Error
-
- break
- case 2:
- //err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, weight_after as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
- err = db.Raw("select from_unixtime(lapseto_time,'%m-%d') as date, count(distinct patient_id) as value from xt_patient_lapseto lapseto JOIN `xt_patients` patient ON lapseto.`patient_id` = patient.id AND patient.user_org_id = ? Where lapseto.status = 1 AND lapseto.lapseto_type = 2 AND lapseto.lapseto_time >= ? AND lapseto.lapseto_time <= ? Group by date", user_org_id, start_time, end_time).Scan(&datas).Error
- //err = db.Raw("select from_unixtime(updated_time,'%m-%d') as date, count(distinct id) as value from xt_patients patient Where patient.user_org_id = ? AND patient.updated_time >=? AND patient.updated_time <=? AND patient.status = 1 AND patient.lapseto = 2 Group by date", user_org_id, start_time, end_time).Scan(&datas).Error
-
- break
- }
- for _, item := range datas {
- total = total + item.Value
- }
-
- if err != nil {
- return nil, 0, err
- }
- return datas, total, nil
- }
-
- type PatientTableStruct struct {
- Date string `json:"date"`
- Name string `json:"name"`
- IdCardNo string `json:"id_card_no"`
- Gender int `json:"gender"`
- }
-
- func GetPatientTableData(orgID int64, page, limit, start, end int64, statistics_type int) ([]*PatientTableStruct, int64, error) {
- //offset := (page - 1) * limit
- var total int64
- var err error
- var patients []*PatientTableStruct
- readDb := service.XTReadDB()
- if statistics_type == 1 {
- db := readDb.Raw("select from_unixtime(patient.`created_time`,'%Y-%m-%d %H:%m') as date , patient.name as name, patient.`id_card_no` as id_card_no, patient.`gender` as gender from `xt_patients` patient Where patient.user_org_id = ? AND patient.status = 1 AND patient.lapseto = ? AND patient.created_time >= ? AND patient.created_time <= ? ", orgID, statistics_type, start, end)
- err = db.Order("patient.created_time desc").Scan(&patients).Error
-
- } else {
-
- db := readDb.Raw("select from_unixtime(lapseto.`lapseto_time`,'%Y-%m-%d %H:%m') as date , patient.name as name, patient.`id_card_no` as id_card_no, patient.`gender` as gender from xt_patient_lapseto lapseto JOIN `xt_patients` patient ON lapseto.`patient_id` = patient.id AND patient.user_org_id = ? Where lapseto.status = 1 AND lapseto.lapseto_type = ? AND lapseto.lapseto_time >= ? AND lapseto.lapseto_time <= ? ", orgID, statistics_type, start, end)
- //db := readDb.Raw("select from_unixtime(patient.`updated_time`,'%Y-%m-%d %H:%m') as date , patient.name as name, patient.`id_card_no` as id_card_no, patient.`gender` as gender from `xt_patients` patient Where patient.user_org_id = ? AND patient.status = 1 AND patient.lapseto = ? AND patient.updated_time >= ? AND patient.updated_time <= ? ", orgID, statistics_type, start, end)
- err = db.Group("lapseto.`patient_id`").Order("lapseto.lapseto_time desc").Scan(&patients).Error
-
- }
-
- return patients, total, err
- }
-
- func GetLapsetoPatientTotal(orgID int64, statistics_type int) (Total int64, err error) {
- readDb := service.XTReadDB()
- //err = readDb.Raw("select count(*) as total from xt_patient_lapseto lapseto JOIN `xt_patients` patient ON lapseto.`patient_id` = patient.id AND patient.user_org_id = ? Where lapseto.status = 1 AND lapseto.lapseto_type =?", orgID, statistics_type).Count(&Total).Error
- err = readDb.Raw("select count(*) as total from `xt_patients` patient Where patient.user_org_id = ? AND patient.status = 1 AND patient.lapseto = ?", orgID, statistics_type).Count(&Total).Error
-
- return Total, err
- }
|