common_service.go 118KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491
  1. package service
  2. import (
  3. "XT_New/models"
  4. "fmt"
  5. "github.com/jinzhu/gorm"
  6. "strconv"
  7. "time"
  8. )
  9. func GetInspectionMajor(orgid int64) (inspection []*models.XtInspectionReference, err error) {
  10. err = XTReadDB().Model(&inspection).Where("org_id = ? and status = 1", orgid).Group("project_name").Order("id asc").Find(&inspection).Error
  11. return inspection, err
  12. }
  13. func GetInspectionMinor(projectid int64, orgid int64) (inspection []*models.XtInspectionReference, err error) {
  14. err = XTReadDB().Model(&inspection).Where("project_id = ? and status = 1 and org_id = ?", projectid, orgid).Find(&inspection).Error
  15. return inspection, err
  16. }
  17. func GetInspectionRange(id int64) (models.XtInspectionReference, error) {
  18. reference := models.XtInspectionReference{}
  19. err := XTReadDB().Model(&reference).Where("id=? and status = 1", id).Find(&reference).Error
  20. return reference, err
  21. }
  22. func GetConfigurationById(major int64, moni int64, orgid int64) (*models.XtQualityControlStandard, error) {
  23. standard := models.XtQualityControlStandard{}
  24. err := XTReadDB().Model(&standard).Where("inspection_major = ? and inspection_minor = ? and user_org_id = ? and status = 1", major, moni, orgid).Find(&standard).Error
  25. if err == gorm.ErrRecordNotFound {
  26. return nil, err
  27. }
  28. if err != nil {
  29. return nil, err
  30. }
  31. return &standard, nil
  32. }
  33. func GetConfigurationByIdTwo(major int64, moni int64, orgid int64) (standard models.XtQualityControlStandard, err error) {
  34. err = XTReadDB().Model(&standard).Where("inspection_major = ? and inspection_minor = ? and user_org_id = ? and status = 1", major, moni, orgid).First(&standard).Error
  35. return standard, err
  36. }
  37. func SaveInspection(standard *models.XtQualityControlStandard) error {
  38. err := XTWriteDB().Create(&standard).Error
  39. return err
  40. }
  41. func GetConfigurationlist(orgid int64, limit int64, page int64) (standard []*models.QualityControlStandard, total int64, err error) {
  42. db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
  43. if orgid > 0 {
  44. db = db.Where("x.user_org_id = ?", orgid)
  45. }
  46. table := XTReadDB().Table("xt_inspection_reference as s")
  47. fmt.Println(table)
  48. offset := (page - 1) * limit
  49. err = db.Order("x.sort asc,x.created_time desc").Group("x.id").Select("x.id,x.inspection_major,x.inspection_minor,x.min_range,x.large_range,x.sort,x.user_org_id,s.unit,s.project_name,s.item_name").Count(&total).
  50. Joins("left join xt_inspection_reference as s on s.id = x.inspection_minor").Offset(offset).Limit(limit).Scan(&standard).Error
  51. return standard, total, err
  52. }
  53. func GetConfigurationDetail(id int64) (models.XtQualityControlStandard, error) {
  54. standard := models.XtQualityControlStandard{}
  55. err := XTReadDB().Model(&standard).Where("id=? and status = 1", id).Find(&standard).Error
  56. return standard, err
  57. }
  58. func GetAllInspectionMinor(orgid int64) (standard []*models.XtInspectionReference, err error) {
  59. err = XTReadDB().Model(&standard).Where("org_id = ? and status = 1", orgid).Find(&standard).Error
  60. return standard, err
  61. }
  62. func UpdarteConfiguration(st *models.XtQualityControlStandard, id int64) error {
  63. err := XTWriteDB().Model(&st).Where("id = ?", id).Updates(map[string]interface{}{"inspection_major": st.InspectionMajor, "inspection_minor": st.InspectionMinor, "min_range": st.MinRange, "large_range": st.LargeRange, "sort": st.Sort, "range_value": st.RangeValue, "range_type": st.RangeType, "updated_time": time.Now().Unix()}).Error
  64. return err
  65. }
  66. func DeleteConfiguration(id int64) (err error) {
  67. err = XTWriteDB().Model(models.XtQualityControlStandard{}).Where("id=?", id).Updates(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  68. return err
  69. }
  70. func GetAllInspectionData(orgid int64) (*models.XtInspectionReference, error) {
  71. diseases := models.XtInspectionReference{}
  72. err := XTReadDB().Model(&diseases).Where("org_id = ? and status = 1", orgid).Find(&diseases).Error
  73. if err == gorm.ErrRecordNotFound {
  74. return nil, err
  75. }
  76. if err != nil {
  77. return nil, err
  78. }
  79. return &diseases, nil
  80. }
  81. func GetAllInspectiondatatwo(orgid int64) (reference []*models.XtInspectionReference, err error) {
  82. err = XTReadDB().Model(&reference).Where("org_id = ? and status = 1", orgid).Group("project_name").Find(&reference).Error
  83. return reference, err
  84. }
  85. func GetInspectionMajorById(marjor int64, orgid int64) (*models.XtCheckConfiguration, error) {
  86. configuration := models.XtCheckConfiguration{}
  87. err := XTReadDB().Model(&configuration).Where("inspection_major = ? and user_org_id = ? and status =1", marjor, orgid).Find(&configuration).Error
  88. if err == gorm.ErrRecordNotFound {
  89. return nil, err
  90. }
  91. if err != nil {
  92. return nil, err
  93. }
  94. return &configuration, nil
  95. }
  96. func GetInspectionMajorByIdTwo(marjor int64, orgid int64) (configuration models.XtCheckConfiguration, err error) {
  97. err = XTReadDB().Model(&configuration).Where("inspection_major = ? and user_org_id = ? and status =1", marjor, orgid).First(&configuration).Error
  98. return configuration, err
  99. }
  100. func CreateCheckConfiguration(configuration *models.XtCheckConfiguration) error {
  101. err := XTWriteDB().Create(&configuration).Error
  102. return err
  103. }
  104. func GetAllCheckList(orgid int64, page int64, limit int64) (check []*models.CheckConfiguration, total int64, err error) {
  105. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
  106. table := XTReadDB().Table("xt_inspection_reference as r")
  107. fmt.Println(table)
  108. if orgid > 0 {
  109. db = db.Where("x.user_org_id = ?", orgid)
  110. }
  111. offset := (page - 1) * limit
  112. err = db.Group("x.id").Order("x.sort asc,x.created_time desc").Select("x.id,x.inspection_major,x.inspection_frequency,x.sort,x.user_org_id,r.project_name").Count(&total).
  113. Joins("left join xt_inspection_reference as r on r.project_id = x.inspection_major").Offset(offset).Limit(limit).Scan(&check).Error
  114. return check, total, err
  115. }
  116. func GetCheckDetail(id int64) (models.XtCheckConfiguration, error) {
  117. configuration := models.XtCheckConfiguration{}
  118. err := XTReadDB().Model(&configuration).Where("id=? and status =1", id).Find(&configuration).Error
  119. return configuration, err
  120. }
  121. func UpdateCheck(con *models.XtCheckConfiguration, id int64) error {
  122. err := XTWriteDB().Model(&con).Where("id=?", id).Updates(map[string]interface{}{"inspection_major": con.InspectionMajor, "inspection_frequency": con.InspectionFrequency, "sort": con.Sort, "updated_time": time.Now().Unix()}).Error
  123. return err
  124. }
  125. func DeleteCheck(id int64) error {
  126. err := XTWriteDB().Model(models.XtCheckConfiguration{}).Where("id=?", id).Updates(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  127. return err
  128. }
  129. func GetDialysiTotal(startime int64, endtime int64, orgid int64) (order []*models.DialysisOrder, total int64, err error) {
  130. err = XTReadDB().Model(&order).Where("dialysis_date >= ? and dialysis_date<=? and user_org_id = ?", startime, endtime, orgid).Count(&total).Find(&order).Error
  131. return order, total, err
  132. }
  133. func GetDialysisCountMode(starttime int64, endtime int64, orgid int64) (counts []*models.PatientPrescriptionCountStruct, err error) {
  134. //err = readDb.Table("xt_dialysis_prescription as p").Where("p.record_date>= ? and p.record_date<=? and p.user_org_id=?", starttime, endtime, orgid).Select("p.mode_id,count(p.mode_id) as count").Group("p.mode_id").Scan(&counts).Error
  135. //return counts, err
  136. err = readDb.Table("xt_dialysis_order as o left join xt_schedule as s on s.patient_id = o.patient_id").Where("s.schedule_date = o.dialysis_date and o.dialysis_date>=? and o.dialysis_date<=? and o.user_org_id = ? and o.status = 1 and s.status = 1", starttime, endtime, orgid).Select("s.mode_id,count(s.mode_id) as count").Group("s.mode_id").Scan(&counts).Error
  137. return counts, err
  138. }
  139. func GetTotalRollOut(starttime int64, endtime int64, orgid int64) (counts []*models.PatientLapseto, total int64, err error) {
  140. db := readDb.Table("xt_patient_lapseto as x").Where("x.status = 1")
  141. table := readDb.Table("xt_dialysis_order as s")
  142. fmt.Println(table)
  143. err = db.Select("x.patient_id,x.lapseto_type").Joins("left join xt_dialysis_order as s on s.patient_id = x.patient_id").Where("x.lapseto_time >=? and x.lapseto_time <= ? and x.lapseto_type = 2 and s.user_org_id = ?", starttime, endtime, orgid).Group("x.patient_id").Count(&total).Scan(&counts).Error
  144. return counts, total, err
  145. }
  146. func GetTotalRollOutPatients(orgid int64, startime int64, endtime int64) (patients []*models.XtPatients, err error) {
  147. db := XTReadDB().Table("x.patients as x")
  148. err = db.Raw("select x.id,x.`name`,s.lapseto_type,s.lapseto_time from xt_patients as x left join xt_patient_lapseto AS s ON s.patient_id = x.id where s.lapseto_time >=? and s.lapseto_time <=? and x.user_org_id = ? and s.lapseto_type = 1 and x.status = 1 group by s.patient_id", startime, endtime, orgid).Scan(&patients).Error
  149. return patients, err
  150. }
  151. func GetTotalRollOutPatientsTwo(orgid int64, startime int64, endtime int64) (patients []*models.XtPatients, err error) {
  152. db := XTReadDB().Table("x.patients as x")
  153. err = db.Raw("select x.id,x.`name`,s.lapseto_type,s.lapseto_time from xt_patients as x left join xt_patient_lapseto AS s ON s.patient_id = x.id where s.lapseto_time >=? and s.lapseto_time <=? and x.user_org_id = ? and s.lapseto_type = 2 and x.status = 1 group by s.patient_id", startime, endtime, orgid).Scan(&patients).Error
  154. return patients, err
  155. }
  156. func GetPatientTotalCount(orgID int64) (total int64) {
  157. readDb.Model(&models.XtPatients{}).Where("user_org_id=? and status=1", orgID).Count(&total)
  158. return
  159. }
  160. func GetPatientTotalCountTwo(orgid int64, starttime int64, endtime int64) (dialysisorder []*models.XtDialysisOrder, total int64, err error) {
  161. err = XTReadDB().Model(&dialysisorder).Group("patient_id").Where("user_org_id = ? and dialysis_date >= ? and dialysis_date <=? and status =1", orgid, starttime, endtime).Count(&total).Find(&dialysisorder).Error
  162. return dialysisorder, total, err
  163. }
  164. func GetManPatientTotalCount(orgid int64, starttime int64, endtime int64) (dialysisorder []*models.SgjDialysisOrder, total int64, err error) {
  165. db := XTReadDB().Table("xt_dialysis_order as s").Where("s.status = 1")
  166. table := XTReadDB().Table("xt_patients as x")
  167. fmt.Println("table", table)
  168. err = db.Select("s.dialysis_date,s.prescription_id").Joins("left join xt_patients as x on x.id = s.patient_id").Where("s.dialysis_date>=? and s.dialysis_date<=? and s.user_org_id = ? and s.status = 1 and x.gender = 1", starttime, endtime, orgid).Group("s.patient_id").Count(&total).Scan(&dialysisorder).Error
  169. return dialysisorder, total, err
  170. }
  171. func GetManPatientTotal(orgid int64) (patients []*models.XtPatients, total int64, err error) {
  172. err = XTReadDB().Model(&patients).Where("user_org_id = ? and status = 1 and gender = 1", orgid).Count(&total).Find(&patients).Error
  173. return patients, total, err
  174. }
  175. //func GetPatientInfectiousCount(orgid int64, starttime int64, endtime int64) (counts []*models.PatientContagionsCountStruct, err error) {
  176. // err = readDb.Table("xt_patients_infectious_diseases as x").Joins("join xt_dialysis_order as o on o.patient_id = x.patient_id").Joins("join xt_patients as s on s.id = x.patient_id").Where("o.user_org_id = ? and o.status =1 and o.dialysis_date>=? and o.dialysis_date <=? and x.status =1 and s.is_infectious = 2", orgid, starttime, endtime).Select("x.disease_id,count(x.disease_id) as count").Group("x.disease_id").Scan(&counts).Error
  177. // return counts, err
  178. //}
  179. func GetPatientInfectiousCount(orgid int64, startime int64, endtime int64) (counts []*models.PatientContagionsCountStruct, err error) {
  180. err = readDb.Table("xt_patients_infectious_diseases as x").Joins("join xt_patients as s on s.id = x.patient_id").Where("s.user_org_id = ? and s.status = 1 and s.is_infectious = 2 and s.created_time>=? and s.created_time<=?", orgid, startime, endtime).Select("x.disease_id,count(x.disease_id) as count").Group("x.disease_id").Scan(&counts).Error
  181. return counts, err
  182. }
  183. func GetPatientOtherInfectious(orgid int64) (patients []*models.XtPatients, total int64, err error) {
  184. err = XTReadDB().Model(&patients).Where("user_org_id = ? and status = 1 and is_infectious = 1", orgid).Count(&total).Find(&patients).Error
  185. return patients, total, err
  186. }
  187. func GetTotalAgeCount(orgid int64) (counts []*models.PatientAgeCountStruct, err error) {
  188. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  189. SELECT
  190. CASE
  191. WHEN ( substring( now( ), 1, 4 ) - substring( id_card_no, 7, 4 ) ) - ( substring( id_card_no, 11, 4 ) - date_format( now( ), '%m%d' ) > 0 )<=20 THEN '20'
  192. WHEN ( substring( now( ), 1, 4 ) - substring( id_card_no, 7, 4 ) ) - ( substring( id_card_no, 11, 4 ) - date_format( now( ), '%m%d' ) > 0 )<=40 THEN '40'
  193. WHEN ( substring( now( ), 1, 4 ) - substring( id_card_no, 7, 4 ) ) - ( substring( id_card_no, 11, 4 ) - date_format( now( ), '%m%d' ) > 0 )<=60 THEN '60'
  194. WHEN ( substring( now( ), 1, 4 ) - substring( id_card_no, 7, 4 ) ) - ( substring( id_card_no, 11, 4 ) - date_format( now( ), '%m%d' ) > 0 )<=80 THEN '80'
  195. ELSE '150'
  196. END
  197. AS nnd FROM xt_patients as s where s.user_org_id=? and s.status=1
  198. )a GROUP BY nnd`, orgid).Scan(&counts)
  199. return
  200. }
  201. func GetTotalAgeCountTwo(orgid int64, starttime int64, endtime int64) (counts []*models.PatientAgeCountStruct, err error) {
  202. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  203. SELECT
  204. CASE
  205. when (substring(now(),1,4)-substring(id_card_no,7,4))-(substring(id_card_no,11,4)-date_format(now(),'%m%d')>0) and (substring(now(),1,4)-substring(id_card_no,7,4))-(substring(id_card_no,11,4)-date_format(now(),'%m%d')<20) THEN '20'
  206. END
  207. AS nnd FROM xt_patients as s left join xt_dialysis_order as o on o.patient_id = s.id where s.user_org_id=? and s.status=1 and o.dialysis_date>= ? and o.dialysis_date<=?
  208. )a GROUP BY nnd`, orgid, starttime, endtime).Scan(&counts)
  209. return
  210. }
  211. func GetTotalDialysisAgeCount(orgid int64) (patients []*models.XtPatients, err error) {
  212. err = XTReadDB().Where("user_org_id = ? and status =1", orgid).Find(&patients).Error
  213. return patients, err
  214. }
  215. func GetDialysisAgeData(orgID int64) (counts []*models.DialysisAgePieDataStruct, err error) {
  216. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  217. SELECT
  218. CASE
  219. WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) >= 0 AND TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) <= 12 THEN '1'
  220. WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 12 AND TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) <= 36 THEN '2'
  221. WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 36 AND TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) <= 60 THEN '3'
  222. WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 60 THEN '4'
  223. END AS nnd FROM xt_patients as p where p.user_org_id=? and p.status=1 and p.first_dialysis_date <> 0)a GROUP BY nnd`, orgID).Scan(&counts)
  224. return
  225. }
  226. func GetCurentOrgPatients(orgid int64) (patients []*models.XtPatients, err error) {
  227. err = XTReadDB().Where("user_org_id = ? and status =1", orgid).Order("created_time desc").Find(&patients).Error
  228. return patients, err
  229. }
  230. func TotalDialysisCount(startime int64, endtime int64, orgid int64) (order []*models.BloodDialysisOrderCount, err error) {
  231. db := XTReadDB().Table("xt_dialysis_order as o")
  232. err = db.Raw("select count(o.id) as count,o.patient_id from xt_dialysis_order as o where o.status = 1 and o.dialysis_date>=? and o.dialysis_date<=? and o.user_org_id = ?", startime, endtime, orgid).Group("o.patient_id").Scan(&order).Error
  233. return order, err
  234. }
  235. func GetDialysisList(startime int64, endtime int64, page int64, limit int64, orgid int64) (order []*models.BloodDialysisOrder, total int64, err error) {
  236. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  237. table := XTReadDB().Table("xt_schedule as s")
  238. fmt.Println(table)
  239. d := XTReadDB().Table("xt_patients as p")
  240. fmt.Println(d)
  241. if orgid > 0 {
  242. db = db.Where("o.user_org_id = ?", orgid)
  243. }
  244. if startime > 0 {
  245. db = db.Where("o.dialysis_date>=?", startime)
  246. }
  247. if endtime > 0 {
  248. db = db.Where("o.dialysis_date<=?", endtime)
  249. }
  250. offset := (page - 1) * limit
  251. err = db.Group("s.patient_id,s.mode_id").Select("s.mode_id,o.patient_id,p.name,p.id_card_no,p.dialysis_no,p.total_dialysis,p.user_sys_before_count").Joins("left join xt_schedule as s on s.patient_id = o.patient_id").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.schedule_date = o.dialysis_date and s.status = 1").Count(&total).Offset(offset).Limit(limit).Scan(&order).Error
  252. return order, total, err
  253. }
  254. func GetAllDialysisList(startime int64, endtime int64, orgid int64) (order []*models.BloodDialysisOrder, err error) {
  255. table := XTReadDB().Table("xt_schedule as s")
  256. fmt.Println(table)
  257. d := XTReadDB().Table("xt_patients as p")
  258. fmt.Println(d)
  259. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  260. if orgid > 0 {
  261. db = db.Where("o.user_org_id = ?", orgid)
  262. }
  263. if startime > 0 {
  264. db = db.Where("o.dialysis_date>=?", startime)
  265. }
  266. if endtime > 0 {
  267. db = db.Where("o.dialysis_date<=?", endtime)
  268. }
  269. err = db.Group("s.patient_id,s.mode_id").Select("s.mode_id,s.patient_id,p.name,p.id_card_no,p.dialysis_no,p.total_dialysis,p.user_sys_before_count").Joins("left join xt_schedule as s on s.patient_id = o.patient_id").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.schedule_date = o.dialysis_date and s.status = 1 ").Scan(&order).Error
  270. return order, err
  271. }
  272. func GetDialysisPatientList(startime int64, endtime int64, page int64, limit int64, orgid int64) (order []*models.BloodDialysisOrder, total int64, err error) {
  273. table := XTReadDB().Table("xt_schedule as s")
  274. fmt.Println(table)
  275. d := XTReadDB().Table("xt_patients as p")
  276. fmt.Println(d)
  277. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  278. if orgid > 0 {
  279. db = db.Where("o.user_org_id = ?", orgid)
  280. }
  281. if startime > 0 {
  282. db = db.Where("o.dialysis_date>=?", startime)
  283. }
  284. if endtime > 0 {
  285. db = db.Where("o.dialysis_date<=?", endtime)
  286. }
  287. offset := (page - 1) * limit
  288. err = db.Group("s.patient_id").Select("s.mode_id,o.patient_id,p.name,p.id_card_no,p.dialysis_no,p.total_dialysis,p.user_sys_before_count").Joins("left join xt_schedule as s on s.patient_id = o.patient_id").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.schedule_date = o.dialysis_date and s.status =1 ").Count(&total).Offset(offset).Limit(limit).Scan(&order).Error
  289. return order, total, err
  290. }
  291. func GetLastSort(orgid int64) (models.XtQualityControlStandard, error) {
  292. standard := models.XtQualityControlStandard{}
  293. err := XTReadDB().Model(&standard).Where("user_org_id = ? and status =1", orgid).Last(&standard).Error
  294. return standard, err
  295. }
  296. func GetLastCheckList(orgid int64) (models.XtCheckConfiguration, error) {
  297. configuration := models.XtCheckConfiguration{}
  298. err := XTReadDB().Model(&configuration).Where("user_org_id = ? and status =1", orgid).Last(&configuration).Error
  299. return configuration, err
  300. }
  301. func GetDialysisDetailById(id int64, orgid int64, startime int64, endtime int64, limit int64, page int64) (prescription []*models.BloodDialysisPrescription, total int64, err error) {
  302. db := XTReadDB().Table("xt_dialysis_prescription as p").Where("p.status =1 ")
  303. table := XTReadDB().Table("xt_patients as s")
  304. fmt.Println(table)
  305. if id > 0 {
  306. db = db.Where("p.patient_id = ?", id)
  307. }
  308. if orgid > 0 {
  309. db = db.Where("p.user_org_id = ?", orgid)
  310. }
  311. if startime > 0 {
  312. db = db.Where("p.record_date >= ?", startime)
  313. }
  314. if endtime > 0 {
  315. db = db.Where("p.record_date <=?", endtime)
  316. }
  317. offset := (page - 1) * limit
  318. err = db.Group("p.mode_id").Select("p.mode_id,p.patient_id,s.name,s.id_card_no,s.dialysis_no,s.total_dialysis,s.user_sys_before_count").Joins("left join xt_patients as s on s.id = p.patient_id").Count(&total).Offset(offset).Limit(limit).Scan(&prescription).Error
  319. return prescription, total, err
  320. }
  321. func GetPrescritionByName(orgid int64, patient_id int64, startime int64, endtime int64, limit int64, page int64) (prescription []*models.BloodDialysisPrescription, total int64, err error) {
  322. db := XTReadDB().Table("xt_dialysis_prescription as p").Where("p.status =1 ")
  323. table := XTReadDB().Table("xt_patients as s")
  324. fmt.Println(table)
  325. //if len(keywords) > 0 {
  326. // likeKey := "%" + keywords + "%"
  327. // db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", likeKey, likeKey)
  328. //}
  329. if patient_id > 0 {
  330. db = db.Where("s.id = ?", patient_id)
  331. }
  332. if orgid > 0 {
  333. db = db.Where("p.user_org_id = ?", orgid)
  334. }
  335. if startime > 0 {
  336. db = db.Where("p.record_date >= ?", startime)
  337. }
  338. if endtime > 0 {
  339. db = db.Where("p.record_date <=?", endtime)
  340. }
  341. offset := (page - 1) * limit
  342. err = db.Group("p.mode_id").Select("p.mode_id,p.patient_id,s.name,s.id_card_no,s.dialysis_no,s.total_dialysis,s.user_sys_before_count").Joins("left join xt_patients as s on s.id = p.patient_id").Count(&total).Offset(offset).Limit(limit).Scan(&prescription).Error
  343. return prescription, total, err
  344. }
  345. func GetTreateInfo(orgID int64, startime int64, endtime int64, lapseto int64, limit int64, page int64) (blood []*models.TreatDialysisOrder, total int64, err error) {
  346. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  347. table := XTReadDB().Table("xt_schedule as s")
  348. fmt.Println(table)
  349. p := XTReadDB().Table("xt_patients as p")
  350. fmt.Println(p)
  351. sql := "from_unixtime(o.dialysis_date, '%Y%m%d') AS date"
  352. if orgID > 0 {
  353. db = db.Where("o.user_org_id = ?", orgID)
  354. }
  355. if startime > 0 {
  356. db = db.Where("o.dialysis_date >=?", startime)
  357. }
  358. if endtime > 0 {
  359. db = db.Where("o.dialysis_date<=?", endtime)
  360. }
  361. if lapseto == 0 {
  362. db = db.Where("p.lapseto = 1 or p.lapseto = 2")
  363. }
  364. if lapseto > 0 {
  365. db = db.Where("p.lapseto = ?", lapseto)
  366. }
  367. offset := (page - 1) * limit
  368. err = db.Group("o.dialysis_date").Select(sql).Joins("left join xt_schedule as s on s.patient_id = o.patient_id").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.schedule_date = o.dialysis_date and s.status =1").Count(&total).Offset(offset).Limit(limit).Scan(&blood).Error
  369. return blood, total, err
  370. }
  371. func GetTreatList(orgid int64, startime int64, endtime int64, lapseto int64) (ttd []*models.TreatTotalStruct, err error) {
  372. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  373. table := XTReadDB().Table("xt_schedule as s")
  374. fmt.Println(table)
  375. p := XTReadDB().Table("xt_patients as p")
  376. fmt.Println(p)
  377. if orgid > 0 {
  378. db = db.Where("o.user_org_id = ?", orgid)
  379. }
  380. if startime > 0 {
  381. db = db.Where("o.dialysis_date>=?", startime)
  382. }
  383. if endtime > 0 {
  384. db = db.Where("o.dialysis_date<=?", endtime)
  385. }
  386. if lapseto == 0 {
  387. db = db.Where("p.lapseto = 1 or p.lapseto = 2")
  388. }
  389. if lapseto > 0 {
  390. db = db.Where("p.lapseto = ?", lapseto)
  391. }
  392. err = db.Select("s.mode_id, count(s.mode_id) as number").Joins("left join xt_schedule as s on s.patient_id = o.patient_id").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.schedule_date = o.dialysis_date and s.status = 1").Group("s.mode_id").Order("s.mode_id asc").Find(&ttd).Error
  393. return ttd, err
  394. }
  395. func GetStatistics(orgID int64, startime int64, endtime int64, modeID int64) (dtd []*DialysisTotalDataStruct, ttd []*DialysisTotalDataStruct, err error) {
  396. db := readDb
  397. sql := "s.mode_id,from_unixtime(o.dialysis_date, '%Y%m%d') as date, count(o.dialysis_date) as number"
  398. datesql := " o.dialysis_date as date"
  399. group := "from_unixtime(o.dialysis_date, '%Y%m%d')"
  400. db = db.Table(" xt_dialysis_order AS o").Joins("left join xt_schedule as s on o.patient_id = s.patient_id").Where("s.schedule_date = o.dialysis_date and s.status =1")
  401. if orgID > 0 {
  402. db = db.Where("o.user_org_id = ?", orgID)
  403. }
  404. if modeID > 0 {
  405. db = db.Where("s.mode_id=?", modeID)
  406. }
  407. if startime > 0 {
  408. db = db.Where("o.dialysis_date>=?", startime)
  409. }
  410. if endtime > 0 {
  411. db = db.Where("o.dialysis_date<=?", endtime)
  412. }
  413. db = db.Where("o.status=1")
  414. err = db.Select("s.mode_id, count(s.mode_id) as number").Group("s.mode_id").Order("s.mode_id asc").Find(&ttd).Error
  415. if err != nil {
  416. return
  417. }
  418. var ds []*DialysisTotalDataStruct
  419. err = db.Select(datesql).Group(group).Find(&ds).Error
  420. if err != nil {
  421. return
  422. }
  423. dates := make([]string, 0)
  424. if len(ds) > 0 {
  425. for _, d := range ds {
  426. dates = append(dates, d.Date)
  427. }
  428. db = db.Where("o.dialysis_date IN (?)", dates)
  429. }
  430. err = db.Select(sql).Group(group + ", s.mode_id").Order("date asc, s.mode_id").Find(&dtd).Error
  431. return
  432. }
  433. func GetInspectionTotalCount(orgid int64) (configuration []*models.CheckConfiguration, err error) {
  434. var count int
  435. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status = 1")
  436. table := XTReadDB().Table("xt_inspection_reference as s")
  437. if orgid > 0 {
  438. db = db.Where("x.user_org_id = ?", orgid)
  439. }
  440. fmt.Println(table)
  441. err = db.Group("x.inspection_major").Select("x.id,x.inspection_major,x.inspection_frequency,x.sort,x.user_org_id,s.project_name").Joins("left join xt_inspection_reference as s on s.project_id = x.inspection_major").Count(&count).Order("x.sort asc").Scan(&configuration).Error
  442. return configuration, err
  443. }
  444. func GetInspectionProjectCount(orgid int64, startime int64, endtime int64, patientid int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
  445. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  446. table := XTReadDB().Table("xt_inspection_reference as r")
  447. fmt.Println(table)
  448. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  449. fmt.Println(d)
  450. if orgid > 0 {
  451. db = db.Where("x.org_id = ?", orgid)
  452. }
  453. if startime > 0 {
  454. db = db.Where("x.inspect_date >=?", startime)
  455. }
  456. if endtime > 0 {
  457. db = db.Where("x.inspect_date <=?", endtime)
  458. }
  459. if patientid > 0 {
  460. db = db.Where("x.patient_id = ?", patientid)
  461. }
  462. err = db.Select("count(distinct x.inspect_date) as count,x.patient_id,x.project_id,r.project_name,t.sort").Joins("left join xt_check_configuration as t on t.inspection_major = x.project_id").Joins("left join xt_inspection_reference as r on r.project_id = x.project_id").Group("x.project_id,x.patient_id").Scan(&projectCounts).Error
  463. return
  464. }
  465. func GetInspectionDetailById(id int64, orgid int64, startime int64, endtime int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
  466. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  467. table := XTReadDB().Table("xt_inspection_reference as r")
  468. fmt.Println(table)
  469. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  470. fmt.Println(d)
  471. if id > 0 {
  472. db = db.Where("x.patient_id=?", id)
  473. }
  474. if orgid > 0 {
  475. db = db.Where("x.org_id = ?", orgid)
  476. }
  477. if startime > 0 {
  478. db = db.Where("x.inspect_date >=?", startime)
  479. }
  480. if endtime > 0 {
  481. db = db.Where("x.inspect_date <=?", endtime)
  482. }
  483. err = db.Select("count(distinct x.inspect_date) as count,x.patient_id,x.project_id,r.project_name,t.inspection_frequency").Joins("left join xt_check_configuration as t on t.inspection_major = x.project_id").Joins("left join xt_inspection_reference as r on r.project_id = x.project_id").Group("project_id,patient_id").Scan(&projectCounts).Error
  484. return
  485. }
  486. func GetSearchPatientInfo(orgid int64, keywords int64, startime int64, endtime int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
  487. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  488. table := XTReadDB().Table("xt_inspection_reference as r")
  489. fmt.Println(table)
  490. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  491. fmt.Println(d)
  492. p := XTReadDB().Table("xt_patients as p")
  493. fmt.Println(p)
  494. //if len(keywords) > 0 {
  495. // likeKey := "%" + keywords + "%"
  496. // db = db.Where("p.name LIKE ? OR p.dialysis_no LIKE ?", likeKey, likeKey)
  497. //}
  498. if keywords > 0 {
  499. db = db.Where("x.patient_id = ?", keywords)
  500. }
  501. if orgid > 0 {
  502. db = db.Where("x.org_id = ?", orgid)
  503. }
  504. if startime > 0 {
  505. db = db.Where("x.inspect_date >=?", startime)
  506. }
  507. if endtime > 0 {
  508. db = db.Where("x.inspect_date <=?", endtime)
  509. }
  510. err = db.Select("count(distinct x.inspect_date) as count,x.patient_id,x.project_id,r.project_name,t.inspection_frequency").Joins("left join xt_check_configuration as t on t.inspection_major = x.project_id").Joins("left join xt_inspection_reference as r on r.project_id = x.project_id").Joins("left join xt_patients as p on p.id = x.patient_id").Group("project_id,patient_id").Scan(&projectCounts).Error
  511. return
  512. }
  513. func GetMajorInspectionByOrgid(orgid int64) (checkconfiguration []*models.CheckConfiguration, err error) {
  514. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
  515. table := XTReadDB().Table("xt_inspection_reference ar r")
  516. fmt.Println(table)
  517. err = db.Group("x.inspection_major").Select("x.id,x.inspection_major,x.inspection_frequency,x.sort,x.user_org_id,r.project_name").Where("x.user_org_id = ?", orgid).Joins("left join xt_inspection_reference as r on r.project_id = x.inspection_major").Scan(&checkconfiguration).Error
  518. return checkconfiguration, err
  519. }
  520. func GetDefaultByOrgId(orgid int64) (checkconfiguration []*models.CheckConfiguration, err error) {
  521. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
  522. table := XTReadDB().Table("xt_inspection_reference ar r")
  523. fmt.Println(table)
  524. err = db.Group("x.inspection_major").Select("x.id,x.inspection_major,x.inspection_frequency,x.sort,x.user_org_id,r.project_name").Where("x.user_org_id = ?", orgid).Joins("left join xt_inspection_reference as r on r.project_id = x.inspection_major").Scan(&checkconfiguration).Error
  525. return checkconfiguration, err
  526. }
  527. func GetPatientListData(orgid int64, startime int64, endtime int64, limit int64, page int64) (inspection []*models.PatientsInspection, total int64, err error) {
  528. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  529. table := XTReadDB().Table("xt_patients as s")
  530. fmt.Println("table", table)
  531. if orgid > 0 {
  532. db = db.Where("x.org_id = ?", orgid)
  533. }
  534. if startime > 0 {
  535. db = db.Where("x.inspect_date >= ?", startime)
  536. }
  537. if endtime > 0 {
  538. db = db.Where("x.inspect_date <=?", endtime)
  539. }
  540. offset := (page - 1) * limit
  541. err = db.Group("x.patient_id").Select("x.id,x.patient_id,x.project_id,x.project_name,s.name").Joins("left join xt_patients as s on s.id = x.patient_id").Count(&total).Offset(offset).Limit(limit).Scan(&inspection).Error
  542. return inspection, total, err
  543. }
  544. func GetPatientListInfo(orgid int64, startime int64, endtime int64, limit int64, page int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
  545. patients, _, err := GetPatientListData(orgid, startime, endtime, limit, page)
  546. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  547. table := XTReadDB().Table("xt_inspection_reference as r")
  548. fmt.Println(table)
  549. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  550. pa := XTReadDB().Table("xt_patients as s")
  551. fmt.Println(pa)
  552. fmt.Println(d)
  553. if orgid > 0 {
  554. db = db.Where("x.org_id = ?", orgid)
  555. }
  556. if startime > 0 {
  557. db = db.Where("x.inspect_date >=?", startime)
  558. }
  559. if endtime > 0 {
  560. db = db.Where("x.inspect_date <=?", endtime)
  561. }
  562. //if len(ds) > 0 {
  563. // for _, d := range ds {
  564. // dates = append(dates, d.Date)
  565. // }
  566. //
  567. // db = db.Where("o.dialysis_date IN (?)", dates)
  568. //
  569. ////}
  570. selectContent := "CASE"
  571. dates := make([]string, 0)
  572. for _, item := range patients {
  573. selectContent = selectContent + " WHEN x.patient_id =" + strconv.FormatInt(item.PatientId, 10) + " THEN " + "'" + item.Name + "'"
  574. dates = append(dates, strconv.FormatInt(item.PatientId, 10))
  575. }
  576. db = db.Where("x.patient_id in(?)", dates)
  577. err = db.Select(selectContent + "ELSE '未知' END AS name,count(distinct x.inspect_date) as count,x.patient_id,x.project_id,r.project_name,s.name").Joins("left join xt_check_configuration as t on t.inspection_major = x.project_id").Joins("left join xt_inspection_reference as r on r.project_id = x.project_id").Joins("left join xt_patients as s on s.id = x.patient_id").Group("x.project_id,x.patient_id").Scan(&projectCounts).Error
  578. //err = db.Select("count(distinct x.inspect_date) as count,x.patient_id,x.project_id,r.project_name,s.name").Joins("left join xt_check_configuration as t on t.inspection_major = x.project_id").Joins("left join xt_inspection_reference as r on r.project_id = x.project_id").Joins("left join xt_patients as s on s.id = x.patient_id").Group("project_id,patient_id").Scan(&projectCounts).Error
  579. return
  580. }
  581. func GetPatientDetailCheck(id int64, orgid int64, startime int64, endtime int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
  582. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  583. table := XTReadDB().Table("xt_inspection_reference as r")
  584. fmt.Println(table)
  585. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  586. pa := XTReadDB().Table("xt_patients as s")
  587. fmt.Println(pa)
  588. fmt.Println(d)
  589. if id > 0 {
  590. db = db.Where("s.id = ?", id)
  591. }
  592. if orgid > 0 {
  593. db = db.Where("x.org_id = ?", orgid)
  594. }
  595. if startime > 0 {
  596. db = db.Where("x.inspect_date >=?", startime)
  597. }
  598. if endtime > 0 {
  599. db = db.Where("x.inspect_date <=?", endtime)
  600. }
  601. err = db.Select("count(distinct x.inspect_date) as count,x.patient_id,x.project_id,r.project_name,s.name").Joins("left join xt_check_configuration as t on t.inspection_major = x.project_id").Joins("left join xt_inspection_reference as r on r.project_id = x.project_id").Joins("left join xt_patients as s on s.id = x.patient_id").Group("project_id,patient_id").Scan(&projectCounts).Error
  602. return
  603. }
  604. func GetSearchDetailCheck(orgid int64, keywords string, startime int64, endtime int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
  605. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  606. table := XTReadDB().Table("xt_inspection_reference as r")
  607. fmt.Println(table)
  608. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  609. pa := XTReadDB().Table("xt_patients as s")
  610. fmt.Println(pa)
  611. fmt.Println(d)
  612. if len(keywords) > 0 {
  613. likeKey := "%" + keywords + "%"
  614. db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", likeKey, likeKey)
  615. }
  616. if orgid > 0 {
  617. db = db.Where("x.org_id = ?", orgid)
  618. }
  619. if startime > 0 {
  620. db = db.Where("x.inspect_date >=?", startime)
  621. }
  622. if endtime > 0 {
  623. db = db.Where("x.inspect_date <=?", endtime)
  624. }
  625. err = db.Select("count(distinct x.inspect_date) as count,x.patient_id,x.project_id,r.project_name,s.name").Joins("left join xt_check_configuration as t on t.inspection_major = x.project_id").Joins("left join xt_inspection_reference as r on r.project_id = x.project_id").Joins("left join xt_patients as s on s.id = x.patient_id").Group("project_id,patient_id").Scan(&projectCounts).Error
  626. return
  627. }
  628. func GetNormDataByOrgId(orgid int64) (standard []*models.QualityControlStandard, err error) {
  629. db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
  630. if orgid > 0 {
  631. db = db.Where("x.user_org_id = ?", orgid)
  632. }
  633. table := XTReadDB().Table("xt_inspection_reference as s")
  634. fmt.Println(table)
  635. err = db.Order("x.sort asc,x.created_time desc").Group("x.id").Select("x.id,x.inspection_major,x.inspection_minor,x.min_range,x.large_range,x.sort,x.user_org_id,s.unit,s.project_name,s.item_name,x.range_value,x.range_type").
  636. Joins("left join xt_inspection_reference as s on s.id = x.inspection_minor").Scan(&standard).Error
  637. return standard, err
  638. }
  639. func GetNormData(orgid int64) (standard []*models.QualityControlStandard, err error) {
  640. db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
  641. if orgid >= 0 {
  642. db = db.Where("x.user_org_id = ?", orgid)
  643. }
  644. table := XTReadDB().Table("xt_inspection_reference as s")
  645. fmt.Println(table)
  646. err = db.Order("x.sort asc,x.created_time desc").Group("x.id").Select("x.id,x.inspection_major,x.inspection_minor,x.min_range,x.large_range,x.sort,x.user_org_id,s.unit,s.project_name,s.item_name").
  647. Joins("left join xt_inspection_reference as s on s.id = x.inspection_minor").Scan(&standard).Error
  648. return standard, err
  649. }
  650. func GetItemNameGroup(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientInspection, err error) {
  651. db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
  652. table := XTReadDB().Table("xt_inspection_reference as r")
  653. fmt.Println(table)
  654. if orgid > 0 {
  655. db = db.Where("x.org_id = ?", orgid)
  656. }
  657. if startime > 0 {
  658. db = db.Where("x.inspect_date >=?", startime)
  659. }
  660. if endtime > 0 {
  661. db = db.Where("x.inspect_date <=?", endtime)
  662. }
  663. err = db.Group("x.item_id").Select(" count(x.item_id ) AS count,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,r.range_min,r.range_max").Joins("left join xt_inspection_reference as r on r.id = x.item_id").Scan(&inspection).Error
  664. return inspection, err
  665. }
  666. func GetFirstQuarter(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientInspection, err error) {
  667. db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
  668. table := XTReadDB().Table("xt_inspection_reference as r")
  669. fmt.Println(table)
  670. if orgid > 0 {
  671. db = db.Where("x.org_id = ?", orgid)
  672. }
  673. if startime > 0 {
  674. db = db.Where("x.inspect_date >=?", startime)
  675. }
  676. if endtime > 0 {
  677. db = db.Where("x.inspect_date <=?", endtime)
  678. }
  679. err = db.Group("x.item_id").Select("count(x.item_id) as count,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,r.range_min,r.range_max").Where("x.inspect_value+0 >= r.range_min+0 and x.inspect_value+0 <= r.range_max+0").Joins("left join xt_inspection_reference as r on r.id = x.item_id").Scan(&inspection).Error
  680. return inspection, err
  681. }
  682. func GetQuarterTotalCount(orgid int64, startime int64, endtime int64, lapseto int64) (inspection []*models.VmPatientInspectionTwo, err error) {
  683. db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
  684. table := XTReadDB().Table("xt_inspection_reference as r")
  685. fmt.Println(table)
  686. d := XTReadDB().Table("xt_patients as s")
  687. fmt.Println(d)
  688. q := XTReadDB().Table("x.xt_quality_control_standard as q")
  689. fmt.Println(q)
  690. if orgid > 0 {
  691. db = db.Where("x.org_id = ? and x.inspect_value <> 0 and r.range_type = 1", orgid)
  692. }
  693. if startime > 0 {
  694. db = db.Where("x.inspect_date >=?", startime)
  695. }
  696. if endtime > 0 {
  697. db = db.Where("x.inspect_date <=?", endtime)
  698. }
  699. if lapseto == 0 {
  700. db = db.Where("s.lapseto = 1 or s.lapseto = 2")
  701. }
  702. if lapseto > 0 {
  703. db = db.Where("s.lapseto = ?", lapseto)
  704. }
  705. err = db.Group("x.item_id").Select("sum(case when x.inspect_date >=? and x.inspect_date<=? then 1 else 0 end) as total,sum(case when x.inspect_value+0>=q.min_range+0 and x.inspect_value +0 <= q.large_range+0 and x.inspect_date >=? and x.inspect_date <=? then 1 else 0 end) as count,x.item_id,q.sort", startime, endtime, startime, endtime).Joins("left join xt_inspection_reference as r on ( r.item_id = x.item_id AND r.org_id > 0) OR ( x.item_id = r.id AND r.org_id = 0 ) ").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_quality_control_standard as q on q.inspection_minor = x.item_id").Scan(&inspection).Error
  706. return inspection, err
  707. }
  708. func GetQuarterTotalCountTwo(orgid int64, startime int64, endtime int64, lapseto int64) (inspection []*models.VmPatientInspectionTwo, err error) {
  709. db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
  710. table := XTReadDB().Table("xt_inspection_reference as r")
  711. fmt.Println(table)
  712. d := XTReadDB().Table("xt_patients as s")
  713. fmt.Println(d)
  714. q := XTReadDB().Table("x.xt_quality_control_standard as q")
  715. fmt.Println(q)
  716. if orgid > 0 {
  717. db = db.Where("x.org_id = ? and r.range_type = 2", orgid)
  718. }
  719. if startime > 0 {
  720. db = db.Where("x.inspect_date >=?", startime)
  721. }
  722. if endtime > 0 {
  723. db = db.Where("x.inspect_date <=?", endtime)
  724. }
  725. if lapseto == 0 {
  726. db = db.Where("s.lapseto = 1 or s.lapseto = 2")
  727. }
  728. if lapseto > 0 {
  729. db = db.Where("s.lapseto = ?", lapseto)
  730. }
  731. err = db.Group("x.item_id").Select("sum(case when x.inspect_date >=? and x.inspect_date<=? then 1 else 0 end) as total,sum(case when q.range_value = x.inspect_value and x.inspect_date >=? and x.inspect_date <=? then 1 else 0 end) as count,x.item_id,q.sort", startime, endtime, startime, endtime).Joins("left join xt_inspection_reference as r on ( r.item_id = x.item_id AND r.org_id > 0) OR ( x.item_id = r.id AND r.org_id = 0 ) ").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_quality_control_standard as q on q.inspection_minor = x.item_id").Scan(&inspection).Error
  732. return inspection, err
  733. }
  734. func GetProjectList(orgid int64, lapseto int64, modetype int64, startime int64, endtime int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCountOne, err error) {
  735. if lapseto == 0 {
  736. d := XTReadDB().Table("xt_patients as s")
  737. fmt.Println("d", d)
  738. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  739. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  740. "SELECT " +
  741. "CASE " +
  742. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  743. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  744. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  745. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  746. " ELSE '其他'" +
  747. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and x.inspect_value <> 0"
  748. countParams := make([]interface{}, 0)
  749. countParams = append(countParams, firststart)
  750. countParams = append(countParams, firstend)
  751. countParams = append(countParams, sencondstart)
  752. countParams = append(countParams, sencondend)
  753. countParams = append(countParams, threestart)
  754. countParams = append(countParams, threeend)
  755. countParams = append(countParams, fourstart)
  756. countParams = append(countParams, fourend)
  757. if orgid > 0 {
  758. db = db.Where("x.org_id=?", orgid)
  759. countSQL += " AND x.org_id=?"
  760. countParams = append(countParams, orgid)
  761. }
  762. if modetype > 0 {
  763. db = db.Where("x.item_id = ?", modetype)
  764. countSQL += " AND x.item_id=?"
  765. countParams = append(countParams, modetype)
  766. }
  767. if startime > 0 {
  768. db = db.Where("x.inspect_date >= ?", startime)
  769. countSQL += " AND x.inspect_date >=?"
  770. countParams = append(countParams, startime)
  771. }
  772. if endtime > 0 {
  773. db = db.Where("x.inspect_date <= ?", endtime)
  774. countSQL += " AND x.inspect_date <=?"
  775. countParams = append(countParams, endtime)
  776. }
  777. countSQL += ")a GROUP BY nnd"
  778. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  779. }
  780. if lapseto == 1 {
  781. d := XTReadDB().Table("xt_patients as s")
  782. fmt.Println("d", d)
  783. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  784. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  785. "SELECT " +
  786. "CASE " +
  787. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  788. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  789. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  790. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  791. "ELSE '其他'" +
  792. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1)"
  793. countParams := make([]interface{}, 0)
  794. countParams = append(countParams, firststart)
  795. countParams = append(countParams, firstend)
  796. countParams = append(countParams, sencondstart)
  797. countParams = append(countParams, sencondend)
  798. countParams = append(countParams, threestart)
  799. countParams = append(countParams, threeend)
  800. countParams = append(countParams, fourstart)
  801. countParams = append(countParams, fourend)
  802. if orgid > 0 {
  803. db = db.Where("x.org_id=?", orgid)
  804. countSQL += " AND x.org_id=?"
  805. countParams = append(countParams, orgid)
  806. }
  807. if modetype > 0 {
  808. db = db.Where("x.item_id = ?", modetype)
  809. countSQL += " AND x.item_id=?"
  810. countParams = append(countParams, modetype)
  811. }
  812. if startime > 0 {
  813. db = db.Where("x.inspect_date >= ?", startime)
  814. countSQL += " AND x.inspect_date >=?"
  815. countParams = append(countParams, startime)
  816. }
  817. if endtime > 0 {
  818. db = db.Where("x.inspect_date <= ?", endtime)
  819. countSQL += " AND x.inspect_date <=?"
  820. countParams = append(countParams, endtime)
  821. }
  822. countSQL += ")a GROUP BY nnd"
  823. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  824. }
  825. if lapseto == 2 {
  826. d := XTReadDB().Table("xt_patients as s")
  827. fmt.Println("d", d)
  828. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  829. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  830. "SELECT " +
  831. "CASE " +
  832. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  833. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  834. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  835. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  836. " ELSE '其他'" +
  837. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2)"
  838. countParams := make([]interface{}, 0)
  839. countParams = append(countParams, firststart)
  840. countParams = append(countParams, firstend)
  841. countParams = append(countParams, sencondstart)
  842. countParams = append(countParams, sencondend)
  843. countParams = append(countParams, threestart)
  844. countParams = append(countParams, threeend)
  845. countParams = append(countParams, fourstart)
  846. countParams = append(countParams, fourend)
  847. if orgid > 0 {
  848. db = db.Where("x.org_id=?", orgid)
  849. countSQL += " AND x.org_id=?"
  850. countParams = append(countParams, orgid)
  851. }
  852. if modetype > 0 {
  853. db = db.Where("x.item_id = ?", modetype)
  854. countSQL += " AND x.item_id=?"
  855. countParams = append(countParams, modetype)
  856. }
  857. if startime > 0 {
  858. db = db.Where("x.inspect_date >= ?", startime)
  859. countSQL += " AND x.inspect_date >=?"
  860. countParams = append(countParams, startime)
  861. }
  862. if endtime > 0 {
  863. db = db.Where("x.inspect_date <= ?", endtime)
  864. countSQL += " AND x.inspect_date <=?"
  865. countParams = append(countParams, endtime)
  866. }
  867. countSQL += ")a GROUP BY nnd"
  868. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  869. }
  870. return
  871. }
  872. func GetProjectStandList(orgid int64, lapseto int64, modetype int64, startime int64, endtime int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCount, err error) {
  873. if lapseto == 0 {
  874. d := XTReadDB().Table("xt_patients as s")
  875. fmt.Println("d", d)
  876. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value<> ''")
  877. table := XTReadDB().Table("xt_inspection_reference as r")
  878. q := XTReadDB().Table("xt_quality_control_standard as r")
  879. fmt.Println("q", q)
  880. fmt.Println(table)
  881. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  882. "SELECT " +
  883. "CASE " +
  884. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第一季度'" +
  885. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第二季度'" +
  886. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第三季度'" +
  887. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第四季度'" +
  888. " ELSE '其他'" +
  889. "END AS nnd FROM xt_inspection as x left join xt_quality_control_standard as r on (r.inspection_minor = x.item_id AND r.user_org_id > 0) OR ( x.item_id = r.inspection_minor AND r.user_org_id = 0) left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value + 0 >= r.min_range + 0 AND x.inspect_value + 0 <= r.large_range+0)"
  890. countParams := make([]interface{}, 0)
  891. countParams = append(countParams, firststart)
  892. countParams = append(countParams, firstend)
  893. countParams = append(countParams, sencondstart)
  894. countParams = append(countParams, sencondend)
  895. countParams = append(countParams, threestart)
  896. countParams = append(countParams, threeend)
  897. countParams = append(countParams, fourstart)
  898. countParams = append(countParams, fourend)
  899. if orgid > 0 {
  900. db = db.Where("x.org_id=?", orgid)
  901. countSQL += " AND x.org_id=?"
  902. countParams = append(countParams, orgid)
  903. }
  904. if orgid > 0 {
  905. db = db.Where("r.user_org_id=?", orgid)
  906. countSQL += " AND r.user_org_id=?"
  907. countParams = append(countParams, orgid)
  908. }
  909. if modetype > 0 {
  910. db = db.Where("x.item_id = ?", modetype)
  911. countSQL += " AND x.item_id=?"
  912. countParams = append(countParams, modetype)
  913. }
  914. if startime > 0 {
  915. db = db.Where("x.inspect_date >= ? ", startime)
  916. countSQL += " AND x.inspect_date >=?"
  917. countParams = append(countParams, startime)
  918. }
  919. if endtime > 0 {
  920. db = db.Where("x.inspect_date <= ?", endtime)
  921. countSQL += " AND x.inspect_date <=?"
  922. countParams = append(countParams, endtime)
  923. }
  924. countSQL += ")a GROUP BY nnd"
  925. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  926. }
  927. if lapseto == 1 {
  928. d := XTReadDB().Table("xt_patients as s")
  929. fmt.Println("d", d)
  930. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value<> ''")
  931. table := XTReadDB().Table("xt_inspection_reference as r")
  932. q := XTReadDB().Table("xt_quality_control_standard as r")
  933. fmt.Println("q", q)
  934. fmt.Println(table)
  935. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  936. "SELECT " +
  937. "CASE " +
  938. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第一季度'" +
  939. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第二季度'" +
  940. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第三季度'" +
  941. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value+0>=r.min_range+0 and x.inspect_value +0 <= r.large_range+0 THEN '第四季度'" +
  942. " ELSE '其他'" +
  943. "END AS nnd FROM xt_inspection as x left join xt_quality_control_standard as r on (r.inspection_minor = x.item_id AND r.user_org_id > 0) OR ( x.item_id = r.inspection_minor AND r.user_org_id = 0) left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value + 0 >= r.min_range + 0 AND x.inspect_value + 0 <= r.large_range+0)"
  944. countParams := make([]interface{}, 0)
  945. countParams = append(countParams, firststart)
  946. countParams = append(countParams, firstend)
  947. countParams = append(countParams, sencondstart)
  948. countParams = append(countParams, sencondend)
  949. countParams = append(countParams, threestart)
  950. countParams = append(countParams, threeend)
  951. countParams = append(countParams, fourstart)
  952. countParams = append(countParams, fourend)
  953. if orgid > 0 {
  954. db = db.Where("x.org_id=?", orgid)
  955. countSQL += " AND x.org_id=?"
  956. countParams = append(countParams, orgid)
  957. }
  958. if orgid > 0 {
  959. db = db.Where("r.user_org_id=?", orgid)
  960. countSQL += " AND r.user_org_id=?"
  961. countParams = append(countParams, orgid)
  962. }
  963. if modetype > 0 {
  964. db = db.Where("x.item_id = ?", modetype)
  965. countSQL += " AND x.item_id=?"
  966. countParams = append(countParams, modetype)
  967. }
  968. if startime > 0 {
  969. db = db.Where("x.inspect_date >= ? ", startime)
  970. countSQL += " AND x.inspect_date >=?"
  971. countParams = append(countParams, startime)
  972. }
  973. if endtime > 0 {
  974. db = db.Where("x.inspect_date <= ?", endtime)
  975. countSQL += " AND x.inspect_date <=?"
  976. countParams = append(countParams, endtime)
  977. }
  978. countSQL += ")a GROUP BY nnd"
  979. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  980. }
  981. return
  982. }
  983. func GetProjectStandListOne(orgid int64, lapseto int64, modetype int64, startime int64, endtime int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCount, err error) {
  984. if lapseto == 0 {
  985. d := XTReadDB().Table("xt_patients as s")
  986. fmt.Println("d", d)
  987. db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_type = 2")
  988. table := XTReadDB().Table("xt_inspection_reference as r")
  989. q := XTReadDB().Table("xt_quality_control_standard as r")
  990. fmt.Println("q", q)
  991. fmt.Println(table)
  992. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  993. "SELECT " +
  994. "CASE " +
  995. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第一季度'" +
  996. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第二季度'" +
  997. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第三季度'" +
  998. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第四季度'" +
  999. " ELSE '其他'" +
  1000. "END AS nnd FROM xt_inspection as x left join xt_quality_control_standard as r on (r.inspection_minor = x.item_id AND r.user_org_id > 0) OR ( x.item_id = r.inspection_minor AND r.user_org_id = 0) left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value = r.range_value)"
  1001. countParams := make([]interface{}, 0)
  1002. countParams = append(countParams, firststart)
  1003. countParams = append(countParams, firstend)
  1004. countParams = append(countParams, sencondstart)
  1005. countParams = append(countParams, sencondend)
  1006. countParams = append(countParams, threestart)
  1007. countParams = append(countParams, threeend)
  1008. countParams = append(countParams, fourstart)
  1009. countParams = append(countParams, fourend)
  1010. if orgid > 0 {
  1011. db = db.Where("x.org_id=?", orgid)
  1012. countSQL += " AND x.org_id=?"
  1013. countParams = append(countParams, orgid)
  1014. }
  1015. if orgid > 0 {
  1016. db = db.Where("r.user_org_id=?", orgid)
  1017. countSQL += " AND r.user_org_id=?"
  1018. countParams = append(countParams, orgid)
  1019. }
  1020. if modetype > 0 {
  1021. db = db.Where("x.item_id = ?", modetype)
  1022. countSQL += " AND x.item_id=?"
  1023. countParams = append(countParams, modetype)
  1024. }
  1025. if startime > 0 {
  1026. db = db.Where("x.inspect_date >= ? ", startime)
  1027. countSQL += " AND x.inspect_date >=?"
  1028. countParams = append(countParams, startime)
  1029. }
  1030. if endtime > 0 {
  1031. db = db.Where("x.inspect_date <= ?", endtime)
  1032. countSQL += " AND x.inspect_date <=?"
  1033. countParams = append(countParams, endtime)
  1034. }
  1035. countSQL += ")a GROUP BY nnd"
  1036. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1037. }
  1038. if lapseto == 1 {
  1039. d := XTReadDB().Table("xt_patients as s")
  1040. fmt.Println("d", d)
  1041. db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_type = 2")
  1042. table := XTReadDB().Table("xt_inspection_reference as r")
  1043. q := XTReadDB().Table("xt_quality_control_standard as r")
  1044. fmt.Println("q", q)
  1045. fmt.Println(table)
  1046. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1047. "SELECT " +
  1048. "CASE " +
  1049. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第一季度'" +
  1050. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第二季度'" +
  1051. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第三季度'" +
  1052. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第四季度'" +
  1053. " ELSE '其他'" +
  1054. "END AS nnd FROM xt_inspection as x left join xt_quality_control_standard as r on (r.inspection_minor = x.item_id AND r.user_org_id > 0) OR ( x.item_id = r.inspection_minor AND r.user_org_id = 0) left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value = r.range_value)"
  1055. countParams := make([]interface{}, 0)
  1056. countParams = append(countParams, firststart)
  1057. countParams = append(countParams, firstend)
  1058. countParams = append(countParams, sencondstart)
  1059. countParams = append(countParams, sencondend)
  1060. countParams = append(countParams, threestart)
  1061. countParams = append(countParams, threeend)
  1062. countParams = append(countParams, fourstart)
  1063. countParams = append(countParams, fourend)
  1064. if orgid > 0 {
  1065. db = db.Where("x.org_id=?", orgid)
  1066. countSQL += " AND x.org_id=?"
  1067. countParams = append(countParams, orgid)
  1068. }
  1069. if orgid > 0 {
  1070. db = db.Where("r.user_org_id=?", orgid)
  1071. countSQL += " AND r.user_org_id=?"
  1072. countParams = append(countParams, orgid)
  1073. }
  1074. if modetype > 0 {
  1075. db = db.Where("x.item_id = ?", modetype)
  1076. countSQL += " AND x.item_id=?"
  1077. countParams = append(countParams, modetype)
  1078. }
  1079. if startime > 0 {
  1080. db = db.Where("x.inspect_date >= ? ", startime)
  1081. countSQL += " AND x.inspect_date >=?"
  1082. countParams = append(countParams, startime)
  1083. }
  1084. if endtime > 0 {
  1085. db = db.Where("x.inspect_date <= ?", endtime)
  1086. countSQL += " AND x.inspect_date <=?"
  1087. countParams = append(countParams, endtime)
  1088. }
  1089. countSQL += ")a GROUP BY nnd"
  1090. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1091. }
  1092. return
  1093. }
  1094. func GetMonthProjectList(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCountOne, err error) {
  1095. if lapseto == 0 {
  1096. d := XTReadDB().Table("xt_patients as s")
  1097. fmt.Println("d", d)
  1098. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0 and x.inspect_type = 1")
  1099. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1100. "SELECT " +
  1101. "CASE " +
  1102. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
  1103. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
  1104. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
  1105. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
  1106. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
  1107. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
  1108. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
  1109. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1110. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1111. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1112. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1113. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1114. " ELSE '其他'" +
  1115. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2)"
  1116. countParams := make([]interface{}, 0)
  1117. countParams = append(countParams, januaryStartStrUnix)
  1118. countParams = append(countParams, januaryEndStrUnix)
  1119. countParams = append(countParams, febStartStrStrUnix)
  1120. countParams = append(countParams, febEndStrUnix)
  1121. countParams = append(countParams, marchStartStrUnix)
  1122. countParams = append(countParams, marchEndStrUnix)
  1123. countParams = append(countParams, aprStartStrUnix)
  1124. countParams = append(countParams, aprEndStrsUnix)
  1125. countParams = append(countParams, mayStartStrUnix)
  1126. countParams = append(countParams, mayEndStrsUnix)
  1127. countParams = append(countParams, junStartStrUnix)
  1128. countParams = append(countParams, junEndStrsUnix)
  1129. countParams = append(countParams, julStartStrUnix)
  1130. countParams = append(countParams, julEndStrsUnix)
  1131. countParams = append(countParams, augStartStrUnix)
  1132. countParams = append(countParams, augEndStrsUnix)
  1133. countParams = append(countParams, sepStartStrUnix)
  1134. countParams = append(countParams, sepEndStrsUnix)
  1135. countParams = append(countParams, octStartStrUnix)
  1136. countParams = append(countParams, octEndStrsUnix)
  1137. countParams = append(countParams, novStartStrUnix)
  1138. countParams = append(countParams, novEndStrsUnix)
  1139. countParams = append(countParams, decStartStrUnix)
  1140. countParams = append(countParams, decEndStrsUnix)
  1141. if orgid > 0 {
  1142. db = db.Where("x.org_id=?", orgid)
  1143. countSQL += " AND x.org_id=?"
  1144. countParams = append(countParams, orgid)
  1145. }
  1146. if modetype > 0 {
  1147. db = db.Where("x.item_id = ?", modetype)
  1148. countSQL += " AND x.item_id=?"
  1149. countParams = append(countParams, modetype)
  1150. }
  1151. if januaryStartStrUnix > 0 {
  1152. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1153. countSQL += " AND x.inspect_date >=?"
  1154. countParams = append(countParams, januaryStartStrUnix)
  1155. }
  1156. if decEndStrsUnix > 0 {
  1157. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1158. countSQL += " AND x.inspect_date <=?"
  1159. countParams = append(countParams, decEndStrsUnix)
  1160. }
  1161. countSQL += ")a GROUP BY nnd"
  1162. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1163. }
  1164. if lapseto == 1 {
  1165. d := XTReadDB().Table("xt_patients as s")
  1166. fmt.Println("d", d)
  1167. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0 and x.inspect_type = 1 ")
  1168. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1169. "SELECT " +
  1170. "CASE " +
  1171. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
  1172. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
  1173. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
  1174. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
  1175. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
  1176. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
  1177. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
  1178. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1179. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1180. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1181. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1182. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1183. " ELSE '其他'" +
  1184. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1)"
  1185. countParams := make([]interface{}, 0)
  1186. countParams = append(countParams, januaryStartStrUnix)
  1187. countParams = append(countParams, januaryEndStrUnix)
  1188. countParams = append(countParams, febStartStrStrUnix)
  1189. countParams = append(countParams, febEndStrUnix)
  1190. countParams = append(countParams, marchStartStrUnix)
  1191. countParams = append(countParams, marchEndStrUnix)
  1192. countParams = append(countParams, aprStartStrUnix)
  1193. countParams = append(countParams, aprEndStrsUnix)
  1194. countParams = append(countParams, mayStartStrUnix)
  1195. countParams = append(countParams, mayEndStrsUnix)
  1196. countParams = append(countParams, junStartStrUnix)
  1197. countParams = append(countParams, junEndStrsUnix)
  1198. countParams = append(countParams, julStartStrUnix)
  1199. countParams = append(countParams, julEndStrsUnix)
  1200. countParams = append(countParams, augStartStrUnix)
  1201. countParams = append(countParams, augEndStrsUnix)
  1202. countParams = append(countParams, sepStartStrUnix)
  1203. countParams = append(countParams, sepEndStrsUnix)
  1204. countParams = append(countParams, octStartStrUnix)
  1205. countParams = append(countParams, octEndStrsUnix)
  1206. countParams = append(countParams, novStartStrUnix)
  1207. countParams = append(countParams, novEndStrsUnix)
  1208. countParams = append(countParams, decStartStrUnix)
  1209. countParams = append(countParams, decEndStrsUnix)
  1210. if orgid > 0 {
  1211. db = db.Where("x.org_id=?", orgid)
  1212. countSQL += " AND x.org_id=?"
  1213. countParams = append(countParams, orgid)
  1214. }
  1215. if modetype > 0 {
  1216. db = db.Where("x.item_id = ?", modetype)
  1217. countSQL += " AND x.item_id=?"
  1218. countParams = append(countParams, modetype)
  1219. }
  1220. if januaryStartStrUnix > 0 {
  1221. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1222. countSQL += " AND x.inspect_date >=?"
  1223. countParams = append(countParams, januaryStartStrUnix)
  1224. }
  1225. if decEndStrsUnix > 0 {
  1226. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1227. countSQL += " AND x.inspect_date <=?"
  1228. countParams = append(countParams, decEndStrsUnix)
  1229. }
  1230. countSQL += ")a GROUP BY nnd"
  1231. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1232. }
  1233. if lapseto == 2 {
  1234. d := XTReadDB().Table("xt_patients as s")
  1235. fmt.Println("d", d)
  1236. db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_value <> 0 and x.inspect_type = 1")
  1237. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1238. "SELECT " +
  1239. "CASE " +
  1240. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
  1241. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
  1242. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
  1243. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
  1244. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
  1245. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
  1246. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
  1247. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1248. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1249. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1250. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1251. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1252. " ELSE '其他'" +
  1253. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2)"
  1254. countParams := make([]interface{}, 0)
  1255. countParams = append(countParams, januaryStartStrUnix)
  1256. countParams = append(countParams, januaryEndStrUnix)
  1257. countParams = append(countParams, febStartStrStrUnix)
  1258. countParams = append(countParams, febEndStrUnix)
  1259. countParams = append(countParams, marchStartStrUnix)
  1260. countParams = append(countParams, marchEndStrUnix)
  1261. countParams = append(countParams, aprStartStrUnix)
  1262. countParams = append(countParams, aprEndStrsUnix)
  1263. countParams = append(countParams, mayStartStrUnix)
  1264. countParams = append(countParams, mayEndStrsUnix)
  1265. countParams = append(countParams, junStartStrUnix)
  1266. countParams = append(countParams, junEndStrsUnix)
  1267. countParams = append(countParams, julStartStrUnix)
  1268. countParams = append(countParams, julEndStrsUnix)
  1269. countParams = append(countParams, augStartStrUnix)
  1270. countParams = append(countParams, augEndStrsUnix)
  1271. countParams = append(countParams, sepStartStrUnix)
  1272. countParams = append(countParams, sepEndStrsUnix)
  1273. countParams = append(countParams, octStartStrUnix)
  1274. countParams = append(countParams, octEndStrsUnix)
  1275. countParams = append(countParams, novStartStrUnix)
  1276. countParams = append(countParams, novEndStrsUnix)
  1277. countParams = append(countParams, decStartStrUnix)
  1278. countParams = append(countParams, decEndStrsUnix)
  1279. if orgid > 0 {
  1280. db = db.Where("x.org_id=?", orgid)
  1281. countSQL += " AND x.org_id=?"
  1282. countParams = append(countParams, orgid)
  1283. }
  1284. if modetype > 0 {
  1285. db = db.Where("x.item_id = ?", modetype)
  1286. countSQL += " AND x.item_id=?"
  1287. countParams = append(countParams, modetype)
  1288. }
  1289. if januaryStartStrUnix > 0 {
  1290. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1291. countSQL += " AND x.inspect_date >=?"
  1292. countParams = append(countParams, januaryStartStrUnix)
  1293. }
  1294. if decEndStrsUnix > 0 {
  1295. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1296. countSQL += " AND x.inspect_date <=?"
  1297. countParams = append(countParams, decEndStrsUnix)
  1298. }
  1299. countSQL += ")a GROUP BY nnd"
  1300. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1301. }
  1302. return
  1303. }
  1304. func GetMonthProjectListOne(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCountOne, err error) {
  1305. if lapseto == 0 {
  1306. d := XTReadDB().Table("xt_patients as s")
  1307. fmt.Println("d", d)
  1308. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1309. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1310. "SELECT " +
  1311. "CASE " +
  1312. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
  1313. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
  1314. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
  1315. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
  1316. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
  1317. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
  1318. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
  1319. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1320. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1321. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1322. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1323. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1324. " ELSE '其他'" +
  1325. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2)"
  1326. countParams := make([]interface{}, 0)
  1327. countParams = append(countParams, januaryStartStrUnix)
  1328. countParams = append(countParams, januaryEndStrUnix)
  1329. countParams = append(countParams, febStartStrStrUnix)
  1330. countParams = append(countParams, febEndStrUnix)
  1331. countParams = append(countParams, marchStartStrUnix)
  1332. countParams = append(countParams, marchEndStrUnix)
  1333. countParams = append(countParams, aprStartStrUnix)
  1334. countParams = append(countParams, aprEndStrsUnix)
  1335. countParams = append(countParams, mayStartStrUnix)
  1336. countParams = append(countParams, mayEndStrsUnix)
  1337. countParams = append(countParams, junStartStrUnix)
  1338. countParams = append(countParams, junEndStrsUnix)
  1339. countParams = append(countParams, julStartStrUnix)
  1340. countParams = append(countParams, julEndStrsUnix)
  1341. countParams = append(countParams, augStartStrUnix)
  1342. countParams = append(countParams, augEndStrsUnix)
  1343. countParams = append(countParams, sepStartStrUnix)
  1344. countParams = append(countParams, sepEndStrsUnix)
  1345. countParams = append(countParams, octStartStrUnix)
  1346. countParams = append(countParams, octEndStrsUnix)
  1347. countParams = append(countParams, novStartStrUnix)
  1348. countParams = append(countParams, novEndStrsUnix)
  1349. countParams = append(countParams, decStartStrUnix)
  1350. countParams = append(countParams, decEndStrsUnix)
  1351. if orgid > 0 {
  1352. db = db.Where("x.org_id=?", orgid)
  1353. countSQL += " AND x.org_id=?"
  1354. countParams = append(countParams, orgid)
  1355. }
  1356. if modetype > 0 {
  1357. db = db.Where("x.item_id = ?", modetype)
  1358. countSQL += " AND x.item_id=?"
  1359. countParams = append(countParams, modetype)
  1360. }
  1361. if januaryStartStrUnix > 0 {
  1362. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1363. countSQL += " AND x.inspect_date >=?"
  1364. countParams = append(countParams, januaryStartStrUnix)
  1365. }
  1366. if decEndStrsUnix > 0 {
  1367. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1368. countSQL += " AND x.inspect_date <=?"
  1369. countParams = append(countParams, decEndStrsUnix)
  1370. }
  1371. countSQL += ")a GROUP BY nnd"
  1372. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1373. }
  1374. if lapseto == 1 {
  1375. d := XTReadDB().Table("xt_patients as s")
  1376. fmt.Println("d", d)
  1377. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and and x.inspect_type = 2")
  1378. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1379. "SELECT " +
  1380. "CASE " +
  1381. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
  1382. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
  1383. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
  1384. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
  1385. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
  1386. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
  1387. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
  1388. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1389. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1390. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1391. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1392. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1393. " ELSE '其他'" +
  1394. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1)"
  1395. countParams := make([]interface{}, 0)
  1396. countParams = append(countParams, januaryStartStrUnix)
  1397. countParams = append(countParams, januaryEndStrUnix)
  1398. countParams = append(countParams, febStartStrStrUnix)
  1399. countParams = append(countParams, febEndStrUnix)
  1400. countParams = append(countParams, marchStartStrUnix)
  1401. countParams = append(countParams, marchEndStrUnix)
  1402. countParams = append(countParams, aprStartStrUnix)
  1403. countParams = append(countParams, aprEndStrsUnix)
  1404. countParams = append(countParams, mayStartStrUnix)
  1405. countParams = append(countParams, mayEndStrsUnix)
  1406. countParams = append(countParams, junStartStrUnix)
  1407. countParams = append(countParams, junEndStrsUnix)
  1408. countParams = append(countParams, julStartStrUnix)
  1409. countParams = append(countParams, julEndStrsUnix)
  1410. countParams = append(countParams, augStartStrUnix)
  1411. countParams = append(countParams, augEndStrsUnix)
  1412. countParams = append(countParams, sepStartStrUnix)
  1413. countParams = append(countParams, sepEndStrsUnix)
  1414. countParams = append(countParams, octStartStrUnix)
  1415. countParams = append(countParams, octEndStrsUnix)
  1416. countParams = append(countParams, novStartStrUnix)
  1417. countParams = append(countParams, novEndStrsUnix)
  1418. countParams = append(countParams, decStartStrUnix)
  1419. countParams = append(countParams, decEndStrsUnix)
  1420. if orgid > 0 {
  1421. db = db.Where("x.org_id=?", orgid)
  1422. countSQL += " AND x.org_id=?"
  1423. countParams = append(countParams, orgid)
  1424. }
  1425. if modetype > 0 {
  1426. db = db.Where("x.item_id = ?", modetype)
  1427. countSQL += " AND x.item_id=?"
  1428. countParams = append(countParams, modetype)
  1429. }
  1430. if januaryStartStrUnix > 0 {
  1431. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1432. countSQL += " AND x.inspect_date >=?"
  1433. countParams = append(countParams, januaryStartStrUnix)
  1434. }
  1435. if decEndStrsUnix > 0 {
  1436. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1437. countSQL += " AND x.inspect_date <=?"
  1438. countParams = append(countParams, decEndStrsUnix)
  1439. }
  1440. countSQL += ")a GROUP BY nnd"
  1441. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1442. }
  1443. if lapseto == 2 {
  1444. d := XTReadDB().Table("xt_patients as s")
  1445. fmt.Println("d", d)
  1446. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1447. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1448. "SELECT " +
  1449. "CASE " +
  1450. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
  1451. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
  1452. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
  1453. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
  1454. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
  1455. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
  1456. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
  1457. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1458. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1459. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1460. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1461. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1462. " ELSE '其他'" +
  1463. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2)"
  1464. countParams := make([]interface{}, 0)
  1465. countParams = append(countParams, januaryStartStrUnix)
  1466. countParams = append(countParams, januaryEndStrUnix)
  1467. countParams = append(countParams, febStartStrStrUnix)
  1468. countParams = append(countParams, febEndStrUnix)
  1469. countParams = append(countParams, marchStartStrUnix)
  1470. countParams = append(countParams, marchEndStrUnix)
  1471. countParams = append(countParams, aprStartStrUnix)
  1472. countParams = append(countParams, aprEndStrsUnix)
  1473. countParams = append(countParams, mayStartStrUnix)
  1474. countParams = append(countParams, mayEndStrsUnix)
  1475. countParams = append(countParams, junStartStrUnix)
  1476. countParams = append(countParams, junEndStrsUnix)
  1477. countParams = append(countParams, julStartStrUnix)
  1478. countParams = append(countParams, julEndStrsUnix)
  1479. countParams = append(countParams, augStartStrUnix)
  1480. countParams = append(countParams, augEndStrsUnix)
  1481. countParams = append(countParams, sepStartStrUnix)
  1482. countParams = append(countParams, sepEndStrsUnix)
  1483. countParams = append(countParams, octStartStrUnix)
  1484. countParams = append(countParams, octEndStrsUnix)
  1485. countParams = append(countParams, novStartStrUnix)
  1486. countParams = append(countParams, novEndStrsUnix)
  1487. countParams = append(countParams, decStartStrUnix)
  1488. countParams = append(countParams, decEndStrsUnix)
  1489. if orgid > 0 {
  1490. db = db.Where("x.org_id=?", orgid)
  1491. countSQL += " AND x.org_id=?"
  1492. countParams = append(countParams, orgid)
  1493. }
  1494. if modetype > 0 {
  1495. db = db.Where("x.item_id = ?", modetype)
  1496. countSQL += " AND x.item_id=?"
  1497. countParams = append(countParams, modetype)
  1498. }
  1499. if januaryStartStrUnix > 0 {
  1500. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1501. countSQL += " AND x.inspect_date >=?"
  1502. countParams = append(countParams, januaryStartStrUnix)
  1503. }
  1504. if decEndStrsUnix > 0 {
  1505. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1506. countSQL += " AND x.inspect_date <=?"
  1507. countParams = append(countParams, decEndStrsUnix)
  1508. }
  1509. countSQL += ")a GROUP BY nnd"
  1510. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1511. }
  1512. return
  1513. }
  1514. func GetProjectListOne(orgid int64, lapseto int64, modetype int64, startime int64, endtime int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCountOne, err error) {
  1515. if lapseto == 0 {
  1516. d := XTReadDB().Table("xt_patients as s")
  1517. fmt.Println("d", d)
  1518. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1519. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1520. "SELECT " +
  1521. "CASE " +
  1522. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  1523. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  1524. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  1525. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  1526. " ELSE '其他'" +
  1527. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2)"
  1528. countParams := make([]interface{}, 0)
  1529. countParams = append(countParams, firststart)
  1530. countParams = append(countParams, firstend)
  1531. countParams = append(countParams, sencondstart)
  1532. countParams = append(countParams, sencondend)
  1533. countParams = append(countParams, threestart)
  1534. countParams = append(countParams, threeend)
  1535. countParams = append(countParams, fourstart)
  1536. countParams = append(countParams, fourend)
  1537. if orgid > 0 {
  1538. db = db.Where("x.org_id=?", orgid)
  1539. countSQL += " AND x.org_id=?"
  1540. countParams = append(countParams, orgid)
  1541. }
  1542. if modetype > 0 {
  1543. db = db.Where("x.item_id = ?", modetype)
  1544. countSQL += " AND x.item_id=?"
  1545. countParams = append(countParams, modetype)
  1546. }
  1547. if startime > 0 {
  1548. db = db.Where("x.inspect_date >= ?", startime)
  1549. countSQL += " AND x.inspect_date >=?"
  1550. countParams = append(countParams, startime)
  1551. }
  1552. if endtime > 0 {
  1553. db = db.Where("x.inspect_date <= ?", endtime)
  1554. countSQL += " AND x.inspect_date <=?"
  1555. countParams = append(countParams, endtime)
  1556. }
  1557. countSQL += ")a GROUP BY nnd"
  1558. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1559. }
  1560. if lapseto == 1 {
  1561. d := XTReadDB().Table("xt_patients as s")
  1562. fmt.Println("d", d)
  1563. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1564. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1565. "SELECT " +
  1566. "CASE " +
  1567. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  1568. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  1569. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  1570. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  1571. " ELSE '其他'" +
  1572. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2)"
  1573. countParams := make([]interface{}, 0)
  1574. countParams = append(countParams, firststart)
  1575. countParams = append(countParams, firstend)
  1576. countParams = append(countParams, sencondstart)
  1577. countParams = append(countParams, sencondend)
  1578. countParams = append(countParams, threestart)
  1579. countParams = append(countParams, threeend)
  1580. countParams = append(countParams, fourstart)
  1581. countParams = append(countParams, fourend)
  1582. if orgid > 0 {
  1583. db = db.Where("x.org_id=?", orgid)
  1584. countSQL += " AND x.org_id=?"
  1585. countParams = append(countParams, orgid)
  1586. }
  1587. if modetype > 0 {
  1588. db = db.Where("x.item_id = ?", modetype)
  1589. countSQL += " AND x.item_id=?"
  1590. countParams = append(countParams, modetype)
  1591. }
  1592. if startime > 0 {
  1593. db = db.Where("x.inspect_date >= ?", startime)
  1594. countSQL += " AND x.inspect_date >=?"
  1595. countParams = append(countParams, startime)
  1596. }
  1597. if endtime > 0 {
  1598. db = db.Where("x.inspect_date <= ?", endtime)
  1599. countSQL += " AND x.inspect_date <=?"
  1600. countParams = append(countParams, endtime)
  1601. }
  1602. countSQL += ")a GROUP BY nnd"
  1603. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1604. }
  1605. if lapseto == 2 {
  1606. d := XTReadDB().Table("xt_patients as s")
  1607. fmt.Println("d", d)
  1608. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  1609. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1610. "SELECT " +
  1611. "CASE " +
  1612. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  1613. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  1614. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  1615. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  1616. " ELSE '其他'" +
  1617. "END AS nnd FROM xt_inspection as x left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2)"
  1618. countParams := make([]interface{}, 0)
  1619. countParams = append(countParams, firststart)
  1620. countParams = append(countParams, firstend)
  1621. countParams = append(countParams, sencondstart)
  1622. countParams = append(countParams, sencondend)
  1623. countParams = append(countParams, threestart)
  1624. countParams = append(countParams, threeend)
  1625. countParams = append(countParams, fourstart)
  1626. countParams = append(countParams, fourend)
  1627. if orgid > 0 {
  1628. db = db.Where("x.org_id=?", orgid)
  1629. countSQL += " AND x.org_id=?"
  1630. countParams = append(countParams, orgid)
  1631. }
  1632. if modetype > 0 {
  1633. db = db.Where("x.item_id = ?", modetype)
  1634. countSQL += " AND x.item_id=?"
  1635. countParams = append(countParams, modetype)
  1636. }
  1637. if startime > 0 {
  1638. db = db.Where("x.inspect_date >= ?", startime)
  1639. countSQL += " AND x.inspect_date >=?"
  1640. countParams = append(countParams, startime)
  1641. }
  1642. if endtime > 0 {
  1643. db = db.Where("x.inspect_date <= ?", endtime)
  1644. countSQL += " AND x.inspect_date <=?"
  1645. countParams = append(countParams, endtime)
  1646. }
  1647. countSQL += ")a GROUP BY nnd"
  1648. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1649. }
  1650. return
  1651. }
  1652. func GetMonthProjectListTwo(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCount, err error) {
  1653. if lapseto == 0 {
  1654. d := XTReadDB().Table("xt_patients as s")
  1655. fmt.Println("d", d)
  1656. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
  1657. table := XTReadDB().Table("xt_inspection_reference as r")
  1658. fmt.Println(table)
  1659. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1660. "SELECT " +
  1661. "CASE " +
  1662. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '一月'" +
  1663. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '二月'" +
  1664. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '三月'" +
  1665. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '四月'" +
  1666. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '五月'" +
  1667. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '六月'" +
  1668. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '七月'" +
  1669. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '八月'" +
  1670. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '九月'" +
  1671. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十月'" +
  1672. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十一月'" +
  1673. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十二月'" +
  1674. " ELSE '其他'" +
  1675. "END AS nnd FROM xt_inspection as x left join xt_inspection_reference as r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
  1676. countParams := make([]interface{}, 0)
  1677. countParams = append(countParams, januaryStartStrUnix)
  1678. countParams = append(countParams, januaryEndStrUnix)
  1679. countParams = append(countParams, febStartStrStrUnix)
  1680. countParams = append(countParams, febEndStrUnix)
  1681. countParams = append(countParams, marchStartStrUnix)
  1682. countParams = append(countParams, marchEndStrUnix)
  1683. countParams = append(countParams, aprStartStrUnix)
  1684. countParams = append(countParams, aprEndStrsUnix)
  1685. countParams = append(countParams, mayStartStrUnix)
  1686. countParams = append(countParams, mayEndStrsUnix)
  1687. countParams = append(countParams, junStartStrUnix)
  1688. countParams = append(countParams, junEndStrsUnix)
  1689. countParams = append(countParams, julStartStrUnix)
  1690. countParams = append(countParams, julEndStrsUnix)
  1691. countParams = append(countParams, augStartStrUnix)
  1692. countParams = append(countParams, augEndStrsUnix)
  1693. countParams = append(countParams, sepStartStrUnix)
  1694. countParams = append(countParams, sepEndStrsUnix)
  1695. countParams = append(countParams, octStartStrUnix)
  1696. countParams = append(countParams, octEndStrsUnix)
  1697. countParams = append(countParams, novStartStrUnix)
  1698. countParams = append(countParams, novEndStrsUnix)
  1699. countParams = append(countParams, decStartStrUnix)
  1700. countParams = append(countParams, decEndStrsUnix)
  1701. if orgid > 0 {
  1702. db = db.Where("x.org_id=?", orgid)
  1703. countSQL += " AND x.org_id=?"
  1704. countParams = append(countParams, orgid)
  1705. }
  1706. if modetype > 0 {
  1707. db = db.Where("x.item_id = ?", modetype)
  1708. countSQL += " AND x.item_id=?"
  1709. countParams = append(countParams, modetype)
  1710. }
  1711. if januaryStartStrUnix > 0 {
  1712. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1713. countSQL += " AND x.inspect_date >=?"
  1714. countParams = append(countParams, januaryStartStrUnix)
  1715. }
  1716. if decEndStrsUnix > 0 {
  1717. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1718. countSQL += " AND x.inspect_date <=?"
  1719. countParams = append(countParams, decEndStrsUnix)
  1720. }
  1721. countSQL += ")a GROUP BY nnd"
  1722. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1723. }
  1724. if lapseto == 1 {
  1725. d := XTReadDB().Table("xt_patients as s")
  1726. fmt.Println("d", d)
  1727. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
  1728. table := XTReadDB().Table("xt_inspection_reference as r")
  1729. fmt.Println(table)
  1730. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1731. "SELECT " +
  1732. "CASE " +
  1733. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '一月'" +
  1734. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '二月'" +
  1735. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '三月'" +
  1736. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '四月'" +
  1737. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '五月'" +
  1738. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '六月'" +
  1739. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '七月'" +
  1740. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '八月'" +
  1741. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '九月'" +
  1742. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十月'" +
  1743. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十一月'" +
  1744. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十二月'" +
  1745. " ELSE '其他'" +
  1746. "END AS nnd FROM xt_inspection as x left join xt_inspection_reference as r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
  1747. countParams := make([]interface{}, 0)
  1748. countParams = append(countParams, januaryStartStrUnix)
  1749. countParams = append(countParams, januaryEndStrUnix)
  1750. countParams = append(countParams, febStartStrStrUnix)
  1751. countParams = append(countParams, febEndStrUnix)
  1752. countParams = append(countParams, marchStartStrUnix)
  1753. countParams = append(countParams, marchEndStrUnix)
  1754. countParams = append(countParams, aprStartStrUnix)
  1755. countParams = append(countParams, aprEndStrsUnix)
  1756. countParams = append(countParams, mayStartStrUnix)
  1757. countParams = append(countParams, mayEndStrsUnix)
  1758. countParams = append(countParams, junStartStrUnix)
  1759. countParams = append(countParams, junEndStrsUnix)
  1760. countParams = append(countParams, julStartStrUnix)
  1761. countParams = append(countParams, julEndStrsUnix)
  1762. countParams = append(countParams, augStartStrUnix)
  1763. countParams = append(countParams, augEndStrsUnix)
  1764. countParams = append(countParams, sepStartStrUnix)
  1765. countParams = append(countParams, sepEndStrsUnix)
  1766. countParams = append(countParams, octStartStrUnix)
  1767. countParams = append(countParams, octEndStrsUnix)
  1768. countParams = append(countParams, novStartStrUnix)
  1769. countParams = append(countParams, novEndStrsUnix)
  1770. countParams = append(countParams, decStartStrUnix)
  1771. countParams = append(countParams, decEndStrsUnix)
  1772. if orgid > 0 {
  1773. db = db.Where("x.org_id=?", orgid)
  1774. countSQL += " AND x.org_id=?"
  1775. countParams = append(countParams, orgid)
  1776. }
  1777. if modetype > 0 {
  1778. db = db.Where("x.item_id = ?", modetype)
  1779. countSQL += " AND x.item_id=?"
  1780. countParams = append(countParams, modetype)
  1781. }
  1782. if januaryStartStrUnix > 0 {
  1783. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1784. countSQL += " AND x.inspect_date >=?"
  1785. countParams = append(countParams, januaryStartStrUnix)
  1786. }
  1787. if decEndStrsUnix > 0 {
  1788. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1789. countSQL += " AND x.inspect_date <=?"
  1790. countParams = append(countParams, decEndStrsUnix)
  1791. }
  1792. countSQL += ")a GROUP BY nnd"
  1793. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1794. }
  1795. if lapseto == 2 {
  1796. d := XTReadDB().Table("xt_patients as s")
  1797. fmt.Println("d", d)
  1798. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
  1799. table := XTReadDB().Table("xt_inspection_reference as r")
  1800. fmt.Println(table)
  1801. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1802. "SELECT " +
  1803. "CASE " +
  1804. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '一月'" +
  1805. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '二月'" +
  1806. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '三月'" +
  1807. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '四月'" +
  1808. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '五月'" +
  1809. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '六月'" +
  1810. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '七月'" +
  1811. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '八月'" +
  1812. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '九月'" +
  1813. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十月'" +
  1814. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十一月'" +
  1815. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十二月'" +
  1816. " ELSE '其他'" +
  1817. "END AS nnd FROM xt_inspection as x left join xt_inspection_reference as r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
  1818. countParams := make([]interface{}, 0)
  1819. countParams = append(countParams, januaryStartStrUnix)
  1820. countParams = append(countParams, januaryEndStrUnix)
  1821. countParams = append(countParams, febStartStrStrUnix)
  1822. countParams = append(countParams, febEndStrUnix)
  1823. countParams = append(countParams, marchStartStrUnix)
  1824. countParams = append(countParams, marchEndStrUnix)
  1825. countParams = append(countParams, aprStartStrUnix)
  1826. countParams = append(countParams, aprEndStrsUnix)
  1827. countParams = append(countParams, mayStartStrUnix)
  1828. countParams = append(countParams, mayEndStrsUnix)
  1829. countParams = append(countParams, junStartStrUnix)
  1830. countParams = append(countParams, junEndStrsUnix)
  1831. countParams = append(countParams, julStartStrUnix)
  1832. countParams = append(countParams, julEndStrsUnix)
  1833. countParams = append(countParams, augStartStrUnix)
  1834. countParams = append(countParams, augEndStrsUnix)
  1835. countParams = append(countParams, sepStartStrUnix)
  1836. countParams = append(countParams, sepEndStrsUnix)
  1837. countParams = append(countParams, octStartStrUnix)
  1838. countParams = append(countParams, octEndStrsUnix)
  1839. countParams = append(countParams, novStartStrUnix)
  1840. countParams = append(countParams, novEndStrsUnix)
  1841. countParams = append(countParams, decStartStrUnix)
  1842. countParams = append(countParams, decEndStrsUnix)
  1843. if orgid > 0 {
  1844. db = db.Where("x.org_id=?", orgid)
  1845. countSQL += " AND x.org_id=?"
  1846. countParams = append(countParams, orgid)
  1847. }
  1848. if modetype > 0 {
  1849. db = db.Where("x.item_id = ?", modetype)
  1850. countSQL += " AND x.item_id=?"
  1851. countParams = append(countParams, modetype)
  1852. }
  1853. if januaryStartStrUnix > 0 {
  1854. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1855. countSQL += " AND x.inspect_date >=?"
  1856. countParams = append(countParams, januaryStartStrUnix)
  1857. }
  1858. if decEndStrsUnix > 0 {
  1859. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1860. countSQL += " AND x.inspect_date <=?"
  1861. countParams = append(countParams, decEndStrsUnix)
  1862. }
  1863. countSQL += ")a GROUP BY nnd"
  1864. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1865. }
  1866. return
  1867. }
  1868. func GetMonthProjectListThree(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCount, err error) {
  1869. if lapseto == 0 {
  1870. d := XTReadDB().Table("xt_patients as s")
  1871. fmt.Println("d", d)
  1872. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1873. table := XTReadDB().Table("xt_quality_control_standard as r")
  1874. fmt.Println(table)
  1875. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1876. "SELECT " +
  1877. "CASE " +
  1878. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '一月'" +
  1879. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '二月'" +
  1880. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '三月'" +
  1881. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '四月'" +
  1882. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '五月'" +
  1883. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '六月'" +
  1884. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '七月'" +
  1885. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '八月'" +
  1886. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '九月'" +
  1887. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '十月'" +
  1888. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '十一月'" +
  1889. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value <> r.range_value THEN '十二月'" +
  1890. " ELSE '其他'" +
  1891. "END AS nnd FROM xt_inspection as x left join LEFT JOIN xt_quality_control_standard AS r ON r.inspection_minor = x.item_id left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1 or s.lapseto = 2) and (x.inspect_value <> r.range_value)"
  1892. countParams := make([]interface{}, 0)
  1893. countParams = append(countParams, januaryStartStrUnix)
  1894. countParams = append(countParams, januaryEndStrUnix)
  1895. countParams = append(countParams, febStartStrStrUnix)
  1896. countParams = append(countParams, febEndStrUnix)
  1897. countParams = append(countParams, marchStartStrUnix)
  1898. countParams = append(countParams, marchEndStrUnix)
  1899. countParams = append(countParams, aprStartStrUnix)
  1900. countParams = append(countParams, aprEndStrsUnix)
  1901. countParams = append(countParams, mayStartStrUnix)
  1902. countParams = append(countParams, mayEndStrsUnix)
  1903. countParams = append(countParams, junStartStrUnix)
  1904. countParams = append(countParams, junEndStrsUnix)
  1905. countParams = append(countParams, julStartStrUnix)
  1906. countParams = append(countParams, julEndStrsUnix)
  1907. countParams = append(countParams, augStartStrUnix)
  1908. countParams = append(countParams, augEndStrsUnix)
  1909. countParams = append(countParams, sepStartStrUnix)
  1910. countParams = append(countParams, sepEndStrsUnix)
  1911. countParams = append(countParams, octStartStrUnix)
  1912. countParams = append(countParams, octEndStrsUnix)
  1913. countParams = append(countParams, novStartStrUnix)
  1914. countParams = append(countParams, novEndStrsUnix)
  1915. countParams = append(countParams, decStartStrUnix)
  1916. countParams = append(countParams, decEndStrsUnix)
  1917. if orgid > 0 {
  1918. db = db.Where("x.org_id=?", orgid)
  1919. countSQL += " AND x.org_id=?"
  1920. countParams = append(countParams, orgid)
  1921. }
  1922. if modetype > 0 {
  1923. db = db.Where("x.item_id = ?", modetype)
  1924. countSQL += " AND x.item_id=?"
  1925. countParams = append(countParams, modetype)
  1926. }
  1927. if januaryStartStrUnix > 0 {
  1928. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1929. countSQL += " AND x.inspect_date >=?"
  1930. countParams = append(countParams, januaryStartStrUnix)
  1931. }
  1932. if decEndStrsUnix > 0 {
  1933. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1934. countSQL += " AND x.inspect_date <=?"
  1935. countParams = append(countParams, decEndStrsUnix)
  1936. }
  1937. countSQL += ")a GROUP BY nnd"
  1938. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1939. }
  1940. if lapseto == 1 {
  1941. d := XTReadDB().Table("xt_patients as s")
  1942. fmt.Println("d", d)
  1943. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
  1944. table := XTReadDB().Table("xt_inspection_reference as r")
  1945. fmt.Println(table)
  1946. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1947. "SELECT " +
  1948. "CASE " +
  1949. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '一月'" +
  1950. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '二月'" +
  1951. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '三月'" +
  1952. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '四月'" +
  1953. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '五月'" +
  1954. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '六月'" +
  1955. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '七月'" +
  1956. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '八月'" +
  1957. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '九月'" +
  1958. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十月'" +
  1959. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十一月'" +
  1960. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十二月'" +
  1961. " ELSE '其他'" +
  1962. "END AS nnd FROM xt_inspection as x left join xt_inspection_reference as r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 1) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
  1963. countParams := make([]interface{}, 0)
  1964. countParams = append(countParams, januaryStartStrUnix)
  1965. countParams = append(countParams, januaryEndStrUnix)
  1966. countParams = append(countParams, febStartStrStrUnix)
  1967. countParams = append(countParams, febEndStrUnix)
  1968. countParams = append(countParams, marchStartStrUnix)
  1969. countParams = append(countParams, marchEndStrUnix)
  1970. countParams = append(countParams, aprStartStrUnix)
  1971. countParams = append(countParams, aprEndStrsUnix)
  1972. countParams = append(countParams, mayStartStrUnix)
  1973. countParams = append(countParams, mayEndStrsUnix)
  1974. countParams = append(countParams, junStartStrUnix)
  1975. countParams = append(countParams, junEndStrsUnix)
  1976. countParams = append(countParams, julStartStrUnix)
  1977. countParams = append(countParams, julEndStrsUnix)
  1978. countParams = append(countParams, augStartStrUnix)
  1979. countParams = append(countParams, augEndStrsUnix)
  1980. countParams = append(countParams, sepStartStrUnix)
  1981. countParams = append(countParams, sepEndStrsUnix)
  1982. countParams = append(countParams, octStartStrUnix)
  1983. countParams = append(countParams, octEndStrsUnix)
  1984. countParams = append(countParams, novStartStrUnix)
  1985. countParams = append(countParams, novEndStrsUnix)
  1986. countParams = append(countParams, decStartStrUnix)
  1987. countParams = append(countParams, decEndStrsUnix)
  1988. if orgid > 0 {
  1989. db = db.Where("x.org_id=?", orgid)
  1990. countSQL += " AND x.org_id=?"
  1991. countParams = append(countParams, orgid)
  1992. }
  1993. if modetype > 0 {
  1994. db = db.Where("x.item_id = ?", modetype)
  1995. countSQL += " AND x.item_id=?"
  1996. countParams = append(countParams, modetype)
  1997. }
  1998. if januaryStartStrUnix > 0 {
  1999. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  2000. countSQL += " AND x.inspect_date >=?"
  2001. countParams = append(countParams, januaryStartStrUnix)
  2002. }
  2003. if decEndStrsUnix > 0 {
  2004. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  2005. countSQL += " AND x.inspect_date <=?"
  2006. countParams = append(countParams, decEndStrsUnix)
  2007. }
  2008. countSQL += ")a GROUP BY nnd"
  2009. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2010. }
  2011. if lapseto == 2 {
  2012. d := XTReadDB().Table("xt_patients as s")
  2013. fmt.Println("d", d)
  2014. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0")
  2015. table := XTReadDB().Table("xt_inspection_reference as r")
  2016. fmt.Println(table)
  2017. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  2018. "SELECT " +
  2019. "CASE " +
  2020. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '一月'" +
  2021. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '二月'" +
  2022. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '三月'" +
  2023. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '四月'" +
  2024. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '五月'" +
  2025. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '六月'" +
  2026. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '七月'" +
  2027. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '八月'" +
  2028. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '九月'" +
  2029. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十月'" +
  2030. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十一月'" +
  2031. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 THEN '十二月'" +
  2032. " ELSE '其他'" +
  2033. "END AS nnd FROM xt_inspection as x left join xt_inspection_reference as r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
  2034. countParams := make([]interface{}, 0)
  2035. countParams = append(countParams, januaryStartStrUnix)
  2036. countParams = append(countParams, januaryEndStrUnix)
  2037. countParams = append(countParams, febStartStrStrUnix)
  2038. countParams = append(countParams, febEndStrUnix)
  2039. countParams = append(countParams, marchStartStrUnix)
  2040. countParams = append(countParams, marchEndStrUnix)
  2041. countParams = append(countParams, aprStartStrUnix)
  2042. countParams = append(countParams, aprEndStrsUnix)
  2043. countParams = append(countParams, mayStartStrUnix)
  2044. countParams = append(countParams, mayEndStrsUnix)
  2045. countParams = append(countParams, junStartStrUnix)
  2046. countParams = append(countParams, junEndStrsUnix)
  2047. countParams = append(countParams, julStartStrUnix)
  2048. countParams = append(countParams, julEndStrsUnix)
  2049. countParams = append(countParams, augStartStrUnix)
  2050. countParams = append(countParams, augEndStrsUnix)
  2051. countParams = append(countParams, sepStartStrUnix)
  2052. countParams = append(countParams, sepEndStrsUnix)
  2053. countParams = append(countParams, octStartStrUnix)
  2054. countParams = append(countParams, octEndStrsUnix)
  2055. countParams = append(countParams, novStartStrUnix)
  2056. countParams = append(countParams, novEndStrsUnix)
  2057. countParams = append(countParams, decStartStrUnix)
  2058. countParams = append(countParams, decEndStrsUnix)
  2059. if orgid > 0 {
  2060. db = db.Where("x.org_id=?", orgid)
  2061. countSQL += " AND x.org_id=?"
  2062. countParams = append(countParams, orgid)
  2063. }
  2064. if modetype > 0 {
  2065. db = db.Where("x.item_id = ?", modetype)
  2066. countSQL += " AND x.item_id=?"
  2067. countParams = append(countParams, modetype)
  2068. }
  2069. if januaryStartStrUnix > 0 {
  2070. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  2071. countSQL += " AND x.inspect_date >=?"
  2072. countParams = append(countParams, januaryStartStrUnix)
  2073. }
  2074. if decEndStrsUnix > 0 {
  2075. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  2076. countSQL += " AND x.inspect_date <=?"
  2077. countParams = append(countParams, decEndStrsUnix)
  2078. }
  2079. countSQL += ")a GROUP BY nnd"
  2080. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2081. }
  2082. return
  2083. }
  2084. func GetPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64, page int64, limit int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
  2085. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2086. table := readDb.Table("xt_patients as s")
  2087. fmt.Println(table)
  2088. d := readDb.Table(" xt_inspection_reference as r")
  2089. fmt.Println(d)
  2090. if orgid > 0 {
  2091. db = db.Where("x.org_id = ?", orgid)
  2092. }
  2093. if lapstor == 0 {
  2094. table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2095. }
  2096. if lapstor == 1 {
  2097. db = db.Where("s.lapseto = 1")
  2098. }
  2099. if lapstor == 2 {
  2100. db = db.Where("s.lapseto = 2")
  2101. }
  2102. if startime > 0 {
  2103. db = db.Where("x.inspect_date >=?", startime)
  2104. }
  2105. if endtime > 0 {
  2106. db = db.Where("x.inspect_date <=?", endtime)
  2107. }
  2108. offset := (page - 1) * limit
  2109. err = db.Select("x.id,x.patient_id,s.name,s.dialysis_no,x.inspect_date").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_inspection_reference as r on r.item_id = x.item_id AND r.org_id > 0 OR ( x.item_id = r.id AND r.org_id = 0 )").Group("x.inspect_date").Count(&total).Offset(offset).Limit(limit).Scan(&inspection).Error
  2110. return inspection, total, err
  2111. }
  2112. func GetLastPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
  2113. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2114. table := readDb.Table("xt_patients as s")
  2115. fmt.Println(table)
  2116. d := readDb.Table(" xt_inspection_reference as r")
  2117. fmt.Println(d)
  2118. d2 := readDb.Table("xt_quality_control_standard as d")
  2119. fmt.Println("d2", d2)
  2120. if orgid > 0 {
  2121. db = db.Where("x.org_id = ? and x.inspect_value <> 0", orgid)
  2122. }
  2123. if lapstor == 0 {
  2124. table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2125. }
  2126. if lapstor == 1 {
  2127. table = table.Where("s.lapseto = 1")
  2128. }
  2129. if lapstor == 2 {
  2130. table = table.Where("s.lapseto = 2")
  2131. }
  2132. if startime > 0 {
  2133. db = db.Where("x.inspect_date >=?", startime)
  2134. }
  2135. if endtime > 0 {
  2136. db = db.Where("x.inspect_date <=?", endtime)
  2137. }
  2138. err = db.Group("x.id").Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,s.dialysis_no,r.range_max,r.range_min,d.sort").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_inspection_reference as r on r.item_id = x.item_id AND r.org_id > 0 OR ( x.item_id = r.id AND r.org_id = 0)").Joins("left join xt_quality_control_standard as d on d.inspection_minor = x.item_id").Order("x.inspect_date desc").Scan(&inspection).Error
  2139. return inspection, err
  2140. }
  2141. func GetPatientContor(lapstor, orgid int64, keywords string, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
  2142. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2143. table := readDb.Table("xt_patients as s")
  2144. fmt.Println(table)
  2145. d := readDb.Table(" xt_inspection_reference as r")
  2146. fmt.Println(d)
  2147. d2 := readDb.Table("xt_quality_control_standard as d")
  2148. fmt.Println("d2", d2)
  2149. if len(keywords) > 0 {
  2150. db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", keywords, keywords)
  2151. }
  2152. if orgid > 0 {
  2153. db = db.Where("x.org_id = ?", orgid)
  2154. }
  2155. if lapstor == 0 {
  2156. table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2157. }
  2158. if lapstor == 1 {
  2159. table = table.Where("s.lapseto = 1")
  2160. }
  2161. if lapstor == 2 {
  2162. table = table.Where("s.lapseto = 2")
  2163. }
  2164. if startime > 0 {
  2165. db = db.Where("x.inspect_date >=?", startime)
  2166. }
  2167. if endtime > 0 {
  2168. db = db.Where("x.inspect_date <=?", endtime)
  2169. }
  2170. err = db.Group("x.id").Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,s.dialysis_no,r.range_max,r.range_min,d.sort").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_inspection_reference as r on r.id = x.item_id").Joins("left join xt_quality_control_standard as d on d.inspection_minor = x.item_id").Order("x.inspect_date desc").Scan(&inspection).Error
  2171. return inspection, err
  2172. }
  2173. func GetPatientNames(orgid int64, patientid int64) (models.XtPatients, error) {
  2174. patients := models.XtPatients{}
  2175. err := readDb.Where("user_org_id = ? and id = ? and status = 1", orgid, patientid).Find(&patients).Error
  2176. return patients, err
  2177. }
  2178. func GetQualityControlById(orgid int64, patientid int64, startime int64, endtime int64, itemid int64, inspectdate int64) (inspection []*models.PatientInspectionCount, err error) {
  2179. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2180. table := readDb.Table("xt_patients as s")
  2181. fmt.Println(table)
  2182. d := readDb.Table(" xt_inspection_reference as r")
  2183. fmt.Println(d)
  2184. d2 := readDb.Table("xt_quality_control_standard as d")
  2185. fmt.Println("d2", d2)
  2186. if orgid > 0 {
  2187. db = db.Where("x.org_id = ?", orgid)
  2188. }
  2189. if patientid > 0 {
  2190. db = db.Where("x.patient_id = ?", patientid)
  2191. }
  2192. //if startime > 0 {
  2193. // db = db.Where("x.inspect_date >=?", startime)
  2194. //}
  2195. //if endtime > 0 {
  2196. // db = db.Where("x.inspect_date <=?", endtime)
  2197. //}
  2198. if itemid > 0 {
  2199. db = db.Where("x.item_id = ?", itemid)
  2200. }
  2201. if inspectdate > 0 {
  2202. db = db.Where("x.inspect_date = ?", inspectdate)
  2203. }
  2204. err = db.Group("x.id").Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,s.dialysis_no,r.range_max,r.range_min,d.sort,r.unit").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_inspection_reference as r on r.id = x.item_id").Joins("left join xt_quality_control_standard as d on d.inspection_minor = x.item_id").Order("x.inspect_date desc").Scan(&inspection).Error
  2205. return inspection, err
  2206. }
  2207. func GetPatientComplianceDetail(orgid int64, patientid int64, startime int64, endtime int64, itemid int64) (inspection []*models.PatientInspectionCount, err error) {
  2208. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2209. table := readDb.Table("xt_patients as s")
  2210. fmt.Println(table)
  2211. d := readDb.Table(" xt_inspection_reference as r")
  2212. fmt.Println(d)
  2213. d2 := readDb.Table("xt_quality_control_standard as d")
  2214. fmt.Println("d2", d2)
  2215. if orgid > 0 {
  2216. db = db.Where("x.org_id = ?", orgid)
  2217. }
  2218. if patientid > 0 {
  2219. db = db.Where("x.patient_id = ?", patientid)
  2220. }
  2221. if startime > 0 {
  2222. db = db.Where("x.inspect_date >=?", startime)
  2223. }
  2224. if endtime > 0 {
  2225. db = db.Where("x.inspect_date <=?", endtime)
  2226. }
  2227. if itemid > 0 {
  2228. db = db.Where("x.item_id = ?", itemid)
  2229. }
  2230. err = db.Group("x.id").Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,s.dialysis_no,r.range_max,r.range_min,d.sort,r.unit").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_inspection_reference as r on r.id = x.item_id").Joins("left join xt_quality_control_standard as d on d.inspection_minor = x.item_id").Order("x.inspect_date desc").Scan(&inspection).Error
  2231. return inspection, err
  2232. }
  2233. func GetLastPatientsControlTwo(orgid int64, patientid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
  2234. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2235. table := readDb.Table("xt_patients as s")
  2236. fmt.Println(table)
  2237. d := readDb.Table(" xt_inspection_reference as r")
  2238. fmt.Println(d)
  2239. d2 := readDb.Table("xt_quality_control_standard as d")
  2240. fmt.Println("d2", d2)
  2241. if orgid > 0 {
  2242. db = db.Where("x.org_id = ?", orgid)
  2243. }
  2244. if patientid > 0 {
  2245. db = db.Where("x.patient_id = ?", patientid)
  2246. }
  2247. if startime > 0 {
  2248. db = db.Where("x.inspect_date >=?", startime)
  2249. }
  2250. if endtime > 0 {
  2251. db = db.Where("x.inspect_date <=?", endtime)
  2252. }
  2253. err = db.Group("x.id").Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,s.dialysis_no,r.range_max,r.range_min,d.sort").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_inspection_reference as r on r.id = x.item_id").Joins("left join xt_quality_control_standard as d on d.inspection_minor = x.item_id").Order("x.inspect_date desc").Scan(&inspection).Error
  2254. return inspection, err
  2255. }