patientmanage_service.go 120KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268
  1. package service
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "strconv"
  6. "strings"
  7. "time"
  8. "XT_New/models"
  9. "github.com/jinzhu/gorm"
  10. )
  11. func GetIllnessListTwo() (ills []*models.Illness, err error) {
  12. err = readUserDb.Where("status=1").Find(&ills).Error
  13. return
  14. }
  15. func GetBloodDialysisPatient(orgid int64, page int64, limit int64) (patients []*models.Patients, total int64, err error) {
  16. db := XTReadDB().Table("xt_patients_new as x").Where("x.status = 1")
  17. if orgid > 0 {
  18. db = db.Where("x.user_org_id = ?", orgid)
  19. }
  20. offset := (page - 1) * limit
  21. err = db.Count(&total).Order("x.created_time desc").Offset(offset).Limit(limit).
  22. Select("x.id,x.user_org_id,x.user_id,x.avatar,x.patient_type,x.dialysis_no,x.admission_number,x.source,x.lapseto,x.partition_id,x.bed_id,x.name,x.alias,x.gender,x.marital_status,x.id_card_no,x.birthday,x.reimbursement_way_id,x.health_care_type,x.health_care_no,x.health_care_due_date,x.height,x.blood_type,x.rh,x.health_care_due_alert_date,x.education_level,x.profession,x.phone,x.home_telephone,x.relative_phone,x.relative_relations,x.home_address,x.work_unit,x.unit_address,x.children,x.receiving_date,x.is_hospital_first_dialysis,x.first_dialysis_date,x.first_dialysis_hospital,x.predialysis_condition,x.pre_hospital_dialysis_frequency,x.pre_hospital_dialysis_times,x.hospital_first_dialysis_date,x.induction_period,x.initial_dialysis,x.total_dialysis,x.attending_doctor_id,x.head_nurse_id,x.evaluate,x.diagnose,x.remark,x.registrars_id,x.registrars,x.qr_code,x.binding_state,x.patient_complains,x.present_history,x.past_history,x.temperature,x.pulse,x.respiratory,x.sbp,x.dbp,x.status,x.created_time,x.updated_time,x.nation,x.native_place,x.age,x.blood_patients,x.slow_patients,x.member_patients,x.ecommer_patients,x.blood_id,x.slow_id,x.member_id").Find(&patients).Error
  23. fmt.Println("err是什么", err)
  24. return
  25. }
  26. func GetAllBloodDialysisPatient(orgid int64, page int64, limit int64, lapseto int64, source int64) (patients []*models.XtPatientsNew, total int64, err error) {
  27. db := XTReadDB().Table("xt_patients_new as x").Where("x.status = 1")
  28. if orgid > 0 {
  29. db = db.Where("x.user_org_id = ? and x.blood_patients = 1", orgid)
  30. }
  31. if lapseto > 0 {
  32. db = db.Where("x.lapseto = ?", lapseto)
  33. }
  34. if source > 0 {
  35. db = db.Where("x.source = ?", source)
  36. }
  37. offset := (page - 1) * limit
  38. err = db.Count(&total).Order("x.created_time desc").Offset(offset).Limit(limit).
  39. Select("x.id,x.user_org_id,x.user_id,x.avatar,x.patient_type,x.dialysis_no,x.admission_number,x.source,x.lapseto,x.partition_id,x.bed_id,x.name,x.alias,x.gender,x.marital_status,x.id_card_no,x.birthday,x.reimbursement_way_id,x.health_care_type,x.health_care_no,x.health_care_due_date,x.height,x.blood_type,x.rh,x.health_care_due_alert_date,x.education_level,x.profession,x.phone,x.home_telephone,x.relative_phone,x.relative_relations,x.home_address,x.work_unit,x.unit_address,x.children,x.receiving_date,x.is_hospital_first_dialysis,x.first_dialysis_date,x.first_dialysis_hospital,x.predialysis_condition,x.pre_hospital_dialysis_frequency,x.pre_hospital_dialysis_times,x.hospital_first_dialysis_date,x.induction_period,x.initial_dialysis,x.total_dialysis,x.attending_doctor_id,x.head_nurse_id,x.evaluate,x.diagnose,x.remark,x.registrars_id,x.registrars,x.qr_code,x.binding_state,x.patient_complains,x.present_history,x.past_history,x.temperature,x.pulse,x.respiratory,x.sbp,x.dbp,x.status,x.created_time,x.updated_time,x.nation,x.native_place,x.age,x.blood_patients,x.slow_patients,x.member_patients,x.ecommer_patients,x.blood_id,x.slow_id,x.member_id").Find(&patients).Error
  40. fmt.Println("err是什么", err)
  41. return
  42. }
  43. func GetAllSlowPatient(orgid int64, page int64, limit int64) (patients []*models.XtPatientsNew, total int64, err error) {
  44. db := XTReadDB().Table("xt_patients_new as x").Where("x.status = 1")
  45. if orgid > 0 {
  46. db = db.Where("x.user_org_id = ? and x.slow_patients = 1", orgid)
  47. }
  48. offset := (page - 1) * limit
  49. err = db.Count(&total).Order("x.created_time desc").Offset(offset).Limit(limit).
  50. Select("x.id,x.user_org_id,x.user_id,x.avatar,x.patient_type,x.dialysis_no,x.admission_number,x.source,x.lapseto,x.partition_id,x.bed_id,x.name,x.alias,x.gender,x.marital_status,x.id_card_no,x.birthday,x.reimbursement_way_id,x.health_care_type,x.health_care_no,x.health_care_due_date,x.height,x.blood_type,x.rh,x.health_care_due_alert_date,x.education_level,x.profession,x.phone,x.home_telephone,x.relative_phone,x.relative_relations,x.home_address,x.work_unit,x.unit_address,x.children,x.receiving_date,x.is_hospital_first_dialysis,x.first_dialysis_date,x.first_dialysis_hospital,x.predialysis_condition,x.pre_hospital_dialysis_frequency,x.pre_hospital_dialysis_times,x.hospital_first_dialysis_date,x.induction_period,x.initial_dialysis,x.total_dialysis,x.attending_doctor_id,x.head_nurse_id,x.evaluate,x.diagnose,x.remark,x.registrars_id,x.registrars,x.qr_code,x.binding_state,x.patient_complains,x.present_history,x.past_history,x.temperature,x.pulse,x.respiratory,x.sbp,x.dbp,x.status,x.created_time,x.updated_time,x.nation,x.native_place,x.age,x.blood_patients,x.slow_patients,x.member_patients,x.ecommer_patients,x.blood_id,x.slow_id,x.member_id").Find(&patients).Error
  51. fmt.Println("err是什么", err)
  52. return
  53. }
  54. func GetAllMemberPatient(orgid int64, page int64, limit int64) (patients []*models.XtPatientsNew, total int64, err error) {
  55. db := XTReadDB().Table("xt_patients_new as x").Where("x.status = 1")
  56. if orgid > 0 {
  57. db = db.Where("x.user_org_id = ? and x.member_patients = 1", orgid)
  58. }
  59. offset := (page - 1) * limit
  60. err = db.Count(&total).Order("x.created_time desc").Offset(offset).Limit(limit).
  61. Select("x.id,x.user_org_id,x.user_id,x.avatar,x.patient_type,x.dialysis_no,x.admission_number,x.source,x.lapseto,x.partition_id,x.bed_id,x.name,x.alias,x.gender,x.marital_status,x.id_card_no,x.birthday,x.reimbursement_way_id,x.health_care_type,x.health_care_no,x.health_care_due_date,x.height,x.blood_type,x.rh,x.health_care_due_alert_date,x.education_level,x.profession,x.phone,x.home_telephone,x.relative_phone,x.relative_relations,x.home_address,x.work_unit,x.unit_address,x.children,x.receiving_date,x.is_hospital_first_dialysis,x.first_dialysis_date,x.first_dialysis_hospital,x.predialysis_condition,x.pre_hospital_dialysis_frequency,x.pre_hospital_dialysis_times,x.hospital_first_dialysis_date,x.induction_period,x.initial_dialysis,x.total_dialysis,x.attending_doctor_id,x.head_nurse_id,x.evaluate,x.diagnose,x.remark,x.registrars_id,x.registrars,x.qr_code,x.binding_state,x.patient_complains,x.present_history,x.past_history,x.temperature,x.pulse,x.respiratory,x.sbp,x.dbp,x.status,x.created_time,x.updated_time,x.nation,x.native_place,x.age,x.blood_patients,x.slow_patients,x.member_patients,x.ecommer_patients,x.blood_id,x.slow_id,x.member_id").Find(&patients).Error
  62. fmt.Println("err是什么", err)
  63. return
  64. }
  65. func GetAllPatient(orgid int64) (patients []*models.PatientsNew, err error) {
  66. db := XTReadDB().Table("xt_patients_new as x")
  67. err = db.Raw("select id,name from xt_patients_new where user_org_id = ? and status =1", orgid).Scan(&patients).Error
  68. return
  69. }
  70. func ChechLastDialysisNoTwo(orgID int64) (dialysisNo int64) {
  71. var patient models.Patients
  72. err := readDb.Model(&models.Patients{}).Where("user_org_id=? and status = 1", orgID).Order("dialysis_no desc").First(&patient).Error
  73. if err != nil {
  74. return
  75. }
  76. if patient.ID == 0 {
  77. return
  78. }
  79. dialysisNo, _ = strconv.ParseInt(patient.DialysisNo, 10, 64)
  80. return
  81. }
  82. func GetBloodPatientInfo(orgid int64, phone string) (*models.Patients, error) {
  83. patients := models.Patients{}
  84. var err error
  85. err = XTReadDB().Model(&patients).Where("user_org_id = ? and phone = ? and status = 1", orgid, phone).Find(&patients).Error
  86. if err == gorm.ErrRecordNotFound {
  87. return nil, err
  88. }
  89. if err != nil {
  90. return nil, err
  91. }
  92. return &patients, nil
  93. }
  94. func GetSlowPatientInfo(orgid int64, phone string) (*models.CdmPatients, error) {
  95. patients := models.CdmPatients{}
  96. var err error
  97. err = PatientReadDB().Model(&patients).Where("user_org_id = ? and phone = ? and status = 1", orgid, phone).Find(&patients).Error
  98. if err == gorm.ErrRecordNotFound {
  99. return nil, err
  100. }
  101. if err != nil {
  102. return nil, err
  103. }
  104. return &patients, nil
  105. }
  106. func GetMemberPatientInfo(orgid int64, phone string) (*models.SgjUserCustomer, error) {
  107. customer := models.SgjUserCustomer{}
  108. err := UserReadDB().Model(&customer).Where("user_org_id = ? and mobile = ? and status =1", orgid, phone).Find(&customer).Error
  109. if err == gorm.ErrRecordNotFound {
  110. return nil, err
  111. }
  112. if err != nil {
  113. return nil, err
  114. }
  115. return &customer, nil
  116. }
  117. func CreateOldPatient(patients *models.Patients) error {
  118. err := XTWriteDB().Create(&patients).Error
  119. return err
  120. }
  121. func GetLastOldPatient(orgid int64) (models.Patients, error) {
  122. patients := models.Patients{}
  123. err := XTReadDB().Model(&patients).Where("user_org_id = ? and status =1", orgid).Last(&patients).Error
  124. return patients, err
  125. }
  126. func AddContagions(patienid int64, createdtime int64, updatedtime int64, contagions []int64) (err error) {
  127. utx := writeDb.Begin()
  128. if len(contagions) > 0 {
  129. thisSQL := "INSERT INTO xt_patients_infectious_diseases (patient_id, disease_id, status, created_time, updated_time) VALUES "
  130. insertParams := make([]string, 0)
  131. insertData := make([]interface{}, 0)
  132. for _, contagion := range contagions {
  133. insertParams = append(insertParams, "(?, ?, ?, ?, ?)")
  134. insertData = append(insertData, patienid)
  135. insertData = append(insertData, contagion)
  136. insertData = append(insertData, 1)
  137. insertData = append(insertData, createdtime)
  138. insertData = append(insertData, updatedtime)
  139. }
  140. thisSQL += strings.Join(insertParams, ",")
  141. err = utx.Exec(thisSQL, insertData...).Error
  142. fmt.Println("这个错误err", err)
  143. }
  144. utx.Commit()
  145. return
  146. }
  147. func AddSlowContagions(patienid int64, createdtime int64, updatedtime int64, contagions []int64, orgid int64) (err error) {
  148. utx := PatientWriteDB().Begin()
  149. if len(contagions) > 0 {
  150. thisSQL := "INSERT INTO xt_patients_infectious_diseases (patient_id, disease_id, status, created_time, updated_time,user_org_id) VALUES "
  151. insertParams := make([]string, 0)
  152. insertData := make([]interface{}, 0)
  153. for _, contagion := range contagions {
  154. insertParams = append(insertParams, "(?, ?, ?, ?, ?,?)")
  155. insertData = append(insertData, patienid)
  156. insertData = append(insertData, contagion)
  157. insertData = append(insertData, 1)
  158. insertData = append(insertData, createdtime)
  159. insertData = append(insertData, updatedtime)
  160. insertData = append(insertData, orgid)
  161. }
  162. thisSQL += strings.Join(insertParams, ", ")
  163. err = utx.Exec(thisSQL, insertData...).Error
  164. if err != nil {
  165. utx.Rollback()
  166. utx.Rollback()
  167. return
  168. }
  169. }
  170. utx.Commit()
  171. return
  172. }
  173. func AddSlowDiseases(patienid int64, createdtime int64, updatedtime int64, diseases []int64, orgid int64) (err error) {
  174. utx := PatientWriteDB().Begin()
  175. if len(diseases) > 0 {
  176. thisSQL := "INSERT INTO xt_patients_chronic_diseases (patient_id, disease_id, status, created_time, updated_time,user_org_id) VALUES "
  177. insertParams := make([]string, 0)
  178. insertData := make([]interface{}, 0)
  179. for _, disease := range diseases {
  180. insertParams = append(insertParams, "(?, ?, ?, ?, ?,?)")
  181. insertData = append(insertData, patienid)
  182. insertData = append(insertData, disease)
  183. insertData = append(insertData, 1)
  184. insertData = append(insertData, createdtime)
  185. insertData = append(insertData, updatedtime)
  186. insertData = append(insertData, orgid)
  187. }
  188. thisSQL += strings.Join(insertParams, ", ")
  189. err = utx.Exec(thisSQL, insertData...).Error
  190. if err != nil {
  191. utx.Rollback()
  192. return
  193. }
  194. }
  195. utx.Commit()
  196. return
  197. }
  198. func CreateNewPatient(patientsNew *models.XtPatientsNew) error {
  199. err := XTWriteDB().Create(&patientsNew).Error
  200. return err
  201. }
  202. func CreateCdmPatient(cdmpatient *models.CdmPatients) error {
  203. err := PatientWriteDB().Create(&cdmpatient).Error
  204. return err
  205. }
  206. func CreateMemberPatient(customer *models.SgjUserCustomer) error {
  207. err := UserWriteDB().Create(&customer).Error
  208. return err
  209. }
  210. func GetOldCdmPatient(orgid int64) (models.CdmPatients, error) {
  211. patients := models.CdmPatients{}
  212. err := PatientReadDB().Model(&patients).Where("user_org_id = ? and status =1", orgid).Last(&patients).Error
  213. return patients, err
  214. }
  215. func GetPatientDetailTwo(id int64) (models.XtPatientsNew, error) {
  216. patients := models.XtPatientsNew{}
  217. err := XTReadDB().Where("id=? and status = 1", id).Find(&patients).Error
  218. return patients, err
  219. }
  220. func GetPatientNewId(id int64) (models.XtPatientsNew, error) {
  221. patientsNew := models.XtPatientsNew{}
  222. err := XTReadDB().Where("blood_id = ? and status = 1", id).Find(&patientsNew).Error
  223. return patientsNew, err
  224. }
  225. func GetPatientDiseasesTwo(id int64) []int64 {
  226. var dis []models.XtPatientsInfectiousDiseases
  227. ids := make([]int64, 0)
  228. err := XTReadDB().Model(&models.XtPatientsInfectiousDiseases{}).Where("patient_id = ? and status = 1", id).Find(&dis).Error
  229. if err != nil || len(dis) == 0 {
  230. return ids
  231. }
  232. for _, item := range dis {
  233. ids = append(ids, item.DiseaseId)
  234. }
  235. return ids
  236. }
  237. func GetSlowPatientDiseases(id int64) (infeciousdisease []*models.CdmPatientsInfectiousDiseases, err error) {
  238. //var dis []models.CdmPatientsInfectiousDiseases
  239. //diseases := models.CdmPatientsChronicDiseases{}
  240. //ids := make([]int64, 0)
  241. //err := PatientReadDB().Model(&diseases).Where("patient_id = ? and status =1", id).Find(&ids).Error
  242. //if err != nil || len(dis) == 0 {
  243. // return ids
  244. //}
  245. //for _, item := range dis {
  246. // ids = append(ids, item.DiseaseId)
  247. //}
  248. //return ids
  249. err = PatientReadDB().Model(&infeciousdisease).Where("patient_id = ? and status =1", id).Find(&infeciousdisease).Error
  250. return infeciousdisease, err
  251. }
  252. func GetCronicDiseases(id int64) (chronic []*models.CdmPatientsChronicDiseases, err error) {
  253. //var dis []models.CdmPatientsChronicDiseases
  254. //ids := make([]int64, 0)
  255. //err := PatientReadDB().Model(&models.CdmPatientsChronicDiseases{}).Where("patient_id = ? and status =1", id).Find(&ids).Error
  256. //if err != nil || len(dis) == 0 {
  257. // return ids
  258. //}
  259. //for _, item := range dis {
  260. // ids = append(ids, item.DiseaseId)
  261. //}
  262. //return ids
  263. err = PatientReadDB().Model(&chronic).Where("patient_id = ? and status =1", id).Find(&chronic).Error
  264. return chronic, err
  265. }
  266. func CreatePatientTwo(patient *models.Patients, contagions []int64, diseases []int64) (err error) {
  267. user, _ := GetSgjUserByMobild(patient.Phone)
  268. customer, _ := GetSgjCoustomerByMobile(patient.UserOrgId, patient.Phone)
  269. utx := writeDb.Begin()
  270. btx := writeUserDb.Begin()
  271. if user.ID == 0 {
  272. user.Mobile = patient.Phone
  273. user.Avatar = patient.Avatar
  274. user.AvatarThumb = patient.Avatar
  275. user.Birthday = patient.Birthday
  276. user.Username = patient.Name
  277. user.Gender = patient.Gender
  278. user.Sources = 11
  279. user.Introduce = patient.Remark
  280. user.Status = 1
  281. user.UpdatedTime = patient.UpdatedTime
  282. user.CreatedTime = patient.CreatedTime
  283. err = btx.Create(&user).Error
  284. if err != nil {
  285. utx.Rollback()
  286. btx.Rollback()
  287. return
  288. }
  289. }
  290. patient.UserId = user.ID
  291. if customer == nil {
  292. err = btx.Create(&models.SgjCustomer{
  293. UserOrgId: patient.UserOrgId,
  294. UserId: user.ID,
  295. Mobile: patient.Phone,
  296. Name: patient.Name,
  297. Gender: patient.Gender,
  298. Birthday: patient.Birthday,
  299. Sources: 11,
  300. Status: 1,
  301. CreatedTime: patient.CreatedTime,
  302. UpdatedTime: patient.UpdatedTime,
  303. Avatar: patient.Avatar,
  304. Remark: patient.Remark,
  305. }).Error
  306. if err != nil {
  307. utx.Rollback()
  308. btx.Rollback()
  309. return
  310. }
  311. }
  312. err = utx.Create(patient).Error
  313. if err != nil {
  314. utx.Rollback()
  315. btx.Rollback()
  316. return
  317. }
  318. var lapseto models.PatientLapseto
  319. lapseto.PatientId = patient.ID
  320. lapseto.LapsetoType = patient.Lapseto
  321. lapseto.CreatedTime = patient.CreatedTime
  322. lapseto.UpdatedTime = patient.CreatedTime
  323. lapseto.Status = 1
  324. lapseto.LapsetoTime = patient.CreatedTime
  325. err = utx.Create(&lapseto).Error
  326. if err != nil {
  327. utx.Rollback()
  328. btx.Rollback()
  329. return
  330. }
  331. if len(contagions) > 0 {
  332. thisSQL := "INSERT INTO xt_patients_infectious_diseases (patient_id, disease_id, status, created_time, updated_time) VALUES "
  333. insertParams := make([]string, 0)
  334. insertData := make([]interface{}, 0)
  335. for _, contagion := range contagions {
  336. insertParams = append(insertParams, "(?, ?, ?, ?, ?)")
  337. insertData = append(insertData, patient.ID)
  338. insertData = append(insertData, contagion)
  339. insertData = append(insertData, 1)
  340. insertData = append(insertData, patient.CreatedTime)
  341. insertData = append(insertData, patient.UpdatedTime)
  342. }
  343. thisSQL += strings.Join(insertParams, ", ")
  344. err = utx.Exec(thisSQL, insertData...).Error
  345. if err != nil {
  346. utx.Rollback()
  347. btx.Rollback()
  348. return
  349. }
  350. }
  351. if len(diseases) > 0 {
  352. thisSQL := "INSERT INTO xt_patients_chronic_diseases (patient_id, disease_id, status, created_time, updated_time) VALUES "
  353. insertParams := make([]string, 0)
  354. insertData := make([]interface{}, 0)
  355. for _, disease := range diseases {
  356. insertParams = append(insertParams, "(?, ?, ?, ?, ?)")
  357. insertData = append(insertData, patient.ID)
  358. insertData = append(insertData, disease)
  359. insertData = append(insertData, 1)
  360. insertData = append(insertData, patient.CreatedTime)
  361. insertData = append(insertData, patient.UpdatedTime)
  362. }
  363. thisSQL += strings.Join(insertParams, ", ")
  364. err = utx.Exec(thisSQL, insertData...).Error
  365. if err != nil {
  366. utx.Rollback()
  367. btx.Rollback()
  368. return
  369. }
  370. }
  371. utx.Commit()
  372. btx.Commit()
  373. return
  374. }
  375. func FindPatientByMobileFive(mobile string, orgID int64) (patient models.XtPatientsNew, err error) {
  376. err = readDb.Model(&models.Patients{}).Where("phone=? and user_org_id=? and status=1", mobile, orgID).First(&patient).Error
  377. return
  378. }
  379. func FindPatientByDialysisNoFive(orgID int64, dialysisNo string) (patient models.Patients, err error) {
  380. err = readDb.Model(&models.Patients{}).Where("status=1 and user_org_id=? and dialysis_no=?", orgID, dialysisNo).First(&patient).Error
  381. return
  382. }
  383. func FindPatientByIdCardNoFive(orgID int64, idCardNo string) (patient models.XtPatientsNew, err error) {
  384. err = readDb.Model(&models.Patients{}).Where("status=1 and user_org_id=? and id_card_no=?", orgID, idCardNo).First(&patient).Error
  385. return
  386. }
  387. func FindPatientByIdCardNoOne(orgID int64, idCardNo string, id int64) (patient models.XtPatientsNew, err error) {
  388. err = readDb.Model(&models.Patients{}).Where("status=1 and user_org_id=? and id_card_no=? and id<>?", orgID, idCardNo, id).First(&patient).Error
  389. return
  390. }
  391. func FindPatientByDialysisNoOne(orgID int64, dialysisNo string, id int64) (patient models.Patients, err error) {
  392. err = readDb.Model(&models.Patients{}).Where("status=1 and user_org_id=? and dialysis_no=? and id<>?", orgID, dialysisNo, id).First(&patient).Error
  393. return
  394. }
  395. func FindPatientByMobileOne(mobile string, orgID int64, id int64) (patient models.XtPatientsNew, err error) {
  396. err = readDb.Model(&models.XtPatientsNew{}).Where(" status=1 and user_org_id=? and phone=? and id<>?", orgID, mobile, id).First(&patient).Error
  397. return
  398. //db := readDb.Table("xt_patients_new as x")
  399. //err = db.Not("phone = ?", mobile).Where("user_org_id = ? and id = ? and status =1", orgID, id).Find(&patient).Error
  400. //return
  401. }
  402. func GetPatientData(phone string, orgid int64) (*models.XtPatientsNew, error) {
  403. var patientnew models.XtPatientsNew
  404. var err error
  405. err = XTReadDB().Model(&patientnew).Where("user_org_id = ? and phone = ? and status =? and blood_patients = ?", orgid, phone, 1, 1).Find(&patientnew).Error
  406. if err == gorm.ErrRecordNotFound {
  407. return nil, err
  408. }
  409. if err != nil {
  410. return nil, err
  411. }
  412. return &patientnew, nil
  413. }
  414. func GetSlowPatientData(phone string, orgid int64) (*models.CdmPatients, error) {
  415. var patientnew models.CdmPatients
  416. err = PatientReadDB().Model(&patientnew).Where("user_org_id = ? and phone = ? and status = ?", orgid, phone, 1).Find(&patientnew).Error
  417. if err == gorm.ErrRecordNotFound {
  418. return nil, err
  419. }
  420. if err != nil {
  421. return nil, err
  422. }
  423. return &patientnew, nil
  424. }
  425. func GetMemberNewPatient(phone string, orgid int64) (*models.XtPatientsNew, error) {
  426. var patientnew models.XtPatientsNew
  427. err = XTReadDB().Model(&patientnew).Where("user_org_id = ? and phone = ? and status = ? and member_patients = ?", orgid, phone, 1, 1).Find(&patientnew).Error
  428. if err == gorm.ErrRecordNotFound {
  429. return nil, err
  430. }
  431. if err != nil {
  432. return nil, err
  433. }
  434. return &patientnew, nil
  435. }
  436. func GetLastMemberPatient(orgid int64) (models.SgjUserCustomer, error) {
  437. customer := models.SgjUserCustomer{}
  438. err := UserReadDB().Model(&customer).Where("user_org_id = ? and status = 1", orgid).Last(&customer).Error
  439. return customer, err
  440. }
  441. func GetLastNewSlowPatient(phone string, orgid int64) (*models.XtPatientsNew, error) {
  442. var patientnew models.XtPatientsNew
  443. err = XTReadDB().Model(&patientnew).Where("user_org_id = ? and phone = ? and status = ? and slow_patients = ?", orgid, phone, 1, 1).Find(&patientnew).Error
  444. if err == gorm.ErrRecordNotFound {
  445. return nil, err
  446. }
  447. if err != nil {
  448. return nil, err
  449. }
  450. return &patientnew, nil
  451. }
  452. func GetNewDoctorAdvice(patientID int64, advice_type int64, start int64, end int64, limit int64, page int64, orgID int64) (doctoradvice []*models.DoctorAdvices, total int64, err error) {
  453. db := readDb.Table("xt_doctor_advice as x").Where("x.status = 1")
  454. table := UserReadDB().Table("sgj_user_admin_role as r")
  455. tabletwo := readDb.Table("xt_dialysis_prescription as s").Where("s.status = 1")
  456. fmt.Print("table", table, tabletwo)
  457. if orgID > 0 {
  458. db = db.Where("x.user_org_id=?", orgID)
  459. }
  460. if patientID > 0 {
  461. db = db.Where("x.patient_id = ?", patientID)
  462. }
  463. if advice_type == 1 {
  464. db = db.Where("x.advice_type = ?", advice_type)
  465. }
  466. if advice_type == 3 {
  467. db = db.Where("x.advice_type = 2 or x.advice_type = 3")
  468. }
  469. if advice_type == 4 {
  470. db = db.Where("x.advice_type = ?", advice_type)
  471. }
  472. if start > 0 {
  473. db = db.Where("x.start_time>=?", start)
  474. }
  475. if end > 0 {
  476. db = db.Where("x.start_time<=?", end)
  477. }
  478. //offset := (page - 1) * limit
  479. err = db.Group("x.id").Count(&total).Select("x.id, x.user_org_id, x.patient_id, x.advice_type, x.advice_date, x.record_date, x.start_time, x.advice_name,x.advice_desc, x.reminder_date, x.drug_spec, x.drug_spec_unit, x.single_dose, x.single_dose_unit, x.prescribing_number, x.prescribing_number_unit, x.delivery_way, x.execution_frequency, x.advice_doctor, x.status, x.created_time,x.updated_time, x.advice_affirm, x.remark, x.stop_time, x.stop_reason, x.stop_doctor, x.stop_state, x.parent_id, x.execution_time, x.execution_staff, x.execution_state, x.checker, x.check_state, x.check_time, x.groupno,x.remind_type,x.frequency_type,x.day_count,x.week_day,x.parent_id,r.user_name,s.dialyzer_perfusion_apparatus,s.anticoagulant,s.anticoagulant_shouji,s.anticoagulant_weichi,s.anticoagulant_zongliang,s.dialysis_dialyszers,s.dialysis_irrigation, IF(x.parent_id > 0, x.parent_id, x.id) as advice_order").Joins("Left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.advice_doctor").Joins("left join xt_dialysis_prescription as s on s.patient_id = x.patient_id and s.record_date = x.advice_date and s.user_org_id = ?", orgID).Order("start_time desc, groupno desc, advice_order desc, id asc").Scan(&doctoradvice).Error
  480. fmt.Print("err", err)
  481. return
  482. }
  483. func GetNewDoctorAdviceOne(patientID int64, advice_type int64, start int64, end int64, limit int64, page int64, orgID int64) (doctoradvice []*models.DoctorAdvice, total int64, err error) {
  484. db := readDb.Table("xt_doctor_advice as x").Where("x.status = 1")
  485. table := UserReadDB().Table("sgj_user_admin_role as r")
  486. fmt.Println("table", table)
  487. tabletwo := readDb.Table("xt_dialysis_prescription as s").Where("s.status = 1")
  488. fmt.Print("table", table, tabletwo)
  489. if orgID > 0 {
  490. db = db.Where("x.user_org_id=?", orgID)
  491. }
  492. if patientID > 0 {
  493. db = db.Where("x.patient_id = ?", patientID)
  494. }
  495. if advice_type == 1 {
  496. db = db.Where("x.advice_type = ?", advice_type)
  497. }
  498. if advice_type == 3 {
  499. db = db.Where("x.advice_type = 2 or x.advice_type = 3")
  500. }
  501. if advice_type == 4 {
  502. db = db.Where("x.advice_type = ?", advice_type)
  503. }
  504. if start > 0 {
  505. db = db.Where("x.start_time>=?", start)
  506. }
  507. if end > 0 {
  508. db = db.Where("x.start_time<=?", end)
  509. }
  510. offset := (page - 1) * limit
  511. err = db.Order("x.start_time desc").Group("x.start_time").Count(&total).Offset(offset).Limit(limit).Select("x.id, x.user_org_id, x.patient_id, x.advice_type, x.advice_date, x.record_date, x.start_time, x.advice_name,x.advice_desc, x.reminder_date, x.drug_spec, x.drug_spec_unit, x.single_dose, x.single_dose_unit, x.prescribing_number, x.prescribing_number_unit, x.delivery_way, x.execution_frequency, x.advice_doctor, x.status, x.created_time,x.updated_time, x.advice_affirm, x.remark, x.stop_time, x.stop_reason, x.stop_doctor, x.stop_state, x.parent_id, x.execution_time, x.execution_staff, x.execution_state, x.checker, x.check_state, x.check_time, x.groupno,x.remind_type,x.frequency_type,x.day_count,x.week_day,x.parent_id,r.user_name,s.dialyzer_perfusion_apparatus,s.anticoagulant,s.anticoagulant_shouji,s.anticoagulant_weichi,s.anticoagulant_zongliang,s.dialysis_dialyszers,s.dialysis_irrigation, IF(x.parent_id > 0, x.parent_id, x.id) as advice_order").Joins("Left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.advice_doctor").Joins("left join xt_dialysis_prescription as s on s.patient_id = x.patient_id and s.record_date = x.advice_date and s.user_org_id = ?", orgID).Scan(&doctoradvice).Error
  512. fmt.Print("错误是什么", err)
  513. return
  514. }
  515. func GetDryWeight(patientid int64, startime int64, endtime int64, limit int64, page int64, orgId int64) (dryWeight []*models.XtPatientDryweight, total int64, err error) {
  516. db := XTReadDB().Table("xt_patient_dryweight as x").Where("x.status = 1")
  517. if orgId > 0 {
  518. db = db.Where("x.user_org_id = ?", orgId)
  519. }
  520. if patientid > 0 {
  521. db = db.Where("x.patient_id = ?", patientid)
  522. }
  523. if startime > 0 {
  524. db = db.Where("x.ctime >= ?", startime)
  525. }
  526. if endtime > 0 {
  527. db = db.Where("x.ctime <=?", endtime)
  528. }
  529. offset := (page - 1) * limit
  530. err = db.Count(&total).Order("x.ctime desc").Offset(offset).Limit(limit).Group("x.id").
  531. Select("x.id,x.dry_weight,x.creator,x.remakes,x.patient_id,x.ctime,x.adjusted_value,x.user_id,x.user_org_id,r.user_name").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.creator and r.org_id = x.user_org_id").Scan(&dryWeight).Error
  532. return dryWeight, total, err
  533. }
  534. func ToSearch(orgId int64, name string) (patient []*models.XtPatientsNew, err error) {
  535. likeKey := "%" + name + "%"
  536. err = XTReadDB().Where("name like ? and user_org_id = ?", likeKey, orgId).Find(&patient).Error
  537. return patient, err
  538. }
  539. func GetCourseManagement(patientid int64, startime int64, endtime int64, limit int64, page int64, orgid int64) (patientCourse []*models.PatientCourseOfDiseases, total int64, err error) {
  540. db := XTReadDB().Table("xt_patient_course_of_disease as x").Where("x.status = 1")
  541. if patientid > 0 {
  542. db = db.Where("x.patient_id = ?", patientid)
  543. }
  544. if orgid > 0 {
  545. db = db.Where("x.org_id = ?", orgid)
  546. }
  547. if startime > 0 {
  548. db = db.Where("x.record_time >=?", startime)
  549. }
  550. if endtime > 0 {
  551. db = db.Where("x.record_time <= ?", endtime)
  552. }
  553. offset := (page - 1) * limit
  554. err = db.Count(&total).Order("x.ctime desc").Offset(offset).Limit(limit).Group("x.id").
  555. Select("x.id,x.org_id,x.patient_id,x.recorder,x.record_time,x.content,x.title,r.user_name").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.recorder").Scan(&patientCourse).Error
  556. return patientCourse, total, err
  557. }
  558. func DeleteCouseManagement(patientid int64) error {
  559. err := XTWriteDB().Model(models.PatientCourseOfDisease{}).Where("id = ?", patientid).Update(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
  560. return err
  561. }
  562. func GetCouseManagentDetail(id int64) (models.PatientCourseOfDiseasess, error) {
  563. disease := models.PatientCourseOfDiseasess{}
  564. db := XTReadDB().Table("xt_patient_course_of_disease as x")
  565. err := db.Select("x.id,x.org_id,x.patient_id,x.recorder,x.record_time,x.content,x.title,s.name,r.user_name").Joins("left join xt_patients as s on s.id = x.patient_id ").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.recorder").Where("x.id = ?", id).Scan(&disease).Error
  566. return disease, err
  567. }
  568. func DeleteDryWeight(id int64) error {
  569. err := XTWriteDB().Model(models.SgjPatientDryweight{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
  570. return err
  571. }
  572. func GetDryWeightDetail(id int64) (models.SgjPatientDryweights, error) {
  573. dryweight := models.SgjPatientDryweights{}
  574. db := XTReadDB().Table("xt_patient_dryweight as x")
  575. err := db.Select("x.id,x.dry_weight,x.creator,x.remakes,x.patient_id,x.adjusted_value,x.user_org_id,x.user_id,x.ctime,s.name,r.user_name").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.user_id").Where("x.id = ?", id).Scan(&dryweight).Error
  576. return dryweight, err
  577. }
  578. func GetlongDialysisrecord(patientid int64, startime int64, endtime int64, limit int64, page int64, orgid int64) (prescription []*models.XtDialysisSolution, total int64, err error) {
  579. db := XTReadDB().Table("xt_dialysis_solution as x").Where("x.status = 1 and x.solution_status=1")
  580. if patientid > 0 {
  581. db = db.Where("x.patient_id = ?", patientid)
  582. }
  583. if orgid > 0 {
  584. db = db.Where("x.user_org_id = ?", orgid)
  585. }
  586. if startime > 0 {
  587. db = db.Where("x.created_time >=?", startime)
  588. }
  589. if endtime > 0 {
  590. db = db.Where("x.created_time <= ?", endtime)
  591. }
  592. offset := (page - 1) * limit
  593. err = db.Count(&total).Order("x.created_time desc").Offset(offset).Limit(limit).Group("x.id").
  594. Select("x.id,x.name,x.sub_name,x.user_org_id,x.patient_id,x.parent_id,x.type,x.period,x.times,x.anticoagulant,x.anticoagulant_shouji,x.anticoagulant_weichi,x.anticoagulant_zongliang,x.anticoagulant_gaimingcheng,x.anticoagulant_gaijiliang,x.mode_name,x.mode_id,x.dialysis_duration,x.replacement_way,x.hemodialysis_machine,x.blood_filter,x.perfusion_apparatus,x.blood_flow_volume,x.dewater,x.displace_liqui,x.glucose,x.dry_weight,x.dialysate_flow,x.kalium,x.sodium,x.calcium,x.bicarbonate,x.doctor,x.first_dialysis,x.remark,x.initiate_mode,x.affirm_state,x.use_state,x.status,x.registrars_id,x.created_time,x.updated_time,x.solution_type,x.dialysate_temperature,x.conductivity,x.dialysis_duration_hour,x.dialysis_duration_minute,x.target_ultrafiltration,x.dialysate_formulation,x.dialyzer,x.replacement_total,x.dialyzer_perfusion_apparatus,x.body_fluid,x.special_medicine,x.special_medicine_other,x.displace_liqui_part,x.displace_liqui_value,x.blood_access,x.ultrafiltration,x.body_fluid_other,x.target_ktv,x.dialysis_dialyszers,x.dialysis_irrigation").Find(&prescription).Error
  595. return
  596. }
  597. func GetRescuerecord(patientid int64, startime int64, endtime int64, limit int64, page int64, orgid int64) (rescuerecord []*models.XtPatientRescueRecords, total int64, err error) {
  598. db := XTReadDB().Table("xt_patient_rescue_record as x").Where("x.status = 1")
  599. if patientid > 0 {
  600. db = db.Where("x.patient_id = ?", patientid)
  601. }
  602. if orgid > 0 {
  603. db = db.Where("x.org_id = ?", orgid)
  604. }
  605. if startime > 0 {
  606. db = db.Where("x.record_time >=?", startime)
  607. }
  608. if endtime > 0 {
  609. db = db.Where("x.record_time <= ?", endtime)
  610. }
  611. offset := (page - 1) * limit
  612. err = db.Count(&total).Order("x.record_time desc").Offset(offset).Limit(limit).Group("x.id").
  613. Select("x.id,x.org_id,x.patient_id,x.recorder,x.record_time,x.content,x.status,r.user_name").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.recorder").Scan(&rescuerecord).Error
  614. return
  615. }
  616. func GetScheduling(patientid int64, startime int64, endtime int64, limit int64, page int64, orgid int64, modeType int64) (schedules []*models.XtSchedules, total int64, err error) {
  617. db := XTReadDB().Table("xt_schedule as x").Where("x.status = 1")
  618. if patientid > 0 {
  619. db = db.Where("x.patient_id = ?", patientid)
  620. }
  621. if orgid > 0 {
  622. db = db.Where("x.user_org_id = ?", orgid)
  623. }
  624. if startime > 0 {
  625. db = db.Where("x.schedule_date >=?", startime)
  626. }
  627. if endtime > 0 {
  628. db = db.Where("x.schedule_date <= ?", endtime)
  629. }
  630. if modeType > 0 {
  631. db = db.Where("x.mode_id = ?", modeType)
  632. }
  633. offset := (page - 1) * limit
  634. err = db.Count(&total).Order("x.schedule_date desc").Offset(offset).Limit(limit).Group("x.id").
  635. Select("x.id,x.user_org_id,x.partition_id,x.bed_id,x.patient_id,x.schedule_date,x.schedule_type,x.schedule_week,x.mode_id,x.status,x.created_time,x.updated_time,s.number,z.name").Joins("left join xt_device_number as s on s.id = x.bed_id").Joins("left join xt_device_zone as z on z.id = x.partition_id").Scan(&schedules).Error
  636. return
  637. }
  638. func GetEducation(patientid int64, startime int64, endtime int64, limit int64, page int64, orgid int64) (treatment []*models.XtTreatmentSummary, total int64, err error) {
  639. db := XTReadDB().Table("xt_treatment_summary as x").Where("x.status = 1")
  640. if patientid > 0 {
  641. db = db.Where("x.patient_id = ?", patientid)
  642. }
  643. if orgid > 0 {
  644. db = db.Where("x.user_org_id = ?", orgid)
  645. }
  646. if startime > 0 {
  647. db = db.Where("x.assessment_date >=?", startime)
  648. }
  649. if endtime > 0 {
  650. db = db.Where("x.assessment_date <= ?", endtime)
  651. }
  652. offset := (page - 1) * limit
  653. err = db.Count(&total).Order("x.assessment_date desc").Offset(offset).Limit(limit).Group("x.id").
  654. Select("x.id,x.user_org_id,x.patient_id,x.assessment_date,x.dialysis_order_id,x.mission,x.dialysis_summary,x.change,x.sj_nurse,x.zl_nurse,x.hd_nurse,x.xj_nurse,x.zl_doctor,x.channel_image,x.puncture,x.puncture_needle,x.puncture_direction,x.status,x.created_time,x.updated_time,x.creater,x.modifier").Scan(&treatment).Error
  655. return
  656. }
  657. func GetSchedulingDetail(id int64) (models.XtScheduless, error) {
  658. schedules := models.XtScheduless{}
  659. db := XTReadDB().Table("xt_schedule as x")
  660. err := db.Select("x.id,x.user_org_id,x.partition_id,x.bed_id,x.patient_id,x.schedule_date,x.schedule_type,x.schedule_week,x.mode_id,n.number,z.name").Joins("left join xt_device_number as n on n.id = x.bed_id").Joins("left join xt_device_zone as z on z.id = x.partition_id").Where("x.id =?", id).Scan(&schedules).Error
  661. return schedules, err
  662. }
  663. func GetSchedulingTwo(id int64) (models.XtScheduless, error) {
  664. schedules := models.XtScheduless{}
  665. db := XTReadDB().Table("xt_schedule as x")
  666. err := db.Select("x.id,x.user_org_id,x.partition_id,x.bed_id,x.patient_id,x.schedule_date,x.schedule_type,x.schedule_week,x.mode_id,z.name").Joins("left join xt_patients as z on z.id = x.patient_id").Where("x.id =?", id).Scan(&schedules).Error
  667. return schedules, err
  668. }
  669. func DeleteScheduling(id int64) error {
  670. err := XTWriteDB().Model(models.XtSchedules{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  671. return err
  672. }
  673. func GetEducationDetailOne(id int64) (models.XtTreatmentSummarys, error) {
  674. summarys := models.XtTreatmentSummarys{}
  675. db := XTReadDB().Table("xt_treatment_summary as x")
  676. err := db.Select("x.id,x.user_org_id,x.patient_id,x.assessment_date,x.dialysis_order_id,x.mission,x.dialysis_summary,x.change,x.sj_nurse,x.zl_nurse,x.hd_nurse,x.xj_nurse,x.zl_doctor,x.channel_image,x.puncture,x.puncture_needle,x.puncture_direction,x.status,x.created_time,x.creater,x.modifier,s.name").Joins("left join xt_patients as s on s.id = x.patient_id").Where("x.id = ?", id).Scan(&summarys).Error
  677. return summarys, err
  678. }
  679. func DeleteEducation(id int64) error {
  680. err := XTWriteDB().Model(models.XtTreatmentSummary{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  681. return err
  682. }
  683. func GetRescueRecordDetail(id int64) (models.XtPatientRescueRecords, error) {
  684. records := models.XtPatientRescueRecords{}
  685. db := XTReadDB().Table("xt_patient_rescue_record as x")
  686. err := db.Select("x.id,x.org_id,x.patient_id,x.recorder,x.record_time,x.content,x.status,r.user_name,s.name").Joins("left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = x.recorder").Joins("left join xt_patients as s on s.id = x.patient_id").Where("x.id=?", id).Scan(&records).Error
  687. return records, err
  688. }
  689. func DeleteRescueRecord(id int64) error {
  690. err := XTWriteDB().Model(models.XtPatientRescueRecord{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  691. return err
  692. }
  693. func ToSearchePatient(keyword string, orgId int64) (paitents []*models.XtPatientsNew, err error) {
  694. likeKey := "%" + keyword + "%"
  695. err = XTReadDB().Where("user_org_id = ? and name like ? or dialysis_no like ?", orgId, likeKey, likeKey).Find(&paitents).Error
  696. return paitents, err
  697. }
  698. func SearchallPatient(keyword string, orgid int64) (patients []*models.XtPatientsNew, err error) {
  699. db := XTReadDB().Table("xt_patients_new as x").Where("x.status = 1")
  700. if len(keyword) > 0 {
  701. likeKey := "%" + keyword + "%"
  702. db = db.Where("x.name LIKE ? OR x.dialysis_no LIKE ? OR x.first_letter=?", likeKey, likeKey, likeKey)
  703. }
  704. if orgid > 0 {
  705. db = db.Where("x.user_org_id = ?", orgid)
  706. }
  707. err = db.Select("x.id,x.user_org_id,x.user_id,x.avatar,x.patient_type,x.dialysis_no,x.admission_number,x.source,x.lapseto,x.partition_id,x.bed_id,x.name,x.alias,x.gender,x.marital_status,x.id_card_no,x.birthday,x.reimbursement_way_id,x.health_care_type,x.health_care_no,x.health_care_due_date,x.height,x.blood_type,x.rh,x.health_care_due_alert_date,x.education_level,x.profession,x.phone,x.home_telephone,x.relative_phone,x.relative_relations,x.home_address,x.work_unit,x.unit_address,x.children,x.receiving_date,x.is_hospital_first_dialysis,x.first_dialysis_date,x.first_dialysis_hospital,x.predialysis_condition,x.pre_hospital_dialysis_frequency,x.pre_hospital_dialysis_times,x.hospital_first_dialysis_date,x.induction_period,x.initial_dialysis,x.total_dialysis,x.attending_doctor_id,x.head_nurse_id,x.evaluate,x.diagnose,x.remark,x.registrars_id,x.registrars,x.qr_code,x.binding_state,x.patient_complains,x.present_history,x.past_history,x.temperature,x.pulse,x.respiratory,x.sbp,x.dbp,x.status,x.created_time,x.updated_time,x.nation,x.native_place,x.age,x.infectious_next_record_time,x.is_infectious,x.remind_cycle,x.response_result,x.is_open_remind,x.first_treatment_date,x.dialysis_age,x.expense_kind,x.tell_phone,x.contact_name,x.blood_patients,x.slow_patients,x.member_patients,x.ecommer_patients,x.blood_id,x.slow_id,x.member_id,x.member_fistdate,x.member_patienttype,x.member_treatement,x.equitment_id").Find(&patients).Error
  708. return patients, err
  709. }
  710. func GetSearchallBlood(keyword string, orgid int64) (patients []*models.XtPatientsNew, err error) {
  711. db := XTReadDB().Table("xt_patients_new as x").Where("x.status = 1 and x.blood_patients = 1")
  712. if len(keyword) > 0 {
  713. likeKey := "%" + keyword + "%"
  714. db = db.Where("x.name LIKE ? OR x.dialysis_no LIKE ?", likeKey, likeKey)
  715. }
  716. if orgid > 0 {
  717. db = db.Where("x.user_org_id = ?", orgid)
  718. }
  719. err = db.Select("x.id,x.user_org_id,x.user_id,x.avatar,x.patient_type,x.dialysis_no,x.admission_number,x.source,x.lapseto,x.partition_id,x.bed_id,x.name,x.alias,x.gender,x.marital_status,x.id_card_no,x.birthday,x.reimbursement_way_id,x.health_care_type,x.health_care_no,x.health_care_due_date,x.height,x.blood_type,x.rh,x.health_care_due_alert_date,x.education_level,x.profession,x.phone,x.home_telephone,x.relative_phone,x.relative_relations,x.home_address,x.work_unit,x.unit_address,x.children,x.receiving_date,x.is_hospital_first_dialysis,x.first_dialysis_date,x.first_dialysis_hospital,x.predialysis_condition,x.pre_hospital_dialysis_frequency,x.pre_hospital_dialysis_times,x.hospital_first_dialysis_date,x.induction_period,x.initial_dialysis,x.total_dialysis,x.attending_doctor_id,x.head_nurse_id,x.evaluate,x.diagnose,x.remark,x.registrars_id,x.registrars,x.qr_code,x.binding_state,x.patient_complains,x.present_history,x.past_history,x.temperature,x.pulse,x.respiratory,x.sbp,x.dbp,x.status,x.created_time,x.updated_time,x.nation,x.native_place,x.age,x.infectious_next_record_time,x.is_infectious,x.remind_cycle,x.response_result,x.is_open_remind,x.first_treatment_date,x.dialysis_age,x.expense_kind,x.tell_phone,x.contact_name,x.blood_patients,x.slow_patients,x.member_patients,x.ecommer_patients,x.blood_id,x.slow_id,x.member_id,x.member_fistdate,x.member_patienttype,x.member_treatement,x.equitment_id").Find(&patients).Error
  720. return patients, err
  721. }
  722. func GetSlowSearchePatient(keyword string, orgid int64) (patients []*models.XtPatientsNew, err error) {
  723. db := XTReadDB().Table("xt_patients_new as x").Where("x.status = 1 and x.slow_patients = 1")
  724. if len(keyword) > 0 {
  725. likeKey := "%" + keyword + "%"
  726. db = db.Where("x.name LIKE ? OR x.dialysis_no LIKE ?", likeKey, likeKey)
  727. }
  728. if orgid > 0 {
  729. db = db.Where("x.user_org_id = ?", orgid)
  730. }
  731. err = db.Select("x.id,x.user_org_id,x.user_id,x.avatar,x.patient_type,x.dialysis_no,x.admission_number,x.source,x.lapseto,x.partition_id,x.bed_id,x.name,x.alias,x.gender,x.marital_status,x.id_card_no,x.birthday,x.reimbursement_way_id,x.health_care_type,x.health_care_no,x.health_care_due_date,x.height,x.blood_type,x.rh,x.health_care_due_alert_date,x.education_level,x.profession,x.phone,x.home_telephone,x.relative_phone,x.relative_relations,x.home_address,x.work_unit,x.unit_address,x.children,x.receiving_date,x.is_hospital_first_dialysis,x.first_dialysis_date,x.first_dialysis_hospital,x.predialysis_condition,x.pre_hospital_dialysis_frequency,x.pre_hospital_dialysis_times,x.hospital_first_dialysis_date,x.induction_period,x.initial_dialysis,x.total_dialysis,x.attending_doctor_id,x.head_nurse_id,x.evaluate,x.diagnose,x.remark,x.registrars_id,x.registrars,x.qr_code,x.binding_state,x.patient_complains,x.present_history,x.past_history,x.temperature,x.pulse,x.respiratory,x.sbp,x.dbp,x.status,x.created_time,x.updated_time,x.nation,x.native_place,x.age,x.infectious_next_record_time,x.is_infectious,x.remind_cycle,x.response_result,x.is_open_remind,x.first_treatment_date,x.dialysis_age,x.expense_kind,x.tell_phone,x.contact_name,x.blood_patients,x.slow_patients,x.member_patients,x.ecommer_patients,x.blood_id,x.slow_id,x.member_id,x.member_fistdate,x.member_patienttype,x.member_treatement,x.equitment_id").Find(&patients).Error
  732. return patients, err
  733. }
  734. func GetMemberSearchPatient(keyword string, orgid int64) (patients []*models.XtPatientsNew, err error) {
  735. db := XTReadDB().Table("xt_patients_new as x").Where("x.status = 1 and x.member_patients = 1")
  736. if len(keyword) > 0 {
  737. likeKey := "%" + keyword + "%"
  738. db = db.Where("x.name LIKE ? OR x.dialysis_no LIKE ?", likeKey, likeKey)
  739. }
  740. if orgid > 0 {
  741. db = db.Where("x.user_org_id = ?", orgid)
  742. }
  743. err = db.Select("x.id,x.user_org_id,x.user_id,x.avatar,x.patient_type,x.dialysis_no,x.admission_number,x.source,x.lapseto,x.partition_id,x.bed_id,x.name,x.alias,x.gender,x.marital_status,x.id_card_no,x.birthday,x.reimbursement_way_id,x.health_care_type,x.health_care_no,x.health_care_due_date,x.height,x.blood_type,x.rh,x.health_care_due_alert_date,x.education_level,x.profession,x.phone,x.home_telephone,x.relative_phone,x.relative_relations,x.home_address,x.work_unit,x.unit_address,x.children,x.receiving_date,x.is_hospital_first_dialysis,x.first_dialysis_date,x.first_dialysis_hospital,x.predialysis_condition,x.pre_hospital_dialysis_frequency,x.pre_hospital_dialysis_times,x.hospital_first_dialysis_date,x.induction_period,x.initial_dialysis,x.total_dialysis,x.attending_doctor_id,x.head_nurse_id,x.evaluate,x.diagnose,x.remark,x.registrars_id,x.registrars,x.qr_code,x.binding_state,x.patient_complains,x.present_history,x.past_history,x.temperature,x.pulse,x.respiratory,x.sbp,x.dbp,x.status,x.created_time,x.updated_time,x.nation,x.native_place,x.age,x.infectious_next_record_time,x.is_infectious,x.remind_cycle,x.response_result,x.is_open_remind,x.first_treatment_date,x.dialysis_age,x.expense_kind,x.tell_phone,x.contact_name,x.blood_patients,x.slow_patients,x.member_patients,x.ecommer_patients,x.blood_id,x.slow_id,x.member_id,x.member_fistdate,x.member_patienttype,x.member_treatement,x.equitment_id").Find(&patients).Error
  744. return patients, err
  745. }
  746. func GetLongDialysisDetail(id int64) (models.XtDialysisSolution, error) {
  747. solution := models.XtDialysisSolution{}
  748. err := XTReadDB().Model(&solution).Where("id=? and status =1", id).Find(&solution).Error
  749. return solution, err
  750. }
  751. func GetPatientName(id int64) (models.Patients, error) {
  752. patientsNew := models.Patients{}
  753. err := XTReadDB().Model(&patientsNew).Where("id = ? and status = 1", id).Find(&patientsNew).Error
  754. return patientsNew, err
  755. }
  756. func DeleteLongDialysis(id int64) error {
  757. err := XTWriteDB().Model(models.XtDialysisSolution{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
  758. return err
  759. }
  760. func GetDialysisrecord(patientID int64, start int64, end int64, limit int64, page int64, orgID int64, mode_id int64) ([]*models.PatientDialysisRecord, int64, error) {
  761. offset := (page - 1) * limit
  762. var total int64
  763. var err error
  764. var orders []*models.PatientDialysisRecord
  765. db := readDb.Table("xt_dialysis_order as do").
  766. Preload("MonitoringRecord", "patient_id = ? and user_org_id = ? and status = 1", patientID, orgID).
  767. Preload("DialysisPrescription", "patient_id=? and user_org_id=? and status=1", patientID, orgID).
  768. Preload("PredialysisEvaluation", "patient_id=? and user_org_id=? and status=1", patientID, orgID).
  769. Preload("DialysisPrescription", func(db *gorm.DB) *gorm.DB {
  770. return readDb.Where("patient_id=? and user_org_id=? and status=1", patientID, orgID).Preload("UserAdminRole", func(db *gorm.DB) *gorm.DB {
  771. return readUserDb.Where("status = 1")
  772. })
  773. }).
  774. Preload("AssessmentAfterDislysis", "patient_id=? and user_org_id=? and status=1", patientID, orgID).
  775. Preload("TreatmentSummary", "patient_id=? and user_org_id=? and status=1", patientID, orgID).
  776. Preload("Device", "org_id=? and status=1", orgID).
  777. Preload("UserAdminRole", func(db *gorm.DB) *gorm.DB {
  778. return readUserDb.Where("org_id=? and status = 1", orgID)
  779. }).
  780. Joins("JOIN xt_schedule as s ON s.patient_id=? and FROM_UNIXTIME(s.schedule_date, '%Y-%m-%d')=FROM_UNIXTIME(do.dialysis_date, '%Y-%m-%d')", patientID).
  781. Joins("JOIN xt_device_zone as dz ON dz.org_id = ? and dz.id=s.partition_id and s.status = 1", orgID).
  782. Where("do.patient_id=? and do.user_org_id=? and do.stage = 2 and do.status=1", patientID, orgID).Group("s.schedule_date")
  783. if start > 0 {
  784. db = db.Where("do.dialysis_date>=?", start)
  785. }
  786. if end > 0 {
  787. db = db.Where("do.dialysis_date<=?", end)
  788. }
  789. if mode_id > 0 {
  790. db = db.Joins("JOIN xt_dialysis_prescription as dp ON dp.record_id=do.id")
  791. db = db.Where("dp.mode_id=?", mode_id)
  792. }
  793. err = db.Count(&total).Offset(offset).Limit(limit).Order("do.dialysis_date desc").Select("do.bed_id, do.id, do.dialysis_date, do.user_org_id, do.patient_id, do.prescription_id, do.stage, do.remark, do.status, do.created_time, do.updated_time,do.start_nurse,do.finish_nurse ,s.schedule_type, s.partition_id, dz.name as partition_name").Find(&orders).Error
  794. if len(orders) > 0 {
  795. ids := make([]int64, 0)
  796. for _, order := range orders {
  797. dialyzer := order.DialysisPrescription.Dialyzer
  798. ids = append(ids, dialyzer)
  799. }
  800. if len(ids) > 0 {
  801. var dialyzers []*models.DeviceNumber
  802. err = readDb.Model(&models.DeviceNumber{}).Where("id IN (?) and org_id=? and status=1", ids, orgID).Find(&dialyzers).Error
  803. if err != nil {
  804. return nil, 0, err
  805. }
  806. dialyzerMap := make(map[int64]models.DeviceNumber, 0)
  807. for _, item := range dialyzers {
  808. dialyzerMap[item.ID] = *item
  809. }
  810. for orderIndex, order := range orders {
  811. if _, exist := dialyzerMap[order.DialysisPrescription.Dialyzer]; exist {
  812. orders[orderIndex].DeviceNumber = dialyzerMap[order.DialysisPrescription.Dialyzer].Number
  813. }
  814. }
  815. }
  816. }
  817. return orders, total, err
  818. }
  819. func GetAllDoctorTwo(orgid int64, appid int64) (appRole []*models.SgjUserAdminRole, err error) {
  820. err = UserReadDB().Where("org_id = ? and app_id = ?", orgid, appid).Find(&appRole).Error
  821. return appRole, err
  822. }
  823. func GetDoctorAdviceDetail(state int64, id int64, orgid int64) (advices []*models.DoctorAdvices, err error) {
  824. db := XTReadDB().Table("xt_doctor_advice as x")
  825. err = db.Order("x.id desc").Select("x.id,x.user_org_id,x.patient_id,x.advice_type,x.advice_date,x.start_time,x.advice_name,x.advice_desc,x.reminder_date,x.single_dose,x.single_dose_unit,x.prescribing_number,x.prescribing_number_unit,x.delivery_way,x.execution_frequency,x.advice_doctor,x.status,x.created_time,x.updated_time,x.advice_affirm,x.remark,x.stop_time,x.stop_reason,x.stop_doctor,x.stop_state,x.parent_id,x.execution_time,x.execution_staff,x.execution_state,x.checker,x.record_date,x.dialysis_order_id,x.check_time,x.check_state,x.drug_spec,x.drug_spec_unit,x.groupno,x.remind_type,x.frequency_type,x.day_count,x.week_day,x.template_id,x.modifier,s.name").Joins("left join xt_patients as s on s.id=x.patient_id").Where("x.start_time = ? and x.patient_id = ? and x.user_org_id = ? and x.status = 1", state, id, orgid).Scan(&advices).Error
  826. return advices, err
  827. }
  828. func DeleteManagement(groupid int64, orgid int64, patientid int64) error {
  829. err := XTWriteDB().Model(models.DoctorAdvice{}).Where("start_time =? and user_org_id = ? and patient_id =?", groupid, orgid, patientid).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  830. return err
  831. }
  832. func DeleteChild(id int64) error {
  833. err := XTWriteDB().Model(models.DoctorAdvice{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  834. return err
  835. }
  836. func DeletePatient(id int64) error {
  837. err = XTWriteDB().Model(models.DoctorAdvice{}).Where("id=? or parent_id = ?", id, id).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  838. return err
  839. }
  840. func GetNewPatient(id int64) (models.XtPatientsNew, error) {
  841. patientsNew := models.XtPatientsNew{}
  842. err := XTReadDB().Model(&patientsNew).Where("id=?", id).Find(&patientsNew).Error
  843. return patientsNew, err
  844. }
  845. func UpdatedPatient(patients models.Patients, id int64) error {
  846. err := XTWriteDB().Model(&patients).Where("id=?", id).Update(map[string]interface{}{"name": patients.Name, "gender": patients.Gender, "birthday": patients.Birthday, "age": patients.Age, "phone": patients.Phone, "lapseto": patients.Lapseto, "admission_number": patients.AdmissionNumber, "first_dialysis_date": patients.FirstDialysisDate, "diagnose": patients.Diagnose, "source": patients.Source, "dialysis_no": patients.DialysisNo, "avatar": patients.Avatar, "id_card_no": patients.IdCardNo, "is_infectious": patients.IsInfectious, "out_reason": patients.OutReason, "death_time": patients.DeathTime, "relative_phone": patients.RelativePhone, "sch_remark": patients.SchRemark, "treatment_plan": patients.TreatmentPlan, "patient_type": patients.PatientType, "updated_time": time.Now().Unix()}).Error
  847. return err
  848. }
  849. func UpdateXtPatientNew(patients models.XtPatientsNew, id int64) error {
  850. err := XTWriteDB().Model(&patients).Where("id=?", id).Update(map[string]interface{}{"name": patients.Name, "gender": patients.Gender, "birthday": patients.Birthday, "age": patients.Age, "phone": patients.Phone, "lapseto": patients.Lapseto, "admission_number": patients.AdmissionNumber, "first_dialysis_date": patients.FirstDialysisDate, "diagnose": patients.Diagnose, "source": patients.Source, "dialysis_no": patients.DialysisNo, "avatar": patients.Avatar, "id_card_no": patients.IdCardNo, "is_infectious": patients.IsInfectious, "out_reason": patients.OutReason, "death_time": patients.DeathTime, "relative_phone": patients.RelativePhone, "sch_remark": patients.SchRemark, "treatment_plan": patients.TreatmentPlan, "patient_type": patients.PatientType}).Error
  851. return err
  852. }
  853. func UpdateXtPatientNewOne(patients models.XtPatientsNew, id int64) error {
  854. err := XTWriteDB().Model(&patients).Where("id=?", id).Update(map[string]interface{}{"name": patients.Name, "gender": patients.Gender, "birthday": patients.Birthday, "age": patients.Age, "phone": patients.Phone, "lapseto": patients.Lapseto, "adminssion_number": patients.AdmissionNumber, "first_dialysis_date": patients.FirstDialysisDate, "diagnose": patients.Diagnose, "source": patients.Source, "dialysis_no": patients.DialysisNo, "avatar": patients.Avatar, "id_card_no": patients.IdCardNo, "is_infectious": patients.IsInfectious, "member_patienttype": patients.MemberPatienttype, "member_treatement": patients.MemberTreatement, "treatment_plan": patients.TreatmentPlan}).Error
  855. return err
  856. }
  857. func UpdateContagions(patientid int64) (models.XtPatientsInfectiousDiseases, error) {
  858. diseases := models.XtPatientsInfectiousDiseases{}
  859. err := XTWriteDB().Model(&diseases).Where("patient_id = ?", patientid).Update(map[string]interface{}{"status": 2, "updated_time": time.Now().Unix()}).Error
  860. return diseases, err
  861. }
  862. func UpdateCustomer(cdmpatient models.CdmPatients, id int64) error {
  863. err := PatientWriteDB().Model(&cdmpatient).Where("id=?", id).Update(map[string]interface{}{"name": cdmpatient.Name, "phone": cdmpatient.Phone, "gender": cdmpatient.Gender, "birthday": cdmpatient.Birthday, "diagnose": cdmpatient.Diagnose, "source": cdmpatient.Source, "avatar": cdmpatient.Avatar, "id_card_no": cdmpatient.IdCardNo, "updated_time": cdmpatient.UpdatedTime}).Error
  864. return err
  865. }
  866. func UpdatedCustomer(customer models.SgjUserCustomer, id int64) error {
  867. err := UserWriteDB().Model(&customer).Where("id = ?", id).Update(map[string]interface{}{"name": customer.Name, "mobile": customer.Mobile, "gender": customer.Gender, "birthday": customer.Birthday, "ill_date": customer.IllDate, "avatar": customer.Avatar, "illness_id": customer.IllnessId, "treat_type": customer.TreatType}).Error
  868. return err
  869. }
  870. func GetInspectionByOrgId(orgid int64) (*models.XtInspectionReference, error) {
  871. diseases := models.XtInspectionReference{}
  872. err := XTReadDB().Model(&diseases).Where("org_id = ? and status = 1", orgid).Find(&diseases).Error
  873. if err == gorm.ErrRecordNotFound {
  874. return nil, err
  875. }
  876. if err != nil {
  877. return nil, err
  878. }
  879. return &diseases, nil
  880. }
  881. func GetAllProjectName(date int64, orgid int64, patientid int64) (inspection []*models.XtInspection, err error) {
  882. err = XTReadDB().Model(&inspection).Where("inspect_date = ? and org_id = ? and patient_id = ? and status = 1", date, orgid, patientid).Order("inspect_date desc").Group("project_name").Find(&inspection).Error
  883. return inspection, err
  884. }
  885. func GetAllInspection(orgid int64) (inspection []*models.XtInspectionReference, err error) {
  886. err = XTReadDB().Model(&inspection).Where("org_id = ? and status = 1", orgid).Group("project_name").Find(&inspection).Error
  887. return inspection, err
  888. }
  889. func GetInspection(patientid int64, startime int64, endtime int64, limit int64, page int64, orgid int64, projectid int64) (inspection []*models.Inspection, total int64, err error) {
  890. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  891. if patientid > 0 {
  892. db = db.Where("x.patient_id = ?", patientid)
  893. }
  894. if startime > 0 {
  895. db = db.Where("x.inspect_date >= ?", startime)
  896. }
  897. if endtime > 0 {
  898. db = db.Where("x.inspect_date<=?", endtime)
  899. }
  900. if orgid > 0 {
  901. db = db.Where("x.org_id = ?", orgid)
  902. }
  903. if projectid > 0 {
  904. db = db.Where("x.project_id = ?", projectid)
  905. }
  906. err = db.Count(&total).Order("x.inspect_date desc").Group("x.id").
  907. Select("x.id,x.patient_id,x.org_id,x.project_id,x.item_id,x.item_name,x.project_name,x.inspect_type,x.inspect_value,x.inspect_date,x.created_time").Find(&inspection).Error
  908. return inspection, total, err
  909. }
  910. func GetInspectionDetail(patientid int64, date int64, orgid int64, projectid int64) (inspection []*models.Inspections, err error) {
  911. db := XTReadDB().Table("xt_inspection as x").Where("x.status =1")
  912. table := XTReadDB().Table("xt_inspection_reference as r")
  913. fmt.Print("table", table)
  914. if patientid > 0 {
  915. db = db.Where("x.patient_id = ?", patientid)
  916. }
  917. if date > 0 {
  918. db = db.Where("x.inspect_date = ?", date)
  919. }
  920. if orgid > 0 {
  921. db = db.Where("x.org_id = ?", orgid)
  922. }
  923. if projectid > 0 {
  924. db = db.Where("x.project_id = ?", projectid)
  925. }
  926. err = db.Group("x.id").Select("x.id,x.patient_id,x.org_id,x.project_id,x.item_id,x.item_name,x.project_name,x.inspect_type,x.inspect_value,x.inspect_date,x.status,x.created_time,x.updated_time,r.range_type,r.range_min,r.range_max,r.range_value,r.range_options,r.unit").Joins("left join xt_inspection_reference as r on (r.item_id = x.item_id AND r.org_id = x.org_id) OR ( x.item_id = r.id AND r.org_id = 0) ").Scan(&inspection).Error
  927. return inspection, err
  928. }
  929. func CreateFeedBack(feedback *models.XtPatientFeedback) error {
  930. err := XTWriteDB().Model(&feedback).Create(&feedback).Error
  931. return err
  932. }
  933. func DeleteInspection(date int64, orgid int64) error {
  934. err := XTWriteDB().Model(models.Inspection{}).Where("inspect_date = ? and org_id = ?", date, orgid).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  935. return err
  936. }
  937. func DeleteChildInspection(name string, date int64, orgid int64) error {
  938. err := XTWriteDB().Model(models.Inspection{}).Where("project_name = ? and inspect_date = ? and org_id = ?", name, date, orgid).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  939. return err
  940. }
  941. func SaveMessage(id int64, orgid int64, role *models.SgjUserAdminRole) error {
  942. err := UserWriteDB().Model(models.SgjUserAdminRole{}).Where("admin_user_id = ? and org_id = ?", id, orgid).Update(map[string]interface{}{"message": role.Message, "mtime": time.Now().Unix()}).Error
  943. return err
  944. }
  945. func SaveSex(id int64, role *models.SgjUserAdminRole) error {
  946. err := UserWriteDB().Model(models.SgjUserAdminRole{}).Where("admin_user_id = ?", id).Update(map[string]interface{}{"sex": role.Sex, "mtime": time.Now().Unix()}).Error
  947. return err
  948. }
  949. func SaveBirthday(id int64, role *models.SgjUserAdminRole) error {
  950. err := UserWriteDB().Model(models.SgjUserAdminRole{}).Where("admin_user_id = ?", id).Update(map[string]interface{}{"birthday": role.Birthday, "mtime": time.Now().Unix()}).Error
  951. return err
  952. }
  953. func GetPartitionByName(name string, orgid int64) (*models.DeviceZone, error) {
  954. zone := models.DeviceZone{}
  955. err := XTReadDB().Model(&zone).Where("name = ? and org_id = ? and status = 1", name, orgid).Find(&zone).Error
  956. if err == gorm.ErrRecordNotFound {
  957. return nil, err
  958. }
  959. if err != nil {
  960. return nil, err
  961. }
  962. return &zone, nil
  963. }
  964. func GetPartitionByNameOne(name string, orgid int64) (zone models.DeviceZone, err error) {
  965. err = XTReadDB().Model(&zone).Where("name = ? and org_id = ? and status = 1", name, orgid).First(&zone).Error
  966. return zone, err
  967. }
  968. func CreatedZone(zone *models.DeviceZone) error {
  969. err := XTWriteDB().Model(&zone).Create(&zone).Error
  970. return err
  971. }
  972. func GetAllZone(orgid int64, page int64, limit int64) (zone []*models.DeviceZones, total int64, err error) {
  973. db := XTReadDB().Table("xt_device_zone as x").Where("x.status =1")
  974. table := XTReadDB().Table("xt_device_number as n")
  975. fmt.Println("table", table)
  976. if orgid > 0 {
  977. db = db.Where("x.org_id = ?", orgid)
  978. }
  979. offset := (page - 1) * limit
  980. err = db.Group("x.id").Count(&total).Offset(offset).Limit(limit).Order("x.ctime desc").Select("x.id,x.org_id,x.name,x.type,n.number").Joins("left join xt_device_number as n on n.zone_id = x.id AND n.status = 1").Scan(&zone).Error
  981. return zone, total, err
  982. }
  983. func DeleteZoneById(id int64) error {
  984. err := XTWriteDB().Model(models.DeviceZone{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  985. return err
  986. }
  987. func GetGroupByName(name string, orgid int64) (*models.DeviceGroup, error) {
  988. group := models.DeviceGroup{}
  989. err := XTReadDB().Model(&group).Where("name = ? and org_id = ? and status = 1", name, orgid).Find(&group).Error
  990. if err == gorm.ErrRecordNotFound {
  991. return nil, err
  992. }
  993. if err != nil {
  994. return nil, err
  995. }
  996. return &group, nil
  997. }
  998. func GetGroupByNameOne(name string, orgid int64) (group models.DeviceGroup, err error) {
  999. err = XTReadDB().Model(&group).Where("name = ? and org_id = ? and status =1", name, orgid).First(&group).Error
  1000. return group, err
  1001. }
  1002. func SaveGroup(group *models.DeviceGroup) error {
  1003. err := XTWriteDB().Model(&group).Create(&group).Error
  1004. return err
  1005. }
  1006. func GetAllGroup(orgid int64, page int64, limit int64) (group []*models.DeviceGroups, total int64, err error) {
  1007. db := XTReadDB().Table("xt_device_group as x").Where("x.status = 1")
  1008. table := XTReadDB().Table("xt_device_number as n")
  1009. fmt.Println("table", table)
  1010. if orgid > 0 {
  1011. db = db.Where("x.org_id = ?", orgid)
  1012. }
  1013. offset := (page - 1) * limit
  1014. err = db.Group("x.id").Count(&total).Offset(offset).Limit(limit).Order("x.ctime desc").Select("x.id,x.org_id,x.name,x.status,x.ctime,x.mtime,n.number").Joins("left join xt_device_number as n on n.group_id = x.id And n.status = 1").Scan(&group).Error
  1015. return group, total, err
  1016. }
  1017. func DeleteGroup(id int64) error {
  1018. err := XTWriteDB().Model(models.DeviceGroup{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  1019. return err
  1020. }
  1021. func GetAllZoneOne(orgid int64) (zone []*models.DeviceZone, err error) {
  1022. err = XTReadDB().Model(&zone).Where("org_id = ? and status =1", orgid).Find(&zone).Error
  1023. return zone, err
  1024. }
  1025. func GetAllBedNumberList(orgid int64) (number []*models.DeviceNumber, err error) {
  1026. err = XTReadDB().Where("org_id =? and status =1", orgid).Find(&number).Error
  1027. return number, err
  1028. }
  1029. func GetPatientScheduleDialyCount(patient_id int64, start_time int64, end_time int64, org_id int64) (schedule []*models.XtSchedule, err error) {
  1030. err = XTReadDB().Where("patient_id = ? and schedule_date>=? and schedule_date<=? and user_org_id = ? and status=1", patient_id, start_time, end_time, org_id).Find(&schedule).Error
  1031. return schedule, err
  1032. }
  1033. func GetAllGroupOne(orgid int64) (group []*models.DeviceGroup, err error) {
  1034. err = XTReadDB().Model(&group).Where("org_id =?", orgid).Find(&group).Error
  1035. return group, err
  1036. }
  1037. func GetBedByName(name string, orgid int64) (*models.DeviceNumber, error) {
  1038. number := models.DeviceNumber{}
  1039. err := XTReadDB().Model(&number).Where("number=? and org_id = ? and status =1", name, orgid).Find(&number).Error
  1040. if err == gorm.ErrRecordNotFound {
  1041. return nil, err
  1042. }
  1043. if err != nil {
  1044. return nil, err
  1045. }
  1046. return &number, nil
  1047. }
  1048. func GetBedByNameOne(name string, orgid int64) (number models.DeviceNumber, err error) {
  1049. err = XTReadDB().Model(&number).Where("number=? and org_id = ? and status = 1", name, orgid).First(&number).Error
  1050. return number, err
  1051. }
  1052. func CreateNumber(number *models.DeviceNumber) error {
  1053. err := XTWriteDB().Model(&number).Create(&number).Error
  1054. return err
  1055. }
  1056. func GetAllNumber(page int64, limit int64, orgid int64) (number []*models.DeviceNumber, total int64, err error) {
  1057. db := XTReadDB().Table("xt_device_number as x").Where("x.status = 1")
  1058. if orgid > 0 {
  1059. db = db.Where("x.org_id = ?", orgid)
  1060. }
  1061. offset := (page - 1) * limit
  1062. err = db.Count(&total).Offset(offset).Limit(limit).Order("x.ctime asc").Select("x.id,x.org_id,x.number,x.group_id,x.zone_id,x.status").Find(&number).Error
  1063. return number, total, err
  1064. }
  1065. func GetSchedu(bedid int64, thetime int64, orgid int64) (*models.XtSchedule, error) {
  1066. schedule := models.XtSchedule{}
  1067. err := XTReadDB().Model(&schedule).Where("bed_id = ? and schedule_date = ? and user_org_id = ? and status = 1", bedid, thetime, orgid).Find(&schedule).Error
  1068. if err == gorm.ErrRecordNotFound {
  1069. return nil, err
  1070. }
  1071. if err != nil {
  1072. return nil, err
  1073. }
  1074. return &schedule, nil
  1075. }
  1076. func DeleteBed(id int64) error {
  1077. err := XTWriteDB().Model(models.DeviceNumber{}).Where("id=?", id).Update(map[string]interface{}{"status": 0, "ctime": time.Now().Unix()}).Error
  1078. return err
  1079. }
  1080. func GetMemberPatient(orgid int64) (patients []*models.XtPatientsNew, err error) {
  1081. err = XTReadDB().Model(&patients).Where("user_org_id = ? AND member_patients = ? AND status = 1", orgid, 1).Find(&patients).Error
  1082. return patients, err
  1083. }
  1084. func GetSlowPatient(orgid int64) (patients []*models.XtPatientsNew, err error) {
  1085. err = XTReadDB().Model(&patients).Where("user_org_id = ? AND slow_patients = ? AND status = 1", orgid, 1).Find(&patients).Error
  1086. return patients, err
  1087. }
  1088. func GetBloodPatient(orgid int64) (patients []*models.XtPatientsNew, err error) {
  1089. err = XTReadDB().Model(&patients).Where("user_org_id = ? AND blood_patients = ? AND status = 1", orgid, 1).Find(&patients).Error
  1090. return patients, err
  1091. }
  1092. func SaveName(id int64, admin *models.SgjUserAdmin) error {
  1093. err = UserWriteDB().Model(models.SgjUserAdmin{}).Where("id=?", id).Update(map[string]interface{}{"name": admin.Name, "mtime": time.Now().Unix()}).Error
  1094. return err
  1095. }
  1096. func GetAdminUserId(id int64) (models.SgjUserAdminRole, error) {
  1097. role := models.SgjUserAdminRole{}
  1098. err := UserReadDB().Where("id=? and status =1", id).Find(&role).Error
  1099. return role, err
  1100. }
  1101. func GetMyOrganaziton(id int64) (org []*models.SgjUserOrg, err error) {
  1102. db := UserReadDB().Table("sgj_user_org as x").Where("x.status = 1")
  1103. table := UserReadDB().Table("sgj_user_admin as a")
  1104. fmt.Println("table", table)
  1105. err = db.Select("x.id,x.creator,x.org_name,x.org_short_name,x.org_logo,x.org_introduction,x.illness,x.province,x.city,x.district,x.address,x.longitude,x.latitude,x.org_type,x.comments,x.evaluate,x.gallery,x.business_week,x.business_time,x.contact_name,x.telephone,x.claim,x.operating_state,x.source,x.ttype,x.ttid,x.tuid,x.reason,x.level,x.website,x.import,x.sortno,a.is_super_admin").Joins("left join sgj_user_admin as a on a.id = x.creator").Where("x.creator = ?", id).Scan(&org).Error
  1106. return org, err
  1107. }
  1108. func GetOrgInformation(id int64) (models.SgjUserOrg, error) {
  1109. org := models.SgjUserOrg{}
  1110. err := UserReadDB().Where("id=? and status = 1", id).Find(&org).Error
  1111. return org, err
  1112. }
  1113. func GetShortName(orgtype int64) (models.SgjUserOrgType, error) {
  1114. orgType := models.SgjUserOrgType{}
  1115. err := UserReadDB().Model(&orgType).Where("id=? and status = 1", orgtype).Find(&orgType).Error
  1116. return orgType, err
  1117. }
  1118. func GetTypeName(id int64) (models.SgjUserOrgType, error) {
  1119. orgType := models.SgjUserOrgType{}
  1120. err := UserReadDB().Model(&orgType).Where("id=? and status = 1", id).Find(&orgType).Error
  1121. return orgType, err
  1122. }
  1123. func GetOrgProvince(id int64) (models.SgjUserDistrict, error) {
  1124. district := models.SgjUserDistrict{}
  1125. err := UserReadDB().Model(&district).Where("id=?", id).Find(&district).Error
  1126. return district, err
  1127. }
  1128. func GetAllOrgType() (orgType []*models.SgjUserOrgType, err error) {
  1129. err = UserReadDB().Model(&models.SgjUserOrgType{}).Where("status= ? AND id = ? OR id = ? OR id = ? OR id = ? OR id = ? OR id = ?", 1, 1, 7, 12, 16, 21, 26).Find(&orgType).Error
  1130. return
  1131. }
  1132. func UpdateOrg(id int64, org models.SgjUserOrg) error {
  1133. err := UserWriteDB().Model(&org).Where("id = ?", id).Update(map[string]interface{}{"org_name": org.OrgName, "org_short_name": org.OrgShortName, "province": org.Province, "city": org.City, "district": org.District, "address": org.Address, "org_type": org.OrgType, "telephone": org.Telephone, "contact_name": org.ContactName, "mtime": time.Now().Unix()}).Error
  1134. return err
  1135. }
  1136. func GetMyInfoName(id int64) (models.SgjUserAdminRole, error) {
  1137. role := models.SgjUserAdminRole{}
  1138. err := UserReadDB().Model(&role).Where("id=? and status = 1", id).Find(&role).Error
  1139. return role, err
  1140. }
  1141. func GetAdminName(id int64, orgid int64) (models.AdminUsers, error) {
  1142. user := models.AdminUsers{}
  1143. //err := UserReadDB().Model(&user).Where("id=? and status =1", id).Find(&user).Error
  1144. //return user, err
  1145. db := UserReadDB().Table("sgj_user_admin as x").Where("x.status = 1")
  1146. table := UserReadDB().Table("sgj_user_admin_role as r")
  1147. fmt.Println("table", table)
  1148. err := db.Group("x.id").Select("x.id,x.mobile,x.password,x.is_super_admin,x.source,x.name,r.admin_user_id,r.org_id,r.app_id,r.role_id,r.user_name,r.avatar,r.message,r.sex,r.birthday").Where("x.id = ?", id).Joins("left join sgj_user_admin_role as r on r.admin_user_id = x.id and r.org_id = ?", orgid).Scan(&user).Error
  1149. return user, err
  1150. }
  1151. func GetCreatByOrgId(orgid int64) (models.SgjUserOrg, error) {
  1152. org := models.SgjUserOrg{}
  1153. err := UserReadDB().Model(&org).Where("id=? and status = 1", orgid).Find(&org).Error
  1154. return org, err
  1155. }
  1156. func GetMyOrgInformationFour(creator int64, orgid int64) (models.SgjUserAdminRole, error) {
  1157. role := models.SgjUserAdminRole{}
  1158. err := UserReadDB().Model(&role).Where("admin_user_id = ? and org_id = ? and status = 1", creator, orgid).Find(&role).Error
  1159. return role, err
  1160. }
  1161. func GetPartionDetail(id int64) (models.DeviceZone, error) {
  1162. zone := models.DeviceZone{}
  1163. err := XTReadDB().Model(&zone).Where("id=? and status = 1", id).Find(&zone).Error
  1164. return zone, err
  1165. }
  1166. func UpdatePartition(id int64, zone *models.DeviceZone) error {
  1167. err := XTWriteDB().Model(&zone).Where("id=?", id).Update(map[string]interface{}{"name": zone.Name, "type": zone.Type, "mtime": time.Now().Unix()}).Error
  1168. return err
  1169. }
  1170. func GetGroupDetail(id int64) (models.DeviceGroup, error) {
  1171. group := models.DeviceGroup{}
  1172. err := XTReadDB().Model(&group).Where("id=? and status = 1", id).Find(&group).Error
  1173. return group, err
  1174. }
  1175. func UpdateGroup(id int64, group *models.DeviceGroup) error {
  1176. err := XTWriteDB().Model(&group).Where("id=?", id).Update(map[string]interface{}{"name": group.Name, "mtime": time.Now().Unix()}).Error
  1177. return err
  1178. }
  1179. func GetBedDetail(id int64) (models.DeviceNumber, error) {
  1180. number := models.DeviceNumber{}
  1181. err := XTReadDB().Model(&number).Where("id=? and status =1", id).Find(&number).Error
  1182. return number, err
  1183. }
  1184. func UpdatedBed(id int64, number *models.DeviceNumber) error {
  1185. err = XTWriteDB().Model(&number).Where("id=?", id).Update(map[string]interface{}{"number": number.Number, "zone_id": number.ZoneID, "group_id": number.GroupID, "mtime": time.Now().Unix()}).Error
  1186. return err
  1187. }
  1188. func CreateLoginLod(log *models.SgjUserAdminLoginLog) error {
  1189. err := UserWriteDB().Model(&log).Create(&log).Error
  1190. return err
  1191. }
  1192. func GetAppId(orgid int64) (models.OrgApp, error) {
  1193. app := models.OrgApp{}
  1194. err := UserReadDB().Model(&app).Where("org_id = ? and status = 1 and app_type = 3", orgid).Find(&app).Error
  1195. return app, err
  1196. }
  1197. func GetRoleName(adminid int64, orgid int64, appid int64) (models.Roles, error) {
  1198. role := models.Roles{}
  1199. err := UserReadDB().Model(&role).Where("creator = ? and org_id = ? and app_id = ? and status =1", adminid, orgid, appid).Find(&role).Error
  1200. return role, err
  1201. }
  1202. func GetRole(id int64) (models.Role, error) {
  1203. role := models.Role{}
  1204. err := UserReadDB().Model(&role).Where("id = ? and status =1", id).Find(&role).Error
  1205. return role, err
  1206. }
  1207. func GetPositionName(adminid int64, orgid int64, appid int64) (models.App_Role, error) {
  1208. role := models.App_Role{}
  1209. err := UserReadDB().Model(&role).Where("admin_user_id = ? and org_id = ? and app_id = ?", adminid, orgid, appid).Find(&role).Error
  1210. return role, err
  1211. }
  1212. func GetAdmin(id int64) (models.SgjUserAdmin, error) {
  1213. admin := models.SgjUserAdmin{}
  1214. err := UserReadDB().Model(&admin).Where("id=? and status =1", id).Find(&admin).Error
  1215. return admin, err
  1216. }
  1217. func GetPosition(id int64) (models.SgjUserAdminRole, error) {
  1218. roles := models.SgjUserAdminRole{}
  1219. err = UserReadDB().Model(&roles).Where("id=? and status = 1", id).Find(&roles).Error
  1220. return roles, err
  1221. }
  1222. func GetPositionOne(id int64) (models.SgjUserAdmin, error) {
  1223. admin := models.SgjUserAdmin{}
  1224. err = UserReadDB().Model(&admin).Where("id=? and status = 1", id).Find(&admin).Error
  1225. return admin, err
  1226. }
  1227. func GetMyOrgInformation(id int64, appid int64) (models.SgjUserAdminRole, error) {
  1228. admin := models.SgjUserAdminRole{}
  1229. err := UserReadDB().Model(&admin).Where("admin_user_id=? and app_id = ? and status = 1", id, appid).First(&admin).Error
  1230. return admin, err
  1231. }
  1232. func SaveNameTwo(id int64, orgid int64, role *models.SgjUserAdminRole) error {
  1233. err := UserWriteDB().Model(models.SgjUserAdminRole{}).Where("admin_user_id =? and org_id = ?", id, orgid).Update(map[string]interface{}{"user_name": role.UserName, "mtime": time.Now().Unix()}).Error
  1234. return err
  1235. }
  1236. func AddPatientLapseto(lapseto *models.PatientLapseto) error {
  1237. err := XTWriteDB().Create(&lapseto).Error
  1238. return err
  1239. }
  1240. func GetDialysAfterRecord(patientid int64, startime int64, endtime int64, orgid int64) (dislysis []*models.XtAssessmentAfterDislysis, err error) {
  1241. db := XTReadDB().Model(&dislysis)
  1242. if startime > 0 {
  1243. db = db.Where("assessment_date >= ?", startime)
  1244. }
  1245. if endtime > 0 {
  1246. db = db.Where("assessment_date <= ?", endtime)
  1247. }
  1248. if patientid > 0 {
  1249. db = db.Where("patient_id = ?", patientid)
  1250. }
  1251. if orgid > 0 {
  1252. db = db.Where("user_org_id = ?", orgid)
  1253. }
  1254. err = db.Find(dislysis).Error
  1255. return dislysis, err
  1256. }
  1257. func GetDialysisDateByDate(starTime int64, patientId int64, orgId int64) (*models.XtPatientVascularAccess, error) {
  1258. access := models.XtPatientVascularAccess{}
  1259. err := XTReadDB().Model(&access).Where("start_time = ? and patient_id = ? and user_org_id = ? and status = 1", starTime, patientId, orgId).Find(&access).Error
  1260. if err == gorm.ErrRecordNotFound {
  1261. return nil, err
  1262. }
  1263. if err != nil {
  1264. return nil, err
  1265. }
  1266. return &access, nil
  1267. }
  1268. func GetDialysisDateByDateOne(starTime int64, patientId int64, orgId int64, id int64) (*models.XtPatientVascularAccess, error) {
  1269. access := models.XtPatientVascularAccess{}
  1270. err := XTReadDB().Model(&access).Where("start_time = ? and patient_id = ? and user_org_id = ? and status = 1 and id <> ?", starTime, patientId, orgId, id).Find(&access).Error
  1271. if err == gorm.ErrRecordNotFound {
  1272. return nil, err
  1273. }
  1274. if err != nil {
  1275. return nil, err
  1276. }
  1277. return &access, nil
  1278. }
  1279. func SaveVascularAccess(access *models.XtPatientVascularAccess) error {
  1280. err := XTWriteDB().Create(&access).Error
  1281. return err
  1282. }
  1283. func GetAllVacualAccessList(orgid int64, limit int64, page int64, patientId int64) (vascular []*models.XtPatientVascularAccess, total int64, err error) {
  1284. offset := (page - 1) * limit
  1285. err = XTReadDB().Model(&vascular).Where("user_org_id = ? and status = 1 and patient_id = ?", orgid, patientId).Count(&total).Offset(offset).Limit(limit).Order("start_time desc").Find(&vascular).Error
  1286. return vascular, total, err
  1287. }
  1288. func GetVasularAccessByDetail(id int64) (models.XtPatientVascularAccess, error) {
  1289. access := models.XtPatientVascularAccess{}
  1290. err := XTReadDB().Where("id = ? and status =1", id).Find(&access).Error
  1291. return access, err
  1292. }
  1293. func UpdateVascularAccess(access *models.XtPatientVascularAccess, id int64) error {
  1294. err := XTWriteDB().Model(&access).Where("id= ?", id).Updates(map[string]interface{}{"access_project": access.AccessProject, "blood_access_part_id": access.BloodAccessPartId, "inflow_pass": access.InflowPass, "start_time": access.StartTime, "first_start_time": access.FirstStartTime, "blood_access_part_opera_id": access.BloodAccessPartOperaId, "stop_reason": access.StopReason, "remark": access.Remark, "user_status": access.UserStatus, "modify": access.Modify, "stop_time": access.StopTime, "other_vascular": access.OtherVascular, "ci_type": access.CiType, "blood_cultupe": access.BloodCultupe, "sequelae_type": access.SequelaeType}).Error
  1295. return err
  1296. }
  1297. func DeleteVasularAccess(id int64) error {
  1298. access := models.XtPatientVascularAccess{}
  1299. err := XTWriteDB().Model(&access).Where("id = ?", id).Updates(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
  1300. return err
  1301. }
  1302. func CreatePatientWayAssessment(assessment *models.XtPatientPasswayAssessment) error {
  1303. err := XTWriteDB().Create(&assessment).Error
  1304. return err
  1305. }
  1306. func GetAllPassWayAssessment(parent_id int64, patient_id int64, page int64, limit int64, orgid int64) (assessment []*models.XtPatientPasswayAssessment, total int64, err error) {
  1307. offset := (page - 1) * limit
  1308. err = XTReadDB().Model(&assessment).Where("parent_id = ? and patient_id = ? and user_org_id = ? and status =1", parent_id, patient_id, orgid).Count(&total).Offset(offset).Limit(limit).Order("start_time desc").Find(&assessment).Error
  1309. return assessment, total, err
  1310. }
  1311. func GetPasswayAssesmentById(id int64) (models.XtPatientPasswayAssessment, error) {
  1312. assessment := models.XtPatientPasswayAssessment{}
  1313. err := XTReadDB().Model(&assessment).Where("id=? and status =1", id).Find(&assessment).Error
  1314. return assessment, err
  1315. }
  1316. func UpdatePassWayAssesment(assessment *models.XtPatientPasswayAssessment, id int64) error {
  1317. err := XTWriteDB().Model(&assessment).Where("id = ?", id).Updates(map[string]interface{}{"start_time": assessment.StartTime, "creator": assessment.Creator, "blood_project": assessment.BloodProject, "blood_result": assessment.BloodResult, "blood_dealwith": assessment.BloodDealwith, "modify": assessment.Modify, "updated_time": time.Now().Unix()}).Error
  1318. return err
  1319. }
  1320. func DeleteWayAssessment(id int64) error {
  1321. assessment := models.XtPatientPasswayAssessment{}
  1322. err := XTWriteDB().Model(&assessment).Where("id = ?", id).Updates(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
  1323. return err
  1324. }
  1325. func GetLastPassWayAssessment(orgid int64, patientId int64) (models.XtPatientVascularAccess, error) {
  1326. assessment := models.XtPatientVascularAccess{}
  1327. redis := RedisClient()
  1328. defer redis.Close()
  1329. // cur_date := time.Now().Format("2006-01-02")
  1330. key := strconv.FormatInt(orgid, 10) + ":" + strconv.FormatInt(patientId, 10) + ":pass_way_assessment_last"
  1331. pass_way_assessment_last_str, _ := redis.Get(key).Result()
  1332. if len(pass_way_assessment_last_str) == 0 { //没有到缓存数据,从数据库中获取数据,进行缓存到redis
  1333. err := XTReadDB().Model(&assessment).Where("user_org_id = ? and patient_id = ? and status =1 and user_status = 1", orgid, patientId).Order("start_time desc").Last(&assessment).Error
  1334. if err != nil {
  1335. if err == gorm.ErrRecordNotFound {
  1336. if assessment.ID <= 0 {
  1337. redis.Set(key, "pass_way_null", time.Second*60*60*18)
  1338. }
  1339. return assessment, nil
  1340. } else {
  1341. return assessment, err
  1342. }
  1343. } else {
  1344. if assessment.ID > 0 {
  1345. //缓存数据
  1346. pass_way_assessment_last_str, err := json.Marshal(assessment)
  1347. if err == nil {
  1348. redis.Set(key, pass_way_assessment_last_str, time.Second*60*60*18)
  1349. return assessment, nil
  1350. }
  1351. } else {
  1352. redis.Set(key, "pass_way_null", time.Second*60*60*18)
  1353. return assessment, nil
  1354. }
  1355. return assessment, nil
  1356. }
  1357. } else { //缓存数据了数据,将redis缓存的json字符串转为map
  1358. if pass_way_assessment_last_str == "pass_way_null" {
  1359. return assessment, nil
  1360. } else {
  1361. json.Unmarshal([]byte(pass_way_assessment_last_str), &assessment)
  1362. return assessment, nil
  1363. }
  1364. }
  1365. }
  1366. func GetAccessList(orgid int64) (*models.Dataconfig, error) {
  1367. dataconfig := models.Dataconfig{}
  1368. err := XTReadDB().Model(&dataconfig).Where("org_id = 0 and name = '血管通路' and status = ?", 1).Find(&dataconfig).Error
  1369. return &dataconfig, err
  1370. }
  1371. func GetParentAccessList(orgid int64, parentid int64) (dataconfig []*models.Dataconfig, err error) {
  1372. err = XTReadDB().Model(&dataconfig).Where("org_id in(0,?) and parent_id = ? and status =1", orgid, parentid).Find(&dataconfig).Error
  1373. return dataconfig, err
  1374. }
  1375. func GetBloodAccess(orgid int64) (*models.Dataconfig, error) {
  1376. dataconfig := models.Dataconfig{}
  1377. err := XTReadDB().Model(&dataconfig).Where("org_id = 0 and name = '血管通路部位' and status = 1 ").Find(&dataconfig).Error
  1378. return &dataconfig, err
  1379. }
  1380. func GetPatientScheduleCount(orgid int64, startTime int64, endTime int64, ids []string) (schedule []*models.VmXtSchedule, err error) {
  1381. db := XTReadDB().Table("xt_schedule as x").Where("x.status =1")
  1382. if orgid > 0 {
  1383. db = db.Where("x.user_org_id = ?", orgid)
  1384. }
  1385. if startTime > 0 {
  1386. db = db.Where("x.schedule_date >=?", startTime)
  1387. }
  1388. if endTime > 0 {
  1389. db = db.Where("x.schedule_date<=?", endTime)
  1390. }
  1391. if len(ids) > 0 {
  1392. db = db.Where("x.partition_id in (?)", ids)
  1393. }
  1394. err = db.Select("count(x.id) as count,x.schedule_type,x.schedule_week").Group("x.schedule_week,x.schedule_type").Scan(&schedule).Error
  1395. return schedule, err
  1396. }
  1397. func GetTotalBedNumber(orgid int64, ids []string) (list []*models.XtDeviceNumber, total int64, err error) {
  1398. //err = XTReadDB().Model(&list).Where("org_id = ? and status = 1 ",orgid).Count(&total).Find(&list).Error
  1399. //return list,total,err
  1400. db := XTReadDB().Table("xt_device_number as x").Where("x.status = 1")
  1401. if orgid > 0 {
  1402. db = db.Where("x.org_id = ?", orgid)
  1403. }
  1404. if len(ids) > 0 {
  1405. db = db.Where("x.zone_id in (?)", ids)
  1406. }
  1407. err = db.Count(&total).Find(&list).Error
  1408. return list, total, err
  1409. }
  1410. func GetInspectionMajorItem(startime int64, lasttime int64, orgid int64, patientid int64) (inspection []*models.XtInspection, err error) {
  1411. db := XTReadDB().Table("xt_inspection")
  1412. //err = db.Raw("select * from xt_inspection where id in(select max(id) from xt_inspection where org_id = ? and status = 1 and patient_id = ? and inspect_date>=? and inspect_date<=? group by project_id)", orgid, patientid, lasttime, startime).Scan(&inspection).Error
  1413. err = db.Raw("select * from xt_inspection where org_id = ? and status = 1 and patient_id = ? and inspect_date>=? and inspect_date<=? group by project_id", orgid, patientid, lasttime, startime).Scan(&inspection).Error
  1414. return inspection, err
  1415. }
  1416. func GetInspectionDetailByProject(project_id int64, patientid int64, inspect_date int64, orgid int64) (inspection []*models.VmInspection, err error) {
  1417. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  1418. table := XTReadDB().Table("xt_inspection_reference as t").Where("t.status = 1")
  1419. fmt.Println(table)
  1420. if inspect_date > 0 {
  1421. db = db.Where("x.inspect_date=?", inspect_date)
  1422. }
  1423. if orgid > 0 {
  1424. db = db.Where("x.org_id = ?", orgid)
  1425. }
  1426. if patientid > 0 {
  1427. db = db.Where("x.patient_id = ?", patientid)
  1428. }
  1429. if project_id > 0 {
  1430. db = db.Where("x.project_id = ?", project_id)
  1431. }
  1432. err = db.Select("x.id,x.patient_id,x.org_id,x.project_id,x.item_id,x.item_name,x.project_name,x.inspect_type,x.inspect_value,x.inspect_date,t.range_max,t.range_min,t.range_value,t.unit").Joins("left join xt_inspection_reference as t on t.id = x.item_id").Scan(&inspection).Error
  1433. return inspection, err
  1434. }
  1435. func GetInspectionItemlist(patientid int64, inspect_date []string, projectid []string) (inspection []*models.VmInspection, err error) {
  1436. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  1437. table := XTReadDB().Table("xt_inspection_reference as s").Where("s.status = 1")
  1438. fmt.Println(table)
  1439. if patientid > 0 {
  1440. db = db.Where("x.patient_id = ? and x.inspect_value <> ''", patientid)
  1441. }
  1442. if len(inspect_date) > 0 {
  1443. db = db.Where("x.inspect_date in(?)", inspect_date)
  1444. }
  1445. if len(projectid) > 0 {
  1446. db = db.Where("x.project_id in(?)", projectid)
  1447. }
  1448. err = db.Select("x.id,x.patient_id,x.org_id,x.project_id,x.item_id,x.item_name,x.project_name,x.inspect_type,x.inspect_value,x.inspect_date,t.range_max,t.range_min,t.range_value,t.unit").Joins("left join xt_inspection_reference as t on t.id = x.item_id").Scan(&inspection).Error
  1449. return inspection, err
  1450. }
  1451. func GetDialysisBeforInitDateList(patient_id int64, startime int64, endtime int64) (models.PredialysisEvaluation, error) {
  1452. befor := models.PredialysisEvaluation{}
  1453. db := XTReadDB().Model(&befor).Where("status = 1")
  1454. if patient_id > 0 {
  1455. db = db.Where("patient_id = ? and assessment_date>=? and assessment_date<=? ", patient_id, startime, endtime)
  1456. }
  1457. err = db.Last(&befor).Error
  1458. return befor, err
  1459. }
  1460. func GetDialysisPrescriptionDataList(patient_id int64, startime int64, endtime int64) (models.DialysisPrescription, error) {
  1461. prescription := models.DialysisPrescription{}
  1462. db := XTReadDB().Model(&prescription).Where("status = 1")
  1463. if patient_id > 0 {
  1464. db = db.Where("patient_id = ? and record_date>=? and record_date<=?", patient_id, startime, endtime)
  1465. }
  1466. err = db.Last(&prescription).Error
  1467. return prescription, err
  1468. }
  1469. func GetDialysisAssementAfter(patient_id int64, startime int64, endtime int64) (models.AssessmentAfterDislysis, error) {
  1470. after := models.AssessmentAfterDislysis{}
  1471. db := XTReadDB().Model(&after).Where("status = 1")
  1472. if patient_id > 0 {
  1473. db = db.Where("patient_id = ? and assessment_date>=? and assessment_date<=?", patient_id, startime, endtime)
  1474. }
  1475. err = db.Last(&after).Error
  1476. return after, err
  1477. }
  1478. func GetDialysisDialysisMode(patient_id int64, startime int64, endtime int64, orgid int64) (counts []*models.PatientPrescriptionCountStruct, err error) {
  1479. db := readDb.Table("xt_dialysis_order as o").Where("o.status = 1")
  1480. table := readDb.Table("xt_schedule as s").Where("s.status = 1")
  1481. fmt.Println(table)
  1482. p := readDb.Table("xt_patients as p").Where("p.status = 1")
  1483. fmt.Println(p)
  1484. if startime > 0 {
  1485. db = db.Where("o.dialysis_date >=?", startime)
  1486. }
  1487. if endtime > 0 {
  1488. db = db.Where("o.dialysis_date<=?", endtime)
  1489. }
  1490. if orgid > 0 {
  1491. db = db.Where("o.user_org_id = ? and o.stage = 2", orgid)
  1492. }
  1493. if patient_id > 0 {
  1494. db = db.Where("o.patient_id = ?", patient_id)
  1495. }
  1496. err = db.Select("s.mode_id,count(s.mode_id) as count").Joins("left join xt_schedule as s on s.patient_id = o.patient_id and s.schedule_date = o.dialysis_date and s.status= 1").Joins("left join xt_patients as p on o.patient_id = p.id").Group("s.mode_id").Scan(&counts).Error
  1497. return counts, err
  1498. }
  1499. func CreateSummary(summary *models.XtTemplateSummary) error {
  1500. err = XTWriteDB().Create(&summary).Error
  1501. return err
  1502. }
  1503. func UpdateTempalteSummary(summary *models.XtTemplateSummary) error {
  1504. err = XTWriteDB().Save(&summary).Error
  1505. return err
  1506. }
  1507. func GetTemplateSummaryList(patientid int64, orgid int64, startime int64, endtime int64) (summary []*models.XtTemplateSummary, err error) {
  1508. db := XTReadDB().Model(&summary).Where("status = 1")
  1509. if startime > 0 {
  1510. db = db.Where("record_time >=?", startime)
  1511. }
  1512. if endtime > 0 {
  1513. db = db.Where("record_time<=?", endtime)
  1514. }
  1515. if patientid > 0 {
  1516. db = db.Where("patient_id = ?", patientid)
  1517. }
  1518. if orgid > 0 {
  1519. db = db.Where("user_org_id = ?", orgid)
  1520. }
  1521. err = db.Order("record_time desc").Find(&summary).Error
  1522. return summary, err
  1523. }
  1524. func GetTemplateSummaryDetail(id int64) (models.XtTemplateSummary, error) {
  1525. summary := models.XtTemplateSummary{}
  1526. err := XTReadDB().Model(&summary).Where("id=?", id).Find(&summary).Error
  1527. return summary, err
  1528. }
  1529. func GetTemplateSummaryPrintDetail(id int64) (models.XtTemplateSummary, error) {
  1530. summary := models.XtTemplateSummary{}
  1531. err := XTReadDB().Model(&summary).Where("id=? and status = 1", id).Preload("Patients", "status = 1").Find(&summary).Error
  1532. return summary, err
  1533. }
  1534. func GetTreateSummary(startime int64, endtime int64, limit int64, page int64, creater int64, patient_id int64) (list []*models.XtTemplateSummary, total int64, err error) {
  1535. db := XTReadDB().Model(&list).Where("status = 1")
  1536. offset := (page - 1) * limit
  1537. if startime > 0 {
  1538. db = db.Where("record_time >=?", startime)
  1539. }
  1540. if endtime > 0 {
  1541. db = db.Where("record_time<=?", endtime)
  1542. }
  1543. if creater > 0 {
  1544. db = db.Where("admin_user_id = ?", creater)
  1545. }
  1546. if patient_id > 0 {
  1547. db = db.Where("patient_id = ?", patient_id)
  1548. }
  1549. err = db.Count(&total).Offset(offset).Limit(limit).Order("record_time desc").Find(&list).Error
  1550. return list, total, err
  1551. }
  1552. func DeleteSummary(ids []string) error {
  1553. summary := models.XtTemplateSummary{}
  1554. err := XTWriteDB().Model(&summary).Where("id in(?)", ids).Updates(map[string]interface{}{"status": 0}).Error
  1555. return err
  1556. }
  1557. func CreateHisSummary(summary *models.XtHospitalSummary) error {
  1558. err := XTWriteDB().Create(&summary).Error
  1559. return err
  1560. }
  1561. func GetHospitalSummaryList(orgid int64, patient_id int64, startime int64, endtime int64) (list []*models.XtHospitalSummary, err error) {
  1562. db := XTReadDB().Model(&list).Where("status = 1")
  1563. if orgid > 0 {
  1564. db = db.Where("user_org_id = ?", orgid)
  1565. }
  1566. if startime > 0 {
  1567. db = db.Where("record_date >=?", startime)
  1568. }
  1569. if endtime > 0 {
  1570. db = db.Where("record_date <=?", endtime)
  1571. }
  1572. if patient_id > 0 {
  1573. db = db.Where("patient_id = ?", patient_id)
  1574. }
  1575. err = db.Find(&list).Order("ctime desc").Error
  1576. return list, err
  1577. }
  1578. func GetHospitalSummaryDetail(id int64) (models.XtHospitalSummary, error) {
  1579. summary := models.XtHospitalSummary{}
  1580. err := XTReadDB().Where("id = ? and status = 1", id).Find(&summary).Error
  1581. return summary, err
  1582. }
  1583. func UpdateHospital(id int64, summary models.XtHospitalSummary) error {
  1584. err := XTWriteDB().Model(&summary).Where("id = ? and status = 1", id).Updates(map[string]interface{}{"title": summary.Title, "admission_time": summary.AdmissionTime, "discharge_time": summary.DischargeTime, "sick_personnel": summary.SickPersonnel, "xray": summary.Xray, "connecticut": summary.Connecticut, "nuclear_magnetic_resonance": summary.NuclearMagneticResonance, "ultrasound": summary.Ultrasound, "pathology": summary.Pathology, "admitting_diagnosis_id": summary.AdmittingDiagnosisId, "admitting_diagnosis": summary.AdmittingDiagnosis, "discharge_diagnosis_id": summary.DischargeDiagnosisId, "discharge_diagnosis": summary.DischargeDiagnosis, "diagnosis_admission_id": summary.DiagnosisAdmissionId, "diagnosis_admission": summary.DiagnosisAdmission, "treatment_id": summary.TreatmentId, "treatment": summary.Treatment, "illness_discharge_id": summary.IllnessDischargeId, "illness_discharge": summary.IllnessDischarge, "discharge_advice_id": summary.DischargeAdviceId, "discharge_advice": summary.DischargeAdvice, "mtime": summary.Mtime, "record_time": summary.RecordTime, "dean_id": summary.DeanId, "doctor": summary.Doctor, "record_date": summary.RecordDate}).Error
  1585. return err
  1586. }
  1587. func DeleteHospitalSummary(id []string) error {
  1588. err := XTWriteDB().Model(models.XtHospitalSummary{}).Where("id in (?) and status=1", id).Updates(map[string]interface{}{"status": 0}).Error
  1589. return err
  1590. }
  1591. func GetAllPatientScheduleList(org_id int64) (patient []*models.PatientsThirty, err error) {
  1592. err = XTReadDB().Where("user_org_id = ? and status = 1", org_id).Find(&patient).Error
  1593. return patient, err
  1594. }
  1595. func GetAllDialysiOrderList(patient_id int64, org_id int64) (order []*models.DialysisOrder, err error) {
  1596. err = XTReadDB().Where("patient_id = ? and user_org_id = ? and status= 1 and dialysis_date<=1672416000", patient_id, org_id).Find(&order).Error
  1597. return order, err
  1598. }
  1599. func GetDialysisTotalCountThree(org_id int64, patient_id int64, dialysis_date int64) (models.BloodDialysisOrderCount, error) {
  1600. order := models.BloodDialysisOrderCount{}
  1601. db := XTReadDB().Table("xt_dialysis_order as o")
  1602. err = db.Raw("select count(o.id) as count,o.patient_id from xt_dialysis_order as o left join xt_schedule as x on x.patient_id = o.patient_id where o.status =1 and o.user_org_id = ? and o.patient_id = ? and o.dialysis_date<=? and x.schedule_date = o.dialysis_date and x.status = 1 ", org_id, patient_id, dialysis_date).Scan(&order).Error
  1603. return order, err
  1604. }
  1605. func UpdateDialysisOrderSix(patient_id int64, dialysis_date int64, user_org_id int64, dialysis_total int64) (models.DialysisOrder, error) {
  1606. order := models.DialysisOrder{}
  1607. err := XTWriteDB().Model(&order).Where("patient_id = ? and dialysis_date = ? and user_org_id = ? and status = 1", patient_id, dialysis_date, user_org_id).Updates(map[string]interface{}{"dialysis_total": dialysis_total}).Error
  1608. return order, err
  1609. }
  1610. func CreatePatientFirstDisease(firstdisease models.XtPatientFirstDisease) error {
  1611. err := XTWriteDB().Create(&firstdisease).Error
  1612. return err
  1613. }
  1614. func GetPatientDiseaseList(org_id int64, patient_id int64, start_time int64, end_time int64) (disease []*models.XtPatientFirstDisease, err error) {
  1615. db := XTReadDB().Model(&disease).Where("status=1")
  1616. if org_id > 0 {
  1617. db = db.Where("user_org_id =?", org_id)
  1618. }
  1619. if patient_id > 0 {
  1620. db = db.Where("patient_id = ?", patient_id)
  1621. }
  1622. if start_time > 0 {
  1623. db = db.Where("record_date >=?", start_time)
  1624. }
  1625. if end_time > 0 {
  1626. db = db.Where("record_date<=?", end_time)
  1627. }
  1628. err = db.Find(&disease).Error
  1629. return disease, err
  1630. }
  1631. func GetFirstDetailById(id int64) (models.XtPatientFirstDisease, error) {
  1632. disease := models.XtPatientFirstDisease{}
  1633. err = XTReadDB().Where("id = ? and status= 1", id).Find(&disease).Error
  1634. return disease, err
  1635. }
  1636. func UpdatePatientFirstDisease(disease models.XtPatientFirstDisease, id int64) error {
  1637. err := XTWriteDB().Model(&models.XtPatientFirstDisease{}).Where("id =? and status = 1", id).Update(map[string]interface{}{"title": disease.Title, "doctor": disease.Doctor, "record_date": disease.RecordDate, "main_content": disease.MainContent, "patient_case": disease.PatientCase, "tentative_diagnosis": disease.TentativeDiagnosis, "diagnostic_basis": disease.DiagnosticBasis, "differential_diagnosis": disease.DifferentialDiagnosis, "treatment_plan": disease.TreatmentPlan, "project_id": disease.ProjectId, "inspect_date": disease.InspectDate}).Error
  1638. return err
  1639. }
  1640. func DeleteFirstDisease(id []string) error {
  1641. err := XTWriteDB().Model(models.XtPatientFirstDisease{}).Where("id in (?) and status=1", id).Updates(map[string]interface{}{"status": 0}).Error
  1642. return err
  1643. }
  1644. type InspectionCount struct {
  1645. Count int64
  1646. }
  1647. func GetNormalInspectionTotalByID(startime int64, endtime int64, orgid int64, item_name string, max_value float64, min_value float64) (total int64, err error) {
  1648. var count []*models.Inspection
  1649. err2 := XTReadDB().Table("xt_inspection as xti ").Select("count(*) as count").Joins("join (SELECT max(inspect_date) as ind, patient_id as pid FROM xt_inspection as x Join xt_patients pp on pp.id = x.patient_id and pp.lapseto = 1 and pp.patient_type =1 WHERE (x.status = 1) AND (x.org_id = ? and x.item_name = ? and x.inspect_date >= ? and x.inspect_date <= ?) group by patient_id) as ta on ta.ind = xti.`inspect_date` and xti.patient_id = ta.pid WHERE (xti.status = 1) AND (xti.org_id = ? and xti.item_name = ? and xti.inspect_date >= ? and xti.inspect_date<= ? and xti.`inspect_value` <= ? and xti.inspect_value >= ? ) Group by xti.patient_id", orgid, item_name, startime, endtime, orgid, item_name, startime, endtime, max_value, min_value).Scan(&count).Error
  1650. return int64(len(count)), err2
  1651. }
  1652. func GetUnusualInspectionTotalByID(startime int64, endtime int64, orgid int64, item_name string, max_value float64, min_value float64) (total int64, err error) {
  1653. var count []*models.Inspection
  1654. err2 := XTReadDB().Table("xt_inspection as xti ").Select("count(*) as count").Joins("join (SELECT max(inspect_date) as ind, patient_id as pid FROM xt_inspection as x JOIN xt_patients pp on pp.id = x.patient_id and pp.status = 1 and pp.lapseto = 1 and pp.patient_type =1 WHERE (x.status = 1) AND (x.org_id = ? and x.item_name = ? and x.inspect_date >= ? and x.inspect_date <= ?) group by patient_id) as ta on ta.ind = xti.`inspect_date` and xti.patient_id = ta.pid WHERE (xti.status = 1 AND xti.org_id = ? and xti.item_name = ? and xti.inspect_date >= ? and xti.inspect_date <= ? and xti.inspect_value > ?) OR (xti.status = 1 AND xti.org_id = ? and xti.item_name = ? and xti.inspect_date >= ? and xti.inspect_date <= ? and xti.inspect_value < ?) Group by xti.patient_id", orgid, item_name, startime, endtime, orgid, item_name, startime, endtime, max_value, orgid, item_name, startime, endtime, min_value).Scan(&count).Error
  1655. return int64(len(count)), err2
  1656. }
  1657. func GetPatientNotInspectionTotal(startime int64, endtime int64, orgid int64, item_name string) (total int64, err error) {
  1658. err = XTReadDB().Model(models.XtPatients{}).Joins("LEFT JOIN xt_inspection pd ON xt_patients.id = pd.patient_id and pd.org_id = ? and pd.item_name = ? and pd.inspect_date >= ? and pd.inspect_date<=? ", orgid, item_name, startime, endtime).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and pd.patient_id IS NULL and xt_patients.lapseto = 1 and xt_patients.patient_type = 1", orgid).Count(&total).Error
  1659. return total, err
  1660. }
  1661. func GetPatientInspectionByID(startime int64, endtime int64, orgid int64, patient_id int64, item_name string) (inspections []*models.Inspection, err error) {
  1662. db := XTReadDB().Table("xt_inspection as x").Select("patient_id,inspect_date,inspect_value").Joins("join xt_patients p On p.id = x.patient_id and p.status = 1 and p.lapseto = 1 and p.patient_type =1").Where("x.status = 1")
  1663. if startime > 0 {
  1664. db = db.Where("x.inspect_date >= ?", startime)
  1665. }
  1666. if endtime > 0 {
  1667. db = db.Where("x.inspect_date<=?", endtime)
  1668. }
  1669. if orgid > 0 {
  1670. db = db.Where("x.org_id = ?", orgid)
  1671. }
  1672. if len(item_name) > 0 {
  1673. db = db.Where("x.item_name = ?", item_name)
  1674. }
  1675. if patient_id > 0 {
  1676. db = db.Where("x.patient_id = ?", patient_id)
  1677. }
  1678. err = db.Find(&inspections).Error
  1679. return inspections, err
  1680. }
  1681. func GetPatientKTVORURRInspectionByID(startime int64, endtime int64, orgid int64, projectid int64, item_id int64, patient_id int64) (inspections []*models.Inspection, err error) {
  1682. db := XTReadDB().Table("xt_inspection as x").Select("patient_id,inspect_date,inspect_value").Joins("join xt_patients p On p.id = x.patient_id and p.status = 1 and p.lapseto = 1 and p.patient_type =1").Where("x.status = 1")
  1683. if startime > 0 {
  1684. db = db.Where("x.inspect_date >= ?", startime)
  1685. }
  1686. if endtime > 0 {
  1687. db = db.Where("x.inspect_date<=?", endtime)
  1688. }
  1689. if orgid > 0 {
  1690. db = db.Where("x.org_id = ?", orgid)
  1691. }
  1692. if projectid > 0 {
  1693. db = db.Where("x.project_id = ?", projectid)
  1694. }
  1695. if item_id > 0 {
  1696. db = db.Where("x.item_id = ?", item_id)
  1697. }
  1698. if patient_id > 0 {
  1699. db = db.Where("x.patient_id = ?", patient_id)
  1700. }
  1701. err = db.Find(&inspections).Error
  1702. return inspections, err
  1703. }
  1704. func GetPatientKTVByID(startime int64, endtime int64, orgid int64, patient_id int64) (inspections []*models.Inspection, err error) {
  1705. db := XTReadDB().Table("xt_assessment_after_dislysis as x").Select("patient_id as patient_id,assessment_date as inspect_date,ktv as inspect_value").Joins("join xt_patients p On p.id = x.patient_id and p.status = 1 and p.lapseto = 1").Where("x.status = 1")
  1706. if startime > 0 {
  1707. db = db.Where("x.assessment_date >= ?", startime)
  1708. }
  1709. if endtime > 0 {
  1710. db = db.Where("x.assessment_date<=?", endtime)
  1711. }
  1712. if orgid > 0 {
  1713. db = db.Where("x.user_org_id = ?", orgid)
  1714. }
  1715. if patient_id > 0 {
  1716. db = db.Where("x.patient_id = ?", patient_id)
  1717. }
  1718. err = db.Find(&inspections).Error
  1719. return inspections, err
  1720. }
  1721. func GetPatientURRByID(startime int64, endtime int64, orgid int64, patient_id int64) (inspections []*models.Inspection, err error) {
  1722. db := XTReadDB().Table("xt_assessment_after_dislysis as x").Select("patient_id as patient_id,assessment_date as inspect_date,urr as inspect_value").Joins("join xt_patients p On p.id = x.patient_id and p.status = 1 and p.lapseto = 1").Where("x.status = 1")
  1723. if startime > 0 {
  1724. db = db.Where("x.assessment_date >= ?", startime)
  1725. }
  1726. if endtime > 0 {
  1727. db = db.Where("x.assessment_date<=?", endtime)
  1728. }
  1729. if orgid > 0 {
  1730. db = db.Where("x.user_org_id = ?", orgid)
  1731. }
  1732. if patient_id > 0 {
  1733. db = db.Where("x.patient_id = ?", patient_id)
  1734. }
  1735. err = db.Find(&inspections).Error
  1736. return inspections, err
  1737. }
  1738. func GetNormalInspectionPatientList(startime int64, endtime int64, orgid int64, item_name string, max_value float64, min_value float64, keyword string) (xti []*models.Inspection, err error) {
  1739. db := XTReadDB().Table("xt_inspection as xti ")
  1740. if len(keyword) > 0 {
  1741. keyword = "%" + keyword + "%"
  1742. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.inspect_date,'%Y-%m-%d') as date,xti.inspect_value as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 and name like ?", keyword)
  1743. } else {
  1744. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.inspect_date,'%Y-%m-%d') as date,xti.inspect_value as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1")
  1745. }
  1746. err2 := db.Joins("join (SELECT max(inspect_date) as ind, patient_id as pid FROM xt_inspection as x WHERE (x.status = 1) AND (x.org_id = ? and x.item_name = ? and x.inspect_date >= ? and x.inspect_date <= ?) group by patient_id) as ta on ta.ind = xti.`inspect_date` and xti.patient_id = ta.pid WHERE (xti.status = 1) AND (xti.org_id = ? and xti.item_name = ? and xti.inspect_date >= ? and xti.inspect_date<= ? and xti.`inspect_value` <= ? and xti.inspect_value >= ? ) Group by xti.patient_id", orgid, item_name, startime, endtime, orgid, item_name, startime, endtime, max_value, min_value).Scan(&xti).Error
  1747. return xti, err2
  1748. }
  1749. func GetUnusualInspectionPatientList(startime int64, endtime int64, orgid int64, item_name string, max_value float64, min_value float64, keyword string) (xti []*models.Inspection, err error) {
  1750. db := XTReadDB().Table("xt_inspection as xti ")
  1751. if len(keyword) > 0 {
  1752. keyword = "%" + keyword + "%"
  1753. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.inspect_date,'%Y-%m-%d') as date,xti.inspect_value as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 and name like ?", keyword)
  1754. } else {
  1755. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.inspect_date,'%Y-%m-%d') as date,xti.inspect_value as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 ")
  1756. }
  1757. err2 := db.Joins("join (SELECT max(inspect_date) as ind, patient_id as pid FROM xt_inspection as x WHERE (x.status = 1) AND (x.org_id = ? and x.item_name = ? and x.inspect_date >= ? and x.inspect_date <= ?) group by patient_id) as ta on ta.ind = xti.`inspect_date` and xti.patient_id = ta.pid WHERE (xti.status = 1 AND xti.org_id = ? and xti.item_name = ? and xti.inspect_date >= ? and xti.inspect_date <= ? and xti.inspect_value > ?) OR (xti.status = 1 AND xti.org_id = ? and xti.item_name = ? and xti.inspect_date >= ? and xti.inspect_date <= ? and xti.inspect_value < ?) Group by xti.patient_id", orgid, item_name, startime, endtime, orgid, item_name, startime, endtime, max_value, orgid, item_name, startime, endtime, min_value).Scan(&xti).Error
  1758. return xti, err2
  1759. }
  1760. func GetPatientNotInspectionPatientList(startime int64, endtime int64, orgid int64, item_name string, keyword string) (patient []*models.XtPatientsTen, err error) {
  1761. err = XTReadDB().Model(models.XtPatientsTen{}).Joins("LEFT JOIN xt_inspection pd ON xt_patients.id = pd.patient_id and pd.org_id = ? and pd.item_name = ? and pd.inspect_date >= ? and pd.inspect_date<=? ", orgid, item_name, startime, endtime).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and pd.patient_id IS NULL and xt_patients.lapseto = 1", orgid).Find(&patient).Error
  1762. return patient, err
  1763. }
  1764. func GetUnusualKTVPatientList(startime int64, endtime int64, orgid int64, min_value float64, keyword string) (xti []*models.Inspection, err error) {
  1765. db := XTReadDB().Table("xt_assessment_after_dislysis as xti ")
  1766. if len(keyword) > 0 {
  1767. keyword = "%" + keyword + "%"
  1768. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.assessment_date,'%Y-%m-%d') as date,xti.ktv as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 and name like ?", keyword)
  1769. } else {
  1770. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.assessment_date,'%Y-%m-%d') as date,xti.ktv as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 ")
  1771. }
  1772. err2 := db.Joins("join (SELECT max(assessment_date) as ind, patient_id as pid FROM xt_assessment_after_dislysis as x WHERE (x.status = 1) AND (x.user_org_id = ? and x.assessment_date >= ? and x.assessment_date <= ? and x.ktv <> '') group by patient_id) as ta on ta.ind = xti.`assessment_date` and xti.patient_id = ta.pid WHERE (xti.status = 1 AND xti.user_org_id = ? and xti.assessment_date >= ? and xti.assessment_date <= ? and xti.ktv +'0' < ?) Group by xti.patient_id", orgid, startime, endtime, orgid, startime, endtime, min_value).Scan(&xti).Error
  1773. return xti, err2
  1774. }
  1775. func GetUnusualKTVORURRInspectionPatientList(startime int64, endtime int64, orgid int64, projectid int64, item_id int64, max_value float64, min_value float64, keyword string) (xti []*models.Inspection, err error) {
  1776. db := XTReadDB().Table("xt_inspection as xti ")
  1777. if len(keyword) > 0 {
  1778. keyword = "%" + keyword + "%"
  1779. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.inspect_date,'%Y-%m-%d') as date,xti.inspect_value as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 and name like ?", keyword)
  1780. } else {
  1781. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.inspect_date,'%Y-%m-%d') as date,xti.inspect_value as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 ")
  1782. }
  1783. err2 := db.Joins("join (SELECT max(inspect_date) as ind, patient_id as pid FROM xt_inspection as x WHERE (x.status = 1) AND (x.org_id = ? and x.project_id = ? and x.item_id = ? and x.inspect_date >= ? and x.inspect_date <= ?) group by patient_id) as ta on ta.ind = xti.`inspect_date` and xti.patient_id = ta.pid WHERE (xti.status = 1 AND xti.org_id = ? and xti.project_id = ? and xti.item_id = ? and xti.inspect_date >= ? and xti.inspect_date <= ? and xti.inspect_value < ?) Group by xti.patient_id", orgid, projectid, item_id, startime, endtime, orgid, projectid, item_id, startime, endtime, min_value).Scan(&xti).Error
  1784. return xti, err2
  1785. }
  1786. func GetNormalKTVORURRInspectionPatientList(startime int64, endtime int64, orgid int64, projectid int64, item_id int64, max_value float64, min_value float64, keyword string) (xti []*models.Inspection, err error) {
  1787. db := XTReadDB().Table("xt_inspection as xti ")
  1788. if len(keyword) > 0 {
  1789. keyword = "%" + keyword + "%"
  1790. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.inspect_date,'%Y-%m-%d') as date,xti.inspect_value as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 and name like ?", keyword)
  1791. } else {
  1792. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.inspect_date,'%Y-%m-%d') as date,xti.inspect_value as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1")
  1793. }
  1794. err2 := db.Joins("join (SELECT max(inspect_date) as ind, patient_id as pid FROM xt_inspection as x WHERE (x.status = 1) AND (x.org_id = ? and x.project_id = ? and x.item_id = ? and x.inspect_date >= ? and x.inspect_date <= ?) group by patient_id) as ta on ta.ind = xti.`inspect_date` and xti.patient_id = ta.pid WHERE (xti.status = 1) AND (xti.org_id = ? and xti.project_id = ? and xti.item_id = ? and xti.inspect_date >= ? and xti.inspect_date <= ? and xti.inspect_value >= ? ) Group by xti.patient_id", orgid, projectid, item_id, startime, endtime, orgid, projectid, item_id, startime, endtime, min_value).Scan(&xti).Error
  1795. return xti, err2
  1796. }
  1797. func GetPatientNotKTVORURRInspectionPatientList(startime int64, endtime int64, orgid int64, projectid int64, item_id int64, keyword string) (patient []*models.XtPatientsTen, err error) {
  1798. err = XTReadDB().Model(models.XtPatientsTen{}).Joins("LEFT JOIN xt_inspection pd ON xt_patients.id = pd.patient_id and pd.org_id = ? and pd.project_id = ? and pd.item_id = ? and pd.inspect_date >= ? and pd.inspect_date<=? ", orgid, projectid, item_id, startime, endtime).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and pd.patient_id IS NULL and xt_patients.lapseto = 1", orgid).Find(&patient).Error
  1799. return patient, err
  1800. }
  1801. func GetNormalKTVPatientList(startime int64, endtime int64, orgid int64, min_value float64, keyword string) (xti []*models.Inspection, err error) {
  1802. db := XTReadDB().Table("xt_assessment_after_dislysis as xti ")
  1803. if len(keyword) > 0 {
  1804. keyword = "%" + keyword + "%"
  1805. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.assessment_date,'%Y-%m-%d') as date,xti.ktv as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 and name like ?", keyword)
  1806. } else {
  1807. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.assessment_date,'%Y-%m-%d') as date,xti.ktv as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1")
  1808. }
  1809. err2 := db.Joins("join (SELECT max(assessment_date) as ind, patient_id as pid FROM xt_assessment_after_dislysis as x WHERE (x.status = 1) AND (x.user_org_id = ? and x.assessment_date >= ? and x.assessment_date <= ? and x.ktv <> '') group by patient_id) as ta on ta.ind = xti.`assessment_date` and xti.patient_id = ta.pid WHERE (xti.status = 1) AND (xti.user_org_id = ? and xti.assessment_date >= ? and xti.assessment_date<= ? and xti.ktv + '0' >= ? ) Group by xti.patient_id", orgid, startime, endtime, orgid, startime, endtime, min_value).Scan(&xti).Error
  1810. return xti, err2
  1811. }
  1812. func GetPatientNotKTVPatientList(startime int64, endtime int64, orgid int64) (patient []*models.XtPatientsTen, err error) {
  1813. err = XTReadDB().Model(models.XtPatientsTen{}).Joins("LEFT JOIN xt_assessment_after_dislysis pd ON xt_patients.id = pd.patient_id and pd.org_id = ? and pd.ktv <> '' and pd.assessment_date >= ? and pd.assessment_date<=? ", orgid, startime, endtime).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and pd.patient_id IS NULL and xt_patients.lapseto = 1", orgid).Find(&patient).Error
  1814. return patient, err
  1815. }
  1816. func GetNormalURRPatientList(startime int64, endtime int64, orgid int64, min_value float64, keyword string) (xti []*models.Inspection, err error) {
  1817. db := XTReadDB().Table("xt_assessment_after_dislysis as xti ")
  1818. if len(keyword) > 0 {
  1819. keyword = "%" + keyword + "%"
  1820. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.assessment_date,'%Y-%m-%d') as date,REPLACE(xti.urr, '%', '') + 0 as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 and name like ?", keyword)
  1821. } else {
  1822. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.assessment_date,'%Y-%m-%d') as date,REPLACE(xti.urr, '%', '') + 0 as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1")
  1823. }
  1824. err2 := db.Joins("join (SELECT max(assessment_date) as ind, patient_id as pid FROM xt_assessment_after_dislysis as x WHERE (x.status = 1) AND (x.user_org_id = ? and x.assessment_date >= ? and x.assessment_date <= ? and x.urr <> '') group by patient_id) as ta on ta.ind = xti.`assessment_date` and xti.patient_id = ta.pid WHERE (xti.status = 1) AND (xti.user_org_id = ? and xti.assessment_date >= ? and xti.assessment_date<= ? and REPLACE(xti.urr, '%', '') + 0 >= ? ) Group by xti.patient_id", orgid, startime, endtime, orgid, startime, endtime, min_value).Scan(&xti).Error
  1825. return xti, err2
  1826. }
  1827. func GetUnusualURRPatientList(startime int64, endtime int64, orgid int64, min_value float64, keyword string) (xti []*models.Inspection, err error) {
  1828. db := XTReadDB().Table("xt_assessment_after_dislysis as xti ")
  1829. if len(keyword) > 0 {
  1830. keyword = "%" + keyword + "%"
  1831. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.assessment_date,'%Y-%m-%d') as date,REPLACE(xti.urr, '%', '') + 0 as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 and name like ?", keyword)
  1832. } else {
  1833. db = db.Select("xti.patient_id as patient_id,FROM_UNIXTIME(xti.assessment_date,'%Y-%m-%d') as date,REPLACE(xti.urr, '%', '') + 0 as inspect_value,pp.name as name, pp.dialysis_no as dialysis_no").Joins("join xt_patients pp On pp.id = xti.patient_id and pp.status = 1 and pp.lapseto = 1 ")
  1834. }
  1835. err2 := db.Joins("join (SELECT max(assessment_date) as ind, patient_id as pid FROM xt_assessment_after_dislysis as x WHERE (x.status = 1) AND (x.user_org_id = ? and x.assessment_date >= ? and x.assessment_date <= ?) group by patient_id) as ta on ta.ind = xti.`assessment_date` and xti.patient_id = ta.pid WHERE (xti.status = 1 AND xti.user_org_id = ? and xti.assessment_date >= ? and xti.assessment_date <= ? and REPLACE(xti.urr, '%', '') + 0 < ?) Group by xti.patient_id", orgid, startime, endtime, orgid, startime, endtime, min_value).Scan(&xti).Error
  1836. return xti, err2
  1837. }
  1838. func GetPatientNotURRPatientList(startime int64, endtime int64, orgid int64) (patient []*models.XtPatientsTen, err error) {
  1839. err = XTReadDB().Model(models.XtPatientsTen{}).Joins("LEFT JOIN xt_assessment_after_dislysis pd ON xt_patients.id = pd.patient_id and pd.org_id = ? and xti.urr <> '' and pd.assessment_date >= ? and pd.assessment_date<=? ", orgid, startime, endtime).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and pd.patient_id IS NULL and xt_patients.lapseto = 1", orgid).Find(&patient).Error
  1840. return patient, err
  1841. }
  1842. func GetNormalKTVTotalByID(startime int64, endtime int64, orgid int64, min_value float64) (total int64, err error) {
  1843. var count []*InspectionCount
  1844. err2 := XTReadDB().Table("xt_assessment_after_dislysis as xti").Select("count(*) as count").Joins("join (SELECT max(assessment_date) as ind, patient_id as pid FROM xt_assessment_after_dislysis as x Join xt_patients pp on pp.id = x.patient_id and pp.lapseto = 1 WHERE (x.status = 1) AND (x.user_org_id = ? and x.assessment_date >= ? and x.assessment_date <= ? and x.ktv <> '') group by patient_id) as ta on ta.ind = xti.`assessment_date` and xti.patient_id = ta.pid WHERE (xti.status = 1) AND (xti.user_org_id = ? and xti.assessment_date >= ? and xti.assessment_date <= ? and xti.ktv + '0' >= ? ) Group by xti.patient_id", orgid, startime, endtime, orgid, startime, endtime, min_value).Scan(&count).Error
  1845. for _, items := range count {
  1846. total = total + items.Count
  1847. }
  1848. return total, err2
  1849. }
  1850. func GetUnusualKTVTotalByID(startime int64, endtime int64, orgid int64, min_value float64) (total int64, err error) {
  1851. var count []*InspectionCount
  1852. err2 := XTReadDB().Table("xt_assessment_after_dislysis as xti ").Select("count(*) as count").Joins("join (SELECT max(assessment_date) as ind, patient_id as pid FROM xt_assessment_after_dislysis as x JOIN xt_patients pp on pp.id = x.patient_id and pp.status = 1 and pp.lapseto = 1 WHERE (x.status = 1) AND (x.user_org_id = ? and x.assessment_date >= ? and x.assessment_date <= ? and x.ktv <> '') group by patient_id) as ta on ta.ind = xti.`assessment_date` and xti.patient_id = ta.pid WHERE (xti.status = 1 AND xti.user_org_id = ? and xti.assessment_date >= ? and xti.assessment_date <= ? and xti.ktv + '0'< ?) Group by xti.patient_id", orgid, startime, endtime, orgid, startime, endtime, min_value).Scan(&count).Error
  1853. for _, items := range count {
  1854. total = total + items.Count
  1855. }
  1856. return total, err2
  1857. }
  1858. func GetPatientNotKTVTotal(startime int64, endtime int64, orgid int64) (total int64, err error) {
  1859. err = XTReadDB().Model(models.XtPatients{}).Joins("LEFT JOIN xt_assessment_after_dislysis pd ON xt_patients.id = pd.patient_id and pd.user_org_id = ? and pd.assessment_date >= ? and pd.assessment_date<=? and pd.ktv <> ''", orgid, startime, endtime).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and pd.patient_id IS NULL and xt_patients.lapseto = 1", orgid).Count(&total).Error
  1860. return total, err
  1861. }
  1862. func GetNormalURRTotalByID(startime int64, endtime int64, orgid int64, min_value float64) (total int64, err error) {
  1863. var count []*InspectionCount
  1864. err2 := XTReadDB().Table("xt_assessment_after_dislysis as xti").Select("count(*) as count").Joins("join (SELECT max(assessment_date) as ind, patient_id as pid FROM xt_assessment_after_dislysis as x Join xt_patients pp on pp.id = x.patient_id and pp.lapseto = 1 WHERE (x.status = 1) AND (x.user_org_id = ? and x.assessment_date >= ? and x.assessment_date <= ? and x.urr <> '') group by patient_id) as ta on ta.ind = xti.`assessment_date` and xti.patient_id = ta.pid WHERE (xti.status = 1) AND (xti.user_org_id = ? and xti.assessment_date >= ? and xti.assessment_date <= ? and REPLACE(xti.urr, '%', '') + 0 >= ? ) Group by xti.patient_id", orgid, startime, endtime, orgid, startime, endtime, min_value).Scan(&count).Error
  1865. for _, items := range count {
  1866. total = total + items.Count
  1867. }
  1868. return total, err2
  1869. }
  1870. func GetUnusualURRTotalByID(startime int64, endtime int64, orgid int64, min_value float64) (total int64, err error) {
  1871. var count []*InspectionCount
  1872. err2 := XTReadDB().Table("xt_assessment_after_dislysis as xti ").Select("count(*) as count").Joins("join (SELECT max(assessment_date) as ind, patient_id as pid FROM xt_assessment_after_dislysis as x JOIN xt_patients pp on pp.id = x.patient_id and pp.status = 1 and pp.lapseto = 1 WHERE (x.status = 1) AND (x.user_org_id = ? and x.assessment_date >= ? and x.assessment_date <= ? and x.urr <> '') group by patient_id) as ta on ta.ind = xti.`assessment_date` and xti.patient_id = ta.pid WHERE (xti.status = 1 AND xti.user_org_id = ? and xti.assessment_date >= ? and xti.assessment_date <= ? and REPLACE(xti.urr, '%', '')+ 0 < ?) Group by xti.patient_id", orgid, startime, endtime, orgid, startime, endtime, min_value).Scan(&count).Error
  1873. for _, items := range count {
  1874. total = total + items.Count
  1875. }
  1876. return total, err2
  1877. }
  1878. func GetPatientNotURRTotal(startime int64, endtime int64, orgid int64) (total int64, err error) {
  1879. err = XTReadDB().Model(models.XtPatients{}).Joins("LEFT JOIN xt_assessment_after_dislysis pd ON xt_patients.id = pd.patient_id and pd.user_org_id = ? and pd.assessment_date >= ? and pd.assessment_date<=? and pd.urr <> ''", orgid, startime, endtime).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and pd.patient_id IS NULL and xt_patients.lapseto = 1", orgid).Count(&total).Error
  1880. return total, err
  1881. }
  1882. func GetNormalKTVORURRInspectionTotalByID(startime int64, endtime int64, orgid int64, projectid int64, item_id int64, min_value float64) (total int64, err error) {
  1883. var count []*InspectionCount
  1884. err2 := XTReadDB().Table("xt_inspection as xti ").Select("count(*) as count").Joins("join (SELECT max(inspect_date) as ind, patient_id as pid FROM xt_inspection as x Join xt_patients pp on pp.id = x.patient_id and pp.lapseto = 1 WHERE (x.status = 1) AND (x.org_id = ? and x.project_id = ? and x.item_id = ? and x.inspect_date >= ? and x.inspect_date <= ?) group by patient_id) as ta on ta.ind = xti.`inspect_date` and xti.patient_id = ta.pid WHERE (xti.status = 1) AND (xti.org_id = ? and xti.project_id = ? and xti.item_id = ? and xti.inspect_date >= ? and xti.inspect_date<= ? and xti.inspect_value >= ? ) Group by xti.patient_id", orgid, projectid, item_id, startime, endtime, orgid, projectid, item_id, startime, endtime, min_value).Scan(&count).Error
  1885. for _, items := range count {
  1886. total = total + items.Count
  1887. }
  1888. return total, err2
  1889. }
  1890. func GetUnusualKTVORURRInspectionTotalByID(startime int64, endtime int64, orgid int64, projectid int64, item_id int64, min_value float64) (total int64, err error) {
  1891. var count []*InspectionCount
  1892. err2 := XTReadDB().Table("xt_inspection as xti ").Select("count(*) as count").Joins("join (SELECT max(inspect_date) as ind, patient_id as pid FROM xt_inspection as x JOIN xt_patients pp on pp.id = x.patient_id and pp.status = 1 and pp.lapseto = 1 WHERE (x.status = 1) AND (x.org_id = ? and x.project_id = ? and x.item_id = ? and x.inspect_date >= ? and x.inspect_date <= ?) group by patient_id) as ta on ta.ind = xti.`inspect_date` and xti.patient_id = ta.pid WHERE (xti.status = 1 AND xti.org_id = ? and xti.project_id = ? and xti.item_id = ? and xti.inspect_date >= ? and xti.inspect_date <= ? and xti.inspect_value < ?) Group by xti.patient_id", orgid, projectid, item_id, startime, endtime, orgid, projectid, item_id, startime, endtime, min_value).Scan(&count).Error
  1893. for _, items := range count {
  1894. total = total + items.Count
  1895. }
  1896. return total, err2
  1897. }
  1898. func GetPatientNotKTVORURRInspectionTotal(startime int64, endtime int64, orgid int64, projectid int64, item_id int64) (total int64, err error) {
  1899. err = XTReadDB().Model(models.XtPatients{}).Joins("LEFT JOIN xt_inspection pd ON xt_patients.id = pd.patient_id and pd.org_id = ? and pd.project_id = ? and pd.item_id = ? and pd.inspect_date >= ? and pd.inspect_date<=? ", orgid, projectid, item_id, startime, endtime).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and pd.patient_id IS NULL and xt_patients.lapseto = 1", orgid).Count(&total).Error
  1900. return total, err
  1901. }
  1902. func GetFiveInspectionPatientList(orgid int64, keyword string) (xti []*models.XtPatientsTenOne, err error) {
  1903. keyword = "%" + keyword + "%"
  1904. err = XTReadDB().Model(models.XtPatientsTenOne{}).Where("xt_patients.user_org_id = ? and xt_patients.status = 1 and xt_patients.lapseto = 1 and xt.patients.name like ?", orgid, keyword).Find(&xti).Error
  1905. return
  1906. }
  1907. func GetPatientFiveInspectionByID(startime int64, endtime int64, orgid int64, keyword string) (inspections []models.InspectionTenOne, err error) {
  1908. keyword = "%" + keyword + "%"
  1909. db := XTReadDB().Table("xt_inspection i").Select("p.id AS patient_id,p.name AS patient_name,i.inspect_value,i.item_name,i.project_name,i.item_id").Joins("join xt_patients p ON i.patient_id = p.id").Joins("left join xt_quality_control_standard c ON i.item_id = c.`inspection_minor`").Where("i.org_id = ? and i.inspect_date >= ? and i.inspect_date <= ? and i.item_name <> 'KT/V' and i.item_name <> 'URR(%)'", orgid, startime, endtime)
  1910. //db := XTReadDB().Table("xt_patients as p").Select("p.id as patient_id, p.name as name, IFNULL(a.inspect_value, '') AS 'ipth',IFNULL(b.inspect_value, '') AS 'xuejia',IFNULL(c.inspect_value, '') AS 'xuelin',IFNULL(d.inspect_value, '') AS 'bdb',IFNULL(e.inspect_value, '') AS 'xhdb'").Joins("LEFT JOIN `xt_inspection` a ON p.id = a.patient_id AND a.org_id = ? and a.`reference_item_id` = 171 and a.`reference_project_id` = 20 and a.`inspect_date` >= ? and a.`inspect_date` <= ? LEFT JOIN xt_inspection b ON p.id = b.patient_id AND b.org_id = ? and b.`reference_item_id` = 48 and b.`reference_project_id` = 4 and b.`inspect_date` >= ? and b.`inspect_date` <= ? LEFT JOIN xt_inspection c ON p.id = c.patient_id AND c.org_id = ? and c.`reference_item_id` = 169 and c.`reference_project_id` = 4 and c.`inspect_date` >= ? and c.`inspect_date` <= ? LEFT JOIN xt_inspection d ON p.id = d.patient_id AND d.org_id = ? and d.`reference_item_id` = 35 and d.`reference_project_id` = 2 and d.`inspect_date` >= ? and d.`inspect_date` <= ? LEFT JOIN xt_inspection e ON p.id = e.patient_id AND e.org_id = ? and e.`reference_item_id` = 17 and e.`reference_project_id` = 1 and e.`inspect_date` >= ? and e.`inspect_date` <= ?", orgid, startime, endtime, orgid, startime, endtime, orgid, startime, endtime, orgid, startime, endtime, orgid, startime, endtime).Where("p.name like ? and p.user_org_id = ? and p.status = 1 and p.lapseto = 1 ", keyword, orgid).Group("p.id")
  1911. err = db.Find(&inspections).Error
  1912. return inspections, err
  1913. }