common_service.go 185KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622
  1. package service
  2. import (
  3. "fmt"
  4. "strconv"
  5. "time"
  6. "XT_New/models"
  7. "github.com/jinzhu/gorm"
  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 GetItemid(id int64) (models.XtInspectionReference, error) {
  23. reference := models.XtInspectionReference{}
  24. err = XTReadDB().Model(&reference).Where("id = ? and status = 1", id).Find(&reference).Error
  25. return reference, err
  26. }
  27. func GetConfigurationById(major int64, moni int64, orgid int64) (*models.XtQualityControlStandard, error) {
  28. standard := models.XtQualityControlStandard{}
  29. err := XTReadDB().Model(&standard).Where("inspection_major = ? and inspection_minor = ? and user_org_id = ? and status = 1", major, moni, orgid).Find(&standard).Error
  30. if err == gorm.ErrRecordNotFound {
  31. return nil, err
  32. }
  33. if err != nil {
  34. return nil, err
  35. }
  36. return &standard, nil
  37. }
  38. func GetConfigurationByIdTwo(major int64, moni int64, orgid int64) (standard models.XtQualityControlStandard, err error) {
  39. err = XTReadDB().Model(&standard).Where("inspection_major = ? and inspection_minor = ? and user_org_id = ? and status = 1", major, moni, orgid).First(&standard).Error
  40. return standard, err
  41. }
  42. func SaveInspection(standard *models.XtQualityControlStandard) error {
  43. err := XTWriteDB().Create(&standard).Error
  44. return err
  45. }
  46. func GetConfigurationlist(orgid int64, limit int64, page int64) (standard []*models.QualityControlStandard, total int64, err error) {
  47. db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
  48. if orgid > 0 {
  49. db = db.Where("x.user_org_id = ? and x.is_status = 1", orgid)
  50. }
  51. table := XTReadDB().Table("xt_inspection_reference as s")
  52. fmt.Println(table)
  53. offset := (page - 1) * limit
  54. 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,x.range_value,x.range_type,s.unit,s.project_name,s.item_name,x.is_status").Count(&total).
  55. Joins("left join xt_inspection_reference as s on s.id = x.inspection_minor").Offset(offset).Limit(limit).Scan(&standard).Error
  56. return standard, total, err
  57. }
  58. func GetDefaultBloodPressure(orgid int64) (standard []*models.XtQualityControlStandard, err error) {
  59. err = XTReadDB().Model(&standard).Where("user_org_id = ? and status = 1 and is_status = 0", orgid).Find(&standard).Error
  60. return standard, err
  61. }
  62. func GetConfigurationListTwo(orgid int64, limit int64, page int64) (standard []*models.QualityControlStandard, total int64, err error) {
  63. db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
  64. if orgid > 0 {
  65. db = db.Where("x.user_org_id = ? and x.is_status =1", orgid)
  66. }
  67. table := XTReadDB().Table("xt_inspection_reference as s")
  68. fmt.Println(table)
  69. offset := (page - 1) * limit
  70. 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,x.range_value,x.range_type,s.unit,s.project_name,s.item_name,x.is_status").
  71. Joins("left join xt_inspection_reference as s on s.item_id = x.inspection_minor and s.project_id = x.inspection_major").Where("s.org_id = ? and s.status = 1", orgid).Count(&total).Offset(offset).Limit(limit).Scan(&standard).Error
  72. return standard, total, err
  73. }
  74. func GetConfigurationDetail(id int64) (models.XtQualityControlStandard, error) {
  75. standard := models.XtQualityControlStandard{}
  76. err := XTReadDB().Model(&standard).Where("id=? and status = 1", id).Find(&standard).Error
  77. return standard, err
  78. }
  79. func GetIdByItemId(itemid int64, orgid int64) (models.XtInspectionReference, error) {
  80. reference := models.XtInspectionReference{}
  81. err := XTReadDB().Model(&reference).Where("item_id = ? and org_id = ?", itemid, orgid).Find(&reference).Error
  82. return reference, err
  83. }
  84. func GetAllInspectionMinor(orgid int64) (standard []*models.XtInspectionReference, err error) {
  85. err = XTReadDB().Model(&standard).Where("org_id = ? and status = 1", orgid).Find(&standard).Error
  86. return standard, err
  87. }
  88. func UpdarteConfiguration(st *models.XtQualityControlStandard, id int64) error {
  89. 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
  90. return err
  91. }
  92. func DeleteConfiguration(id int64) (err error) {
  93. err = XTWriteDB().Model(models.XtQualityControlStandard{}).Where("id=?", id).Updates(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  94. return err
  95. }
  96. func GetAllInspectionData(orgid int64) (*models.XtInspectionReference, error) {
  97. diseases := models.XtInspectionReference{}
  98. err := XTReadDB().Model(&diseases).Where("org_id = ? and status = 1", orgid).Find(&diseases).Error
  99. if err == gorm.ErrRecordNotFound {
  100. return nil, err
  101. }
  102. if err != nil {
  103. return nil, err
  104. }
  105. return &diseases, nil
  106. }
  107. func GetAllInspectiondatatwo(orgid int64) (reference []*models.XtInspectionReference, err error) {
  108. err = XTReadDB().Model(&reference).Where("org_id = ? and status = 1", orgid).Group("project_name").Find(&reference).Error
  109. return reference, err
  110. }
  111. func GetInspectionMajorById(marjor int64, orgid int64) (*models.XtCheckConfiguration, error) {
  112. configuration := models.XtCheckConfiguration{}
  113. err := XTReadDB().Model(&configuration).Where("inspection_major = ? and user_org_id = ? and status =1", marjor, orgid).Find(&configuration).Error
  114. if err == gorm.ErrRecordNotFound {
  115. return nil, err
  116. }
  117. if err != nil {
  118. return nil, err
  119. }
  120. return &configuration, nil
  121. }
  122. func GetInspectionMajorByIdTwo(marjor int64, orgid int64) (configuration models.XtCheckConfiguration, err error) {
  123. err = XTReadDB().Model(&configuration).Where("inspection_major = ? and user_org_id = ? and status =1", marjor, orgid).First(&configuration).Error
  124. return configuration, err
  125. }
  126. func CreateCheckConfiguration(configuration *models.XtCheckConfiguration) error {
  127. err := XTWriteDB().Create(&configuration).Error
  128. return err
  129. }
  130. func GetAllChekcListTwo(orgid int64, page int64, limit int64) (check []*models.CheckConfiguration, total int64, err error) {
  131. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
  132. table := XTReadDB().Table("xt_inspection_reference as r")
  133. fmt.Println(table)
  134. if orgid > 0 {
  135. db = db.Where("x.user_org_id = ?", orgid)
  136. }
  137. offset := (page - 1) * limit
  138. 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).
  139. Joins("left join xt_inspection_reference as r on r.project_id = x.inspection_major").Offset(offset).Limit(limit).Scan(&check).Error
  140. return check, total, err
  141. }
  142. func GetAllCheckList(orgid int64, page int64, limit int64) (check []*models.CheckConfiguration, total int64, err error) {
  143. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
  144. table := XTReadDB().Table("xt_inspection_reference as r")
  145. fmt.Println(table)
  146. if orgid > 0 {
  147. db = db.Where("x.user_org_id = ?", orgid)
  148. }
  149. offset := (page - 1) * limit
  150. 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).
  151. Joins("left join xt_inspection_reference as r on r.project_id = x.inspection_major").Where("r.org_id = ? and r.status = 1", orgid).Offset(offset).Limit(limit).Scan(&check).Error
  152. return check, total, err
  153. }
  154. func GetCheckDetail(id int64) (models.XtCheckConfiguration, error) {
  155. configuration := models.XtCheckConfiguration{}
  156. err := XTReadDB().Model(&configuration).Where("id=? and status =1", id).Find(&configuration).Error
  157. return configuration, err
  158. }
  159. func UpdateCheck(con *models.XtCheckConfiguration, id int64) error {
  160. 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
  161. return err
  162. }
  163. func DeleteCheck(id int64) error {
  164. err := XTWriteDB().Model(models.XtCheckConfiguration{}).Where("id=?", id).Updates(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
  165. return err
  166. }
  167. //
  168. //func GetDialysiTotal(startime int64, endtime int64, orgid int64,lapsetotype int64,sourcetype int64) (order []*models.DialysisOrder, total int64, err error) {
  169. // err = XTReadDB().Model(&order).Where("dialysis_date >= ? and dialysis_date<=? and user_org_id = ?", startime, endtime, orgid).Count(&total).Find(&order).Error
  170. // return order, total, err
  171. //}
  172. func GetDialysiTotal(startime int64, endtime int64, orgid int64, lapsetotype int64, sourcetype int64) (models.PatientPrescriptionCountStruct, error) {
  173. counts := models.PatientPrescriptionCountStruct{}
  174. db := XTReadDB().Table("xt_dialysis_order as x").Select("count(x.id) as count").Joins("Join xt_dialysis_prescription as prescription On x.dialysis_date = prescription.record_date AND x.patient_id = prescription.patient_id AND prescription.status = 1 AND prescription.mode_id > 0").Where("x.dialysis_date >= ? and x.dialysis_date<=? and x.user_org_id = ? AND x.status = 1", startime, endtime, orgid)
  175. if lapsetotype > 0 {
  176. err = db.Where("x.user_org_id = ? and s.lapseto = ?", startime, endtime, orgid, lapsetotype).Joins("left join xt_patients as s on s.id= x.patient_id").Scan(&counts).Error
  177. }
  178. if lapsetotype == 0 {
  179. err = db.Joins("left join xt_patients as s on s.id= x.patient_id").Scan(&counts).Error
  180. }
  181. if sourcetype > 0 {
  182. err = db.Where("x.user_org_id = ? and s.source = ?", startime, endtime, orgid, sourcetype).Joins("left join xt_patients as s on s.id= x.patient_id").Scan(&counts).Error
  183. }
  184. if sourcetype == 0 {
  185. err = db.Joins("left join xt_patients as s on s.id= x.patient_id").Scan(&counts).Error
  186. }
  187. return counts, err
  188. }
  189. func GetDialysisCountMode(starttime int64, endtime int64, orgid int64, lapsetotype int64, sourcetype int64) (counts []*models.PatientPrescriptionCountStruct, err error) {
  190. db := readDb.Table("xt_dialysis_order as o").Where("o.status = 1")
  191. if starttime > 0 {
  192. db = db.Where("o.dialysis_date >=?", starttime)
  193. }
  194. if endtime > 0 {
  195. db = db.Where("o.dialysis_date<=?", endtime)
  196. }
  197. if orgid > 0 {
  198. db = db.Where("o.user_org_id = ?", orgid)
  199. }
  200. if lapsetotype > 0 {
  201. db = db.Where("p.lapseto = ?", lapsetotype)
  202. }
  203. if sourcetype > 0 {
  204. db = db.Where("p.source = ?", sourcetype)
  205. }
  206. err = db.Select("s.mode_id,count(s.mode_id) as count").Joins("join xt_dialysis_prescription as s on s.patient_id = o.patient_id and s.record_date = o.dialysis_date and s.status= 1 AND s.record_date >= ? AND s.record_date <= ? AND s.mode_id > 0 ", starttime, endtime).Joins("left join xt_patients as p on o.patient_id = p.id").Group("s.mode_id").Scan(&counts).Error
  207. return counts, err
  208. }
  209. func GetTotalRollOut(starttime int64, endtime int64, orgid int64) (counts []*models.PatientLapseto, total int64, err error) {
  210. db := readDb.Table("xt_patient_lapseto as x").Where("x.status = 1")
  211. table := readDb.Table("xt_dialysis_order as s")
  212. fmt.Println(table)
  213. 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
  214. return counts, total, err
  215. }
  216. func GetTotalRollOutPatients(orgid int64, startime int64, endtime int64, lapsetotype int64, sourcetype int64) (patients []*models.XtPatients, err error) {
  217. db := XTReadDB().Table("xt_patients as x")
  218. if sourcetype == 0 {
  219. 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", startime, endtime, orgid).Scan(&patients).Error
  220. }
  221. if sourcetype > 0 {
  222. 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 and x.source = ?", startime, endtime, orgid, sourcetype).Scan(&patients).Error
  223. }
  224. return patients, err
  225. }
  226. func GetTotalRollOutPatientsTwo(orgid int64, startime int64, endtime int64, lapsetotype int64, sourcetype int64) (patients []*models.XtPatients, err error) {
  227. db := XTReadDB().Table("xt_patients as x")
  228. if sourcetype == 0 {
  229. 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", startime, endtime, orgid).Scan(&patients).Error
  230. }
  231. if sourcetype > 0 {
  232. 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 and x.source = ?", startime, endtime, orgid, sourcetype).Scan(&patients).Error
  233. }
  234. return patients, err
  235. }
  236. func GetPatientTotalCount(orgID int64, lapsetotype int64, sourcetype int64) (total int64) {
  237. db := readDb.Table("xt_patients as x")
  238. db.Where("x.user_org_id=? and x.status=1 and x.patient_type=1", orgID).Count(&total)
  239. return
  240. }
  241. func GetPatientTotalCountTwo(orgid int64, starttime int64, endtime int64) (dialysisorder []*models.XtDialysisOrder, total int64, err error) {
  242. 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
  243. return dialysisorder, total, err
  244. }
  245. func GetManPatientTotalCount(orgid int64, starttime int64, endtime int64) (dialysisorder []*models.SgjDialysisOrder, total int64, err error) {
  246. db := XTReadDB().Table("xt_dialysis_order as s").Where("s.status = 1")
  247. table := XTReadDB().Table("xt_patients as x")
  248. fmt.Println("table", table)
  249. 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
  250. return dialysisorder, total, err
  251. }
  252. func GetManPatientTotal(orgid int64, lapsetotype int64, sourcetype int64) (patients []*models.XtPatients, total int64, err error) {
  253. db := XTReadDB().Table("xt_patients as x").Where("x.status = 1 and x.patient_type =1")
  254. if lapsetotype > 0 {
  255. db = db.Where("x.lapseto = ?", lapsetotype)
  256. }
  257. if sourcetype > 0 {
  258. db = db.Where("x.source = ?", sourcetype)
  259. }
  260. err = db.Where("x.user_org_id = ? and x.status = 1 and x.gender = 1", orgid).Count(&total).Find(&patients).Error
  261. return patients, total, err
  262. }
  263. func GetWoManPatientTotal(orgid int64, lapsetotype int64, sourcetype int64) (patients []*models.XtPatients, total int64, err error) {
  264. db := XTReadDB().Table("xt_patients as x").Where("x.status = 1 and x.patient_type =1")
  265. if lapsetotype > 0 {
  266. db = db.Where("x.lapseto = ?", lapsetotype)
  267. }
  268. if sourcetype > 0 {
  269. db = db.Where("x.source = ?", sourcetype)
  270. }
  271. err = db.Where("x.user_org_id = ? and x.status = 1 and x.gender = 2", orgid).Count(&total).Find(&patients).Error
  272. return patients, total, err
  273. }
  274. //func GetPatientInfectiousCount(orgid int64, starttime int64, endtime int64) (counts []*models.PatientContagionsCountStruct, err error) {
  275. // 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
  276. // return counts, err
  277. //}
  278. func GetPatientInfectiousCount(orgid int64, startime int64, endtime int64, lapsetotype int64, sourcetype int64) (counts []*models.PatientContagionsCountStruct, err error) {
  279. if lapsetotype == 0 {
  280. 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.patient_type =1 and x.status = 1 and x.updated_time>=? and x.updated_time<=?", orgid, startime, endtime).Select("x.disease_id,count(x.disease_id) as count").Group("x.disease_id").Scan(&counts).Error
  281. }
  282. if sourcetype == 0 {
  283. 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.patient_type =1 and x.status = 1 and x.updated_time>=? and x.updated_time<=?", orgid, startime, endtime).Select("x.disease_id,count(x.disease_id) as count").Group("x.disease_id").Scan(&counts).Error
  284. }
  285. if lapsetotype > 0 {
  286. 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.patient_type =1 and x.status = 1 and x.updated_time>=? and x.updated_time<=? and s.lapseto = ?", orgid, startime, endtime, lapsetotype).Select("x.disease_id,count(x.disease_id) as count").Group("x.disease_id").Scan(&counts).Error
  287. }
  288. if sourcetype > 0 {
  289. 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.patient_type =1 and x.status = 1 and x.updated_time>=? and x.updated_time<=? and s.source = ?", orgid, startime, endtime, sourcetype).Select("x.disease_id,count(x.disease_id) as count").Group("x.disease_id").Scan(&counts).Error
  290. }
  291. return counts, err
  292. }
  293. func GetPatientOtherInfectious(orgid int64) (patients []*models.XtPatients, total int64, err error) {
  294. err = XTReadDB().Model(&patients).Where("user_org_id = ? and status = 1 and is_infectious = 1", orgid).Count(&total).Find(&patients).Error
  295. return patients, total, err
  296. }
  297. func GetTotalAgeCount(orgid int64, lapsetotype int64, sourcetype int64) (counts []*models.PatientAgeCountStruct, err error) {
  298. if lapsetotype == 0 || sourcetype == 0 {
  299. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  300. SELECT
  301. CASE
  302. 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'
  303. 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'
  304. 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'
  305. 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'
  306. ELSE '150'
  307. END
  308. AS nnd FROM xt_patients as s where s.user_org_id=? and s.status=1 and s.patient_type =1
  309. )a GROUP BY nnd`, orgid).Scan(&counts)
  310. }
  311. if lapsetotype > 0 {
  312. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  313. SELECT
  314. CASE
  315. 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'
  316. 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'
  317. 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'
  318. 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'
  319. ELSE '150'
  320. END
  321. AS nnd FROM xt_patients as s where s.user_org_id=? and s.status=1 and s.lapseto = ?
  322. )a GROUP BY nnd`, orgid, lapsetotype).Scan(&counts)
  323. }
  324. if sourcetype > 0 {
  325. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  326. SELECT
  327. CASE
  328. 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'
  329. 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'
  330. 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'
  331. 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'
  332. ELSE '150'
  333. END
  334. AS nnd FROM xt_patients as s where s.user_org_id=? and s.status=1 and s.source = ?
  335. )a GROUP BY nnd`, orgid, sourcetype).Scan(&counts)
  336. }
  337. return
  338. }
  339. func GetTotalAgeCountTwo(orgid int64, starttime int64, endtime int64) (counts []*models.PatientAgeCountStruct, err error) {
  340. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  341. SELECT
  342. CASE
  343. 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'
  344. END
  345. 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<=?
  346. )a GROUP BY nnd`, orgid, starttime, endtime).Scan(&counts)
  347. return
  348. }
  349. func GetTotalDialysisAgeCount(orgid int64) (patients []*models.XtPatients, err error) {
  350. err = XTReadDB().Where("user_org_id = ? and status =1", orgid).Find(&patients).Error
  351. return patients, err
  352. }
  353. func GetDialysisAgeData(orgID int64, lapsetotype int64, sourcetype int64) (counts []*models.DialysisAgePieDataStruct, err error) {
  354. if lapsetotype == 0 || sourcetype == 0 {
  355. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  356. SELECT
  357. CASE
  358. 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'
  359. 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'
  360. 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'
  361. WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 60 THEN '4'
  362. 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)
  363. }
  364. if lapsetotype > 0 {
  365. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  366. SELECT
  367. CASE
  368. 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'
  369. 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'
  370. 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'
  371. WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 60 THEN '4'
  372. END AS nnd FROM xt_patients as p where p.user_org_id=? and p.status=1 and p.first_dialysis_date <> 0 and p.lapseto = ?)a GROUP BY nnd`, orgID, lapsetotype).Scan(&counts)
  373. }
  374. if sourcetype > 0 {
  375. readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
  376. SELECT
  377. CASE
  378. 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'
  379. 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'
  380. 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'
  381. WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 60 THEN '4'
  382. END AS nnd FROM xt_patients as p where p.user_org_id=? and p.status=1 and p.first_dialysis_date <> 0 and p.source = ?)a GROUP BY nnd`, orgID, sourcetype).Scan(&counts)
  383. }
  384. return
  385. }
  386. func GetCurentOrgPatients(orgid int64) (patients []*models.BloodXtPatients, err error) {
  387. err = XTReadDB().Where("user_org_id = ? and status =1 and patient_type =1", orgid).Order("created_time desc").Find(&patients).Error
  388. return patients, err
  389. }
  390. func TotalDialysisCount(startime int64, endtime int64, orgid int64) (order []*models.BloodDialysisOrderCount, err error) {
  391. db := XTReadDB().Table("xt_dialysis_order as o")
  392. err = db.Raw("select count(o.id) as count,o.patient_id from xt_dialysis_order as o left join xt_schedule AS x ON x.patient_id = o.patient_id where o.status = 1 and o.dialysis_date>=? and o.dialysis_date<=? and o.user_org_id = ? and x.schedule_date = o.dialysis_date and x.status = 1", startime, endtime, orgid).Group("o.patient_id").Scan(&order).Error
  393. return order, err
  394. }
  395. func GetDialysisList(startime int64, endtime int64, page int64, limit int64, orgid int64) (order []*models.BloodDialysisOrder, total int64, err error) {
  396. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  397. if orgid > 0 {
  398. db = db.Where("o.user_org_id = ?", orgid)
  399. }
  400. if startime > 0 {
  401. db = db.Where("o.dialysis_date>=?", startime)
  402. }
  403. if endtime > 0 {
  404. db = db.Where("o.dialysis_date<=?", endtime)
  405. }
  406. offset := (page - 1) * limit
  407. 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("join xt_dialysis_prescription as s on s.patient_id = o.patient_id AND s.record_date = o.dialysis_date AND s.mode_id > 0").Joins("join xt_patients as p on p.id = o.patient_id").Where("s.status = 1").Count(&total).Offset(offset).Limit(limit).Scan(&order).Error
  408. return order, total, err
  409. }
  410. func GetDialysisScheduleList(startime int64, endtime int64, page int64, limit int64, orgid int64) (order []*models.BloodDialysisOrderSchedule, err error) {
  411. db := XTReadDB().Table("xt_schedule as o").Where("o.status = 1")
  412. if orgid > 0 {
  413. db = db.Where("o.user_org_id = ?", orgid)
  414. }
  415. if startime > 0 {
  416. db = db.Where("o.schedule_date>=?", startime)
  417. }
  418. if endtime > 0 {
  419. db = db.Where("o.schedule_date<=?", endtime)
  420. }
  421. err = db.Group("o.patient_id,o.mode_id").Select("o.mode_id,o.patient_id,p.name,p.id_card_no,p.dialysis_no,p.total_dialysis,p.user_sys_before_count").Joins("join xt_patients as p on p.id = o.patient_id").Where("o.status = 1").Scan(&order).Error
  422. return order, err
  423. }
  424. func GetAllDialysisList(startime int64, endtime int64, orgid int64) (order []*models.BloodDialysisOrder, err error) {
  425. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  426. if orgid > 0 {
  427. db = db.Where("o.user_org_id = ?", orgid)
  428. }
  429. if startime > 0 {
  430. db = db.Where("o.dialysis_date>=?", startime)
  431. }
  432. if endtime > 0 {
  433. db = db.Where("o.dialysis_date<=?", endtime)
  434. }
  435. 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("join xt_dialysis_prescription as s on s.patient_id = o.patient_id AND s.record_date = o.dialysis_date AND s.mode_id > 0").Joins("join xt_patients as p on p.id = o.patient_id").Where("s.status = 1 ").Scan(&order).Error
  436. return order, err
  437. }
  438. func GetDialysisPatientList(startime int64, endtime int64, page int64, limit int64, orgid int64) (order []*models.BloodDialysisOrder, total int64, err error) {
  439. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  440. db = db.Where("o.user_org_id = ?", orgid)
  441. if startime > 0 {
  442. db = db.Where("o.dialysis_date>=?", startime)
  443. }
  444. if endtime > 0 {
  445. db = db.Where("o.dialysis_date<=?", endtime)
  446. }
  447. offset := (page - 1) * limit
  448. 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("join xt_dialysis_prescription as s on s.patient_id = o.patient_id AND s.record_date = o.dialysis_date AND s.mode_id > 0 AND s.status =1").Joins("join xt_patients as p on p.id = o.patient_id").Count(&total).Offset(offset).Limit(limit).Scan(&order).Error
  449. return order, total, err
  450. }
  451. func GetLastSort(orgid int64) (models.XtQualityControlStandard, error) {
  452. standard := models.XtQualityControlStandard{}
  453. err := XTReadDB().Model(&standard).Where("user_org_id = ? and status =1 and is_status = 1", orgid).Last(&standard).Error
  454. return standard, err
  455. }
  456. func GetLastCheckList(orgid int64) (models.XtCheckConfiguration, error) {
  457. configuration := models.XtCheckConfiguration{}
  458. err := XTReadDB().Model(&configuration).Where("user_org_id = ? and status =1", orgid).Last(&configuration).Error
  459. return configuration, err
  460. }
  461. func GetDialysisDetailById(id int64, orgid int64, startime int64, endtime int64, limit int64, page int64) (prescription []*models.BloodDialysisPrescription, total int64, err error) {
  462. db := XTReadDB().Table("xt_dialysis_prescription as p").Where("p.status =1 ")
  463. table := XTReadDB().Table("xt_patients as s")
  464. fmt.Println(table)
  465. if id > 0 {
  466. db = db.Where("p.patient_id = ?", id)
  467. }
  468. if orgid > 0 {
  469. db = db.Where("p.user_org_id = ?", orgid)
  470. }
  471. if startime > 0 {
  472. db = db.Where("p.record_date >= ?", startime)
  473. }
  474. if endtime > 0 {
  475. db = db.Where("p.record_date <=?", endtime)
  476. }
  477. offset := (page - 1) * limit
  478. 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
  479. return prescription, total, err
  480. }
  481. func GetPrescritionByName(orgid int64, patient_id int64, startime int64, endtime int64, limit int64, page int64) (prescription []*models.BloodDialysisPrescription, total int64, err error) {
  482. db := XTReadDB().Table("xt_dialysis_prescription as p").Where("p.status =1 ")
  483. table := XTReadDB().Table("xt_patients as s")
  484. fmt.Println(table)
  485. //if len(keywords) > 0 {
  486. // likeKey := "%" + keywords + "%"
  487. // db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", likeKey, likeKey)
  488. //}
  489. if patient_id > 0 {
  490. db = db.Where("s.id = ?", patient_id)
  491. }
  492. if orgid > 0 {
  493. db = db.Where("p.user_org_id = ?", orgid)
  494. }
  495. if startime > 0 {
  496. db = db.Where("p.record_date >= ?", startime)
  497. }
  498. if endtime > 0 {
  499. db = db.Where("p.record_date <=?", endtime)
  500. }
  501. offset := (page - 1) * limit
  502. 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
  503. return prescription, total, err
  504. }
  505. func GetTreateInfo(orgID int64, startime int64, endtime int64, lapseto int64, limit int64, page int64) (blood []*models.TreatDialysisOrder, total int64, err error) {
  506. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
  507. sql := "from_unixtime(o.dialysis_date, '%Y%m%d') AS date"
  508. if orgID > 0 {
  509. db = db.Where("o.user_org_id = ?", orgID)
  510. }
  511. if startime > 0 {
  512. db = db.Where("o.dialysis_date >=?", startime)
  513. }
  514. if endtime > 0 {
  515. db = db.Where("o.dialysis_date<=?", endtime)
  516. }
  517. if lapseto == 0 {
  518. db = db.Where("p.lapseto = 1 or p.lapseto = 2")
  519. }
  520. if lapseto > 0 {
  521. db = db.Where("p.lapseto = ?", lapseto)
  522. }
  523. err = db.Group("o.dialysis_date").Select(sql).Joins("join xt_dialysis_prescription as s on s.patient_id = o.patient_id AND s.record_date = o.dialysis_date AND s.mode_id > 0").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.record_date = o.dialysis_date and s.status =1").Scan(&blood).Error
  524. return blood, total, err
  525. }
  526. func GetTreatList(orgid int64, startime int64, endtime int64, lapseto int64) (ttd []*models.TreatTotalStruct, err error) {
  527. db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1 ")
  528. p := XTReadDB().Table("xt_patients as p")
  529. fmt.Println(p)
  530. if orgid > 0 {
  531. db = db.Where("o.user_org_id = ?", orgid)
  532. }
  533. if startime > 0 {
  534. db = db.Where("o.dialysis_date>=?", startime)
  535. }
  536. if endtime > 0 {
  537. db = db.Where("o.dialysis_date<=?", endtime)
  538. }
  539. //if lapseto == 0 {
  540. // db = db.Where("p.lapseto = 1 or p.lapseto = 2")
  541. //}
  542. if lapseto > 0 {
  543. db = db.Where("p.lapseto = ?", lapseto)
  544. }
  545. err = db.Select("s.mode_id, count(s.mode_id) as number").Joins("join xt_dialysis_prescription as s on s.patient_id = o.patient_id and s.record_date = o.dialysis_date and s.mode_id > 0").Joins("left join xt_patients as p on p.id = o.patient_id").Where("s.record_date = o.dialysis_date and s.status = 1").Group("s.mode_id").Order("s.mode_id asc").Find(&ttd).Error
  546. return ttd, err
  547. }
  548. func GetStatistics(orgID int64, startime int64, endtime int64, modeID int64) (dtd []*DialysisTotalDataStruct, ttd []*DialysisTotalDataStruct, err error) {
  549. db := readDb
  550. sql := "s.mode_id,from_unixtime(o.dialysis_date, '%Y%m%d') as date, count(o.dialysis_date) as number"
  551. datesql := " o.dialysis_date as date"
  552. group := "from_unixtime(o.dialysis_date, '%Y%m%d')"
  553. db = db.Table(" xt_dialysis_order AS o").Joins("join xt_dialysis_prescription as s on o.patient_id = s.patient_id AND o.dialysis_date = s.record_date AND s.mode_id > 0")
  554. if orgID > 0 {
  555. db = db.Where("o.user_org_id = ?", orgID)
  556. }
  557. if modeID > 0 {
  558. db = db.Where("s.mode_id=?", modeID)
  559. }
  560. if startime > 0 {
  561. db = db.Where("o.dialysis_date>=?", startime)
  562. }
  563. if endtime > 0 {
  564. db = db.Where("o.dialysis_date<=?", endtime)
  565. }
  566. db = db.Where("o.status=1")
  567. err = db.Select("s.mode_id, count(s.mode_id) as number").Order("s.mode_id asc").Find(&ttd).Error
  568. if err != nil {
  569. return
  570. }
  571. var ds []*DialysisTotalDataStruct
  572. err = db.Select(datesql).Group(group).Find(&ds).Error
  573. if err != nil {
  574. return
  575. }
  576. dates := make([]string, 0)
  577. if len(ds) > 0 {
  578. for _, d := range ds {
  579. dates = append(dates, d.Date)
  580. }
  581. db = db.Where("o.dialysis_date IN (?)", dates)
  582. }
  583. err = db.Select(sql).Group(group + ", s.mode_id").Order("date asc, s.mode_id").Find(&dtd).Error
  584. return
  585. }
  586. func GetInspectionTotalCount(orgid int64) (configuration []*models.CheckConfiguration, err error) {
  587. var count int
  588. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status = 1")
  589. table := XTReadDB().Table("xt_inspection_reference as s")
  590. if orgid > 0 {
  591. db = db.Where("x.user_org_id = ?", orgid)
  592. }
  593. fmt.Println(table)
  594. 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
  595. return configuration, err
  596. }
  597. func GetInspectionProjectCount(orgid int64, startime int64, endtime int64, patientid int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
  598. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  599. table := XTReadDB().Table("xt_inspection_reference as r")
  600. fmt.Println(table)
  601. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  602. fmt.Println(d)
  603. if orgid > 0 {
  604. db = db.Where("x.org_id = ?", orgid)
  605. }
  606. if startime > 0 {
  607. db = db.Where("x.inspect_date >=?", startime)
  608. }
  609. if endtime > 0 {
  610. db = db.Where("x.inspect_date <=?", endtime)
  611. }
  612. if patientid > 0 {
  613. db = db.Where("x.patient_id = ?", patientid)
  614. }
  615. 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
  616. return
  617. }
  618. func GetInspectionDetailById(id int64, orgid int64, startime int64, endtime int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
  619. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  620. table := XTReadDB().Table("xt_inspection_reference as r")
  621. fmt.Println(table)
  622. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  623. fmt.Println(d)
  624. if id > 0 {
  625. db = db.Where("x.patient_id=?", id)
  626. }
  627. if orgid > 0 {
  628. db = db.Where("x.org_id = ?", orgid)
  629. }
  630. if startime > 0 {
  631. db = db.Where("x.inspect_date >=?", startime)
  632. }
  633. if endtime > 0 {
  634. db = db.Where("x.inspect_date <=?", endtime)
  635. }
  636. err = db.Select("count(distinct x.inspect_date) as count,x.patient_id,x.project_id,r.project_name,t.inspection_frequency,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("project_id,patient_id").Scan(&projectCounts).Error
  637. return
  638. }
  639. func GetSearchPatientInfo(orgid int64, keywords int64, startime int64, endtime int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
  640. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  641. table := XTReadDB().Table("xt_inspection_reference as r")
  642. fmt.Println(table)
  643. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  644. fmt.Println(d)
  645. p := XTReadDB().Table("xt_patients as p")
  646. fmt.Println(p)
  647. //if len(keywords) > 0 {
  648. // likeKey := "%" + keywords + "%"
  649. // db = db.Where("p.name LIKE ? OR p.dialysis_no LIKE ?", likeKey, likeKey)
  650. //}
  651. if keywords > 0 {
  652. db = db.Where("x.patient_id = ?", keywords)
  653. }
  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.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
  664. return
  665. }
  666. func GetMajorInspectionByOrgid(orgid int64) (checkconfiguration []*models.CheckConfiguration, err error) {
  667. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
  668. table := XTReadDB().Table("xt_inspection_reference ar r")
  669. fmt.Println(table)
  670. 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
  671. return checkconfiguration, err
  672. }
  673. func GetDefaultByOrgId(orgid int64) (checkconfiguration []*models.CheckConfiguration, err error) {
  674. db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
  675. table := XTReadDB().Table("xt_inspection_reference ar r")
  676. fmt.Println(table)
  677. 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
  678. return checkconfiguration, err
  679. }
  680. func GetPatientListData(orgid int64, startime int64, endtime int64, limit int64, page int64) (inspection []*models.PatientsInspection, total int64, err error) {
  681. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  682. table := XTReadDB().Table("xt_patients as s")
  683. fmt.Println("table", table)
  684. if orgid > 0 {
  685. db = db.Where("x.org_id = ?", orgid)
  686. }
  687. if startime > 0 {
  688. db = db.Where("x.inspect_date >= ?", startime)
  689. }
  690. if endtime > 0 {
  691. db = db.Where("x.inspect_date <=?", endtime)
  692. }
  693. offset := (page - 1) * limit
  694. 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
  695. return inspection, total, err
  696. }
  697. func GetPatientListInfo(orgid int64, startime int64, endtime int64, limit int64, page int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
  698. patients, _, err := GetPatientListData(orgid, startime, endtime, limit, page)
  699. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  700. table := XTReadDB().Table("xt_inspection_reference as r")
  701. fmt.Println(table)
  702. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  703. pa := XTReadDB().Table("xt_patients as s")
  704. fmt.Println(pa)
  705. fmt.Println(d)
  706. if orgid > 0 {
  707. db = db.Where("x.org_id = ?", orgid)
  708. }
  709. if startime > 0 {
  710. db = db.Where("x.inspect_date >=?", startime)
  711. }
  712. if endtime > 0 {
  713. db = db.Where("x.inspect_date <=?", endtime)
  714. }
  715. //if len(ds) > 0 {
  716. // for _, d := range ds {
  717. // dates = append(dates, d.Date)
  718. // }
  719. //
  720. // db = db.Where("o.dialysis_date IN (?)", dates)
  721. //
  722. ////}
  723. selectContent := "CASE"
  724. dates := make([]string, 0)
  725. for _, item := range patients {
  726. selectContent = selectContent + " WHEN x.patient_id =" + strconv.FormatInt(item.PatientId, 10) + " THEN " + "'" + item.Name + "'"
  727. dates = append(dates, strconv.FormatInt(item.PatientId, 10))
  728. }
  729. db = db.Where("x.patient_id in(?)", dates)
  730. 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
  731. //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
  732. return
  733. }
  734. func GetPatientDetailCheck(id int64, orgid int64, startime int64, endtime int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
  735. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  736. if id > 0 {
  737. db = db.Where("s.id = ?", id)
  738. }
  739. if orgid > 0 {
  740. db = db.Where("x.org_id = ?", orgid)
  741. }
  742. if startime > 0 {
  743. db = db.Where("x.inspect_date >=?", startime)
  744. }
  745. if endtime > 0 {
  746. db = db.Where("x.inspect_date <=?", endtime)
  747. }
  748. 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
  749. return
  750. }
  751. func GetSearchDetailCheck(orgid int64, keywords string, startime int64, endtime int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
  752. db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
  753. table := XTReadDB().Table("xt_inspection_reference as r")
  754. fmt.Println(table)
  755. d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
  756. pa := XTReadDB().Table("xt_patients as s")
  757. fmt.Println(pa)
  758. fmt.Println(d)
  759. if len(keywords) > 0 {
  760. likeKey := "%" + keywords + "%"
  761. db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", likeKey, likeKey)
  762. }
  763. if orgid > 0 {
  764. db = db.Where("x.org_id = ?", orgid)
  765. }
  766. if startime > 0 {
  767. db = db.Where("x.inspect_date >=?", startime)
  768. }
  769. if endtime > 0 {
  770. db = db.Where("x.inspect_date <=?", endtime)
  771. }
  772. 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
  773. return
  774. }
  775. func GetNormDataByOrgId(orgid int64) (standard []*models.QualityControlStandard, err error) {
  776. db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
  777. if orgid > 0 {
  778. db = db.Where("x.user_org_id = ? and x.is_status = 1", orgid)
  779. }
  780. table := XTReadDB().Table("xt_inspection_reference as s")
  781. fmt.Println(table)
  782. err = db.Order("x.sort asc,x.created_time asc").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,x.is_status").
  783. Joins("left join xt_inspection_reference as s on (s.item_id = x.inspection_minor AND s.org_id > 0) OR (s.id = x.inspection_minor AND s.org_id = 0)").Scan(&standard).Error
  784. return standard, err
  785. }
  786. func GetNormData(orgid int64) (standard []*models.QualityControlStandard, err error) {
  787. db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
  788. if orgid >= 0 {
  789. db = db.Where("x.user_org_id = ? and x.is_status = 1", orgid)
  790. }
  791. table := XTReadDB().Table("xt_inspection_reference as s")
  792. fmt.Println(table)
  793. err = db.Order("x.sort asc,x.created_time asc").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").
  794. Joins("left join xt_inspection_reference as s on (s.item_id = x.inspection_minor AND s.org_id > 0) OR (s.id = x.inspection_minor AND s.org_id = 0)").Scan(&standard).Error
  795. return standard, err
  796. }
  797. func GetItemNameGroup(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientInspection, err error) {
  798. db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
  799. table := XTReadDB().Table("xt_inspection_reference as r")
  800. fmt.Println(table)
  801. if orgid > 0 {
  802. db = db.Where("x.org_id = ?", orgid)
  803. }
  804. if startime > 0 {
  805. db = db.Where("x.inspect_date >=?", startime)
  806. }
  807. if endtime > 0 {
  808. db = db.Where("x.inspect_date <=?", endtime)
  809. }
  810. 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
  811. return inspection, err
  812. }
  813. func GetFirstQuarter(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientInspection, err error) {
  814. db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
  815. table := XTReadDB().Table("xt_inspection_reference as r")
  816. fmt.Println(table)
  817. if orgid > 0 {
  818. db = db.Where("x.org_id = ?", orgid)
  819. }
  820. if startime > 0 {
  821. db = db.Where("x.inspect_date >=?", startime)
  822. }
  823. if endtime > 0 {
  824. db = db.Where("x.inspect_date <=?", endtime)
  825. }
  826. 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
  827. return inspection, err
  828. }
  829. func GetQuarterTotalCount(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (inspection []*models.VmPatientInspectionTwo, err error) {
  830. db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
  831. if orgid > 0 {
  832. db = db.Where("x.org_id = ? and x.inspect_value+0 <> 0 and r.range_type = 1 and q.user_org_id = ? and q.is_status = 1", orgid, orgid)
  833. }
  834. if startime > 0 {
  835. db = db.Where("x.inspect_date >=?", startime)
  836. }
  837. if endtime > 0 {
  838. db = db.Where("x.inspect_date <=?", endtime)
  839. }
  840. if lapseto > 0 && origin > 0 {
  841. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ? AND p.source = ?", lapseto, origin)
  842. }
  843. if lapseto > 0 && origin == 0 {
  844. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ?", lapseto)
  845. }
  846. if lapseto == 0 && origin > 0 {
  847. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.source = ?", origin)
  848. }
  849. 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_quality_control_standard as q on q.inspection_minor = x.item_id").Scan(&inspection).Error
  850. return inspection, err
  851. }
  852. func GetQuarterTotalCountTwo(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (inspection []*models.VmPatientInspectionTwo, err error) {
  853. db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
  854. q := XTReadDB().Table("x.xt_quality_control_standard as q")
  855. fmt.Println(q)
  856. if orgid > 0 {
  857. db = db.Where("x.org_id = ? and r.range_type = 2 and q.user_org_id = ? and q.is_status = 1 and x.inspect_value <>''", orgid, orgid)
  858. }
  859. if startime > 0 {
  860. db = db.Where("x.inspect_date >=?", startime)
  861. }
  862. if endtime > 0 {
  863. db = db.Where("x.inspect_date <=?", endtime)
  864. }
  865. if lapseto > 0 && origin > 0 {
  866. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ? AND p.source = ?", lapseto, origin)
  867. }
  868. if lapseto > 0 && origin == 0 {
  869. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ?", lapseto)
  870. }
  871. if lapseto == 0 && origin > 0 {
  872. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.source = ?", origin)
  873. }
  874. 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_quality_control_standard as q on q.inspection_minor = x.item_id").Scan(&inspection).Error
  875. return inspection, err
  876. }
  877. 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) {
  878. if lapseto == 0 {
  879. d := XTReadDB().Table("xt_patients as s")
  880. fmt.Println("d", d)
  881. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  882. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  883. "SELECT " +
  884. "CASE " +
  885. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  886. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  887. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  888. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  889. " ELSE '其他'" +
  890. "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"
  891. countParams := make([]interface{}, 0)
  892. countParams = append(countParams, firststart)
  893. countParams = append(countParams, firstend)
  894. countParams = append(countParams, sencondstart)
  895. countParams = append(countParams, sencondend)
  896. countParams = append(countParams, threestart)
  897. countParams = append(countParams, threeend)
  898. countParams = append(countParams, fourstart)
  899. countParams = append(countParams, fourend)
  900. if orgid > 0 {
  901. db = db.Where("x.org_id=?", orgid)
  902. countSQL += " AND x.org_id=?"
  903. countParams = append(countParams, orgid)
  904. }
  905. if modetype > 0 {
  906. db = db.Where("x.item_id = ?", modetype)
  907. countSQL += " AND x.item_id=?"
  908. countParams = append(countParams, modetype)
  909. }
  910. if startime > 0 {
  911. db = db.Where("x.inspect_date >= ?", startime)
  912. countSQL += " AND x.inspect_date >=?"
  913. countParams = append(countParams, startime)
  914. }
  915. if endtime > 0 {
  916. db = db.Where("x.inspect_date <= ?", endtime)
  917. countSQL += " AND x.inspect_date <=?"
  918. countParams = append(countParams, endtime)
  919. }
  920. countSQL += ")a GROUP BY nnd"
  921. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  922. }
  923. if lapseto == 1 {
  924. d := XTReadDB().Table("xt_patients as s")
  925. fmt.Println("d", d)
  926. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  927. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  928. "SELECT " +
  929. "CASE " +
  930. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  931. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  932. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  933. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  934. "ELSE '其他'" +
  935. "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)"
  936. countParams := make([]interface{}, 0)
  937. countParams = append(countParams, firststart)
  938. countParams = append(countParams, firstend)
  939. countParams = append(countParams, sencondstart)
  940. countParams = append(countParams, sencondend)
  941. countParams = append(countParams, threestart)
  942. countParams = append(countParams, threeend)
  943. countParams = append(countParams, fourstart)
  944. countParams = append(countParams, fourend)
  945. if orgid > 0 {
  946. db = db.Where("x.org_id=?", orgid)
  947. countSQL += " AND x.org_id=?"
  948. countParams = append(countParams, orgid)
  949. }
  950. if modetype > 0 {
  951. db = db.Where("x.item_id = ?", modetype)
  952. countSQL += " AND x.item_id=?"
  953. countParams = append(countParams, modetype)
  954. }
  955. if startime > 0 {
  956. db = db.Where("x.inspect_date >= ?", startime)
  957. countSQL += " AND x.inspect_date >=?"
  958. countParams = append(countParams, startime)
  959. }
  960. if endtime > 0 {
  961. db = db.Where("x.inspect_date <= ?", endtime)
  962. countSQL += " AND x.inspect_date <=?"
  963. countParams = append(countParams, endtime)
  964. }
  965. countSQL += ")a GROUP BY nnd"
  966. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  967. }
  968. if lapseto == 2 {
  969. d := XTReadDB().Table("xt_patients as s")
  970. fmt.Println("d", d)
  971. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  972. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  973. "SELECT " +
  974. "CASE " +
  975. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  976. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  977. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  978. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  979. " ELSE '其他'" +
  980. "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)"
  981. countParams := make([]interface{}, 0)
  982. countParams = append(countParams, firststart)
  983. countParams = append(countParams, firstend)
  984. countParams = append(countParams, sencondstart)
  985. countParams = append(countParams, sencondend)
  986. countParams = append(countParams, threestart)
  987. countParams = append(countParams, threeend)
  988. countParams = append(countParams, fourstart)
  989. countParams = append(countParams, fourend)
  990. if orgid > 0 {
  991. db = db.Where("x.org_id=?", orgid)
  992. countSQL += " AND x.org_id=?"
  993. countParams = append(countParams, orgid)
  994. }
  995. if modetype > 0 {
  996. db = db.Where("x.item_id = ?", modetype)
  997. countSQL += " AND x.item_id=?"
  998. countParams = append(countParams, modetype)
  999. }
  1000. if startime > 0 {
  1001. db = db.Where("x.inspect_date >= ?", startime)
  1002. countSQL += " AND x.inspect_date >=?"
  1003. countParams = append(countParams, startime)
  1004. }
  1005. if endtime > 0 {
  1006. db = db.Where("x.inspect_date <= ?", endtime)
  1007. countSQL += " AND x.inspect_date <=?"
  1008. countParams = append(countParams, endtime)
  1009. }
  1010. countSQL += ")a GROUP BY nnd"
  1011. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1012. }
  1013. return
  1014. }
  1015. 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) {
  1016. if lapseto == 0 {
  1017. d := XTReadDB().Table("xt_patients as s")
  1018. fmt.Println("d", d)
  1019. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value<> ''")
  1020. table := XTReadDB().Table("xt_inspection_reference as r")
  1021. q := XTReadDB().Table("xt_quality_control_standard as r")
  1022. fmt.Println("q", q)
  1023. fmt.Println(table)
  1024. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1025. "SELECT " +
  1026. "CASE " +
  1027. " 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 '第一季度'" +
  1028. " 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 '第二季度'" +
  1029. " 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 '第三季度'" +
  1030. " 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 '第四季度'" +
  1031. " ELSE '其他'" +
  1032. "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)"
  1033. countParams := make([]interface{}, 0)
  1034. countParams = append(countParams, firststart)
  1035. countParams = append(countParams, firstend)
  1036. countParams = append(countParams, sencondstart)
  1037. countParams = append(countParams, sencondend)
  1038. countParams = append(countParams, threestart)
  1039. countParams = append(countParams, threeend)
  1040. countParams = append(countParams, fourstart)
  1041. countParams = append(countParams, fourend)
  1042. if orgid > 0 {
  1043. db = db.Where("x.org_id=?", orgid)
  1044. countSQL += " AND x.org_id=?"
  1045. countParams = append(countParams, orgid)
  1046. }
  1047. if orgid > 0 {
  1048. db = db.Where("r.user_org_id=?", orgid)
  1049. countSQL += " AND r.user_org_id=?"
  1050. countParams = append(countParams, orgid)
  1051. }
  1052. if modetype > 0 {
  1053. db = db.Where("x.item_id = ?", modetype)
  1054. countSQL += " AND x.item_id=?"
  1055. countParams = append(countParams, modetype)
  1056. }
  1057. if startime > 0 {
  1058. db = db.Where("x.inspect_date >= ? ", startime)
  1059. countSQL += " AND x.inspect_date >=?"
  1060. countParams = append(countParams, startime)
  1061. }
  1062. if endtime > 0 {
  1063. db = db.Where("x.inspect_date <= ?", endtime)
  1064. countSQL += " AND x.inspect_date <=?"
  1065. countParams = append(countParams, endtime)
  1066. }
  1067. countSQL += ")a GROUP BY nnd"
  1068. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1069. }
  1070. if lapseto == 1 {
  1071. d := XTReadDB().Table("xt_patients as s")
  1072. fmt.Println("d", d)
  1073. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value<> ''")
  1074. table := XTReadDB().Table("xt_inspection_reference as r")
  1075. q := XTReadDB().Table("xt_quality_control_standard as r")
  1076. fmt.Println("q", q)
  1077. fmt.Println(table)
  1078. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1079. "SELECT " +
  1080. "CASE " +
  1081. " 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 '第一季度'" +
  1082. " 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 '第二季度'" +
  1083. " 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 '第三季度'" +
  1084. " 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 '第四季度'" +
  1085. " ELSE '其他'" +
  1086. "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)"
  1087. countParams := make([]interface{}, 0)
  1088. countParams = append(countParams, firststart)
  1089. countParams = append(countParams, firstend)
  1090. countParams = append(countParams, sencondstart)
  1091. countParams = append(countParams, sencondend)
  1092. countParams = append(countParams, threestart)
  1093. countParams = append(countParams, threeend)
  1094. countParams = append(countParams, fourstart)
  1095. countParams = append(countParams, fourend)
  1096. if orgid > 0 {
  1097. db = db.Where("x.org_id=?", orgid)
  1098. countSQL += " AND x.org_id=?"
  1099. countParams = append(countParams, orgid)
  1100. }
  1101. if orgid > 0 {
  1102. db = db.Where("r.user_org_id=?", orgid)
  1103. countSQL += " AND r.user_org_id=?"
  1104. countParams = append(countParams, orgid)
  1105. }
  1106. if modetype > 0 {
  1107. db = db.Where("x.item_id = ?", modetype)
  1108. countSQL += " AND x.item_id=?"
  1109. countParams = append(countParams, modetype)
  1110. }
  1111. if startime > 0 {
  1112. db = db.Where("x.inspect_date >= ? ", startime)
  1113. countSQL += " AND x.inspect_date >=?"
  1114. countParams = append(countParams, startime)
  1115. }
  1116. if endtime > 0 {
  1117. db = db.Where("x.inspect_date <= ?", endtime)
  1118. countSQL += " AND x.inspect_date <=?"
  1119. countParams = append(countParams, endtime)
  1120. }
  1121. countSQL += ")a GROUP BY nnd"
  1122. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1123. }
  1124. return
  1125. }
  1126. 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) {
  1127. if lapseto == 0 {
  1128. d := XTReadDB().Table("xt_patients as s")
  1129. fmt.Println("d", d)
  1130. db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_type = 2")
  1131. table := XTReadDB().Table("xt_inspection_reference as r")
  1132. q := XTReadDB().Table("xt_quality_control_standard as r")
  1133. fmt.Println("q", q)
  1134. fmt.Println(table)
  1135. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1136. "SELECT " +
  1137. "CASE " +
  1138. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第一季度'" +
  1139. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第二季度'" +
  1140. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第三季度'" +
  1141. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第四季度'" +
  1142. " ELSE '其他'" +
  1143. "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) and r.status = 1"
  1144. countParams := make([]interface{}, 0)
  1145. countParams = append(countParams, firststart)
  1146. countParams = append(countParams, firstend)
  1147. countParams = append(countParams, sencondstart)
  1148. countParams = append(countParams, sencondend)
  1149. countParams = append(countParams, threestart)
  1150. countParams = append(countParams, threeend)
  1151. countParams = append(countParams, fourstart)
  1152. countParams = append(countParams, fourend)
  1153. if orgid > 0 {
  1154. db = db.Where("x.org_id=?", orgid)
  1155. countSQL += " AND x.org_id=?"
  1156. countParams = append(countParams, orgid)
  1157. }
  1158. if orgid > 0 {
  1159. db = db.Where("r.user_org_id=?", orgid)
  1160. countSQL += " AND r.user_org_id=?"
  1161. countParams = append(countParams, orgid)
  1162. }
  1163. if modetype > 0 {
  1164. db = db.Where("x.item_id = ?", modetype)
  1165. countSQL += " AND x.item_id=?"
  1166. countParams = append(countParams, modetype)
  1167. }
  1168. if startime > 0 {
  1169. db = db.Where("x.inspect_date >= ? ", startime)
  1170. countSQL += " AND x.inspect_date >=?"
  1171. countParams = append(countParams, startime)
  1172. }
  1173. if endtime > 0 {
  1174. db = db.Where("x.inspect_date <= ?", endtime)
  1175. countSQL += " AND x.inspect_date <=?"
  1176. countParams = append(countParams, endtime)
  1177. }
  1178. countSQL += ")a GROUP BY nnd"
  1179. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1180. }
  1181. if lapseto == 1 {
  1182. d := XTReadDB().Table("xt_patients as s")
  1183. fmt.Println("d", d)
  1184. db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_type = 2")
  1185. table := XTReadDB().Table("xt_inspection_reference as r")
  1186. q := XTReadDB().Table("xt_quality_control_standard as r")
  1187. fmt.Println("q", q)
  1188. fmt.Println(table)
  1189. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1190. "SELECT " +
  1191. "CASE " +
  1192. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第一季度'" +
  1193. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第二季度'" +
  1194. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第三季度'" +
  1195. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第四季度'" +
  1196. " ELSE '其他'" +
  1197. "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) and r.status = 1"
  1198. countParams := make([]interface{}, 0)
  1199. countParams = append(countParams, firststart)
  1200. countParams = append(countParams, firstend)
  1201. countParams = append(countParams, sencondstart)
  1202. countParams = append(countParams, sencondend)
  1203. countParams = append(countParams, threestart)
  1204. countParams = append(countParams, threeend)
  1205. countParams = append(countParams, fourstart)
  1206. countParams = append(countParams, fourend)
  1207. if orgid > 0 {
  1208. db = db.Where("x.org_id=?", orgid)
  1209. countSQL += " AND x.org_id=?"
  1210. countParams = append(countParams, orgid)
  1211. }
  1212. if orgid > 0 {
  1213. db = db.Where("r.user_org_id=?", orgid)
  1214. countSQL += " AND r.user_org_id=?"
  1215. countParams = append(countParams, orgid)
  1216. }
  1217. if modetype > 0 {
  1218. db = db.Where("x.item_id = ?", modetype)
  1219. countSQL += " AND x.item_id=?"
  1220. countParams = append(countParams, modetype)
  1221. }
  1222. if startime > 0 {
  1223. db = db.Where("x.inspect_date >= ? ", startime)
  1224. countSQL += " AND x.inspect_date >=?"
  1225. countParams = append(countParams, startime)
  1226. }
  1227. if endtime > 0 {
  1228. db = db.Where("x.inspect_date <= ?", endtime)
  1229. countSQL += " AND x.inspect_date <=?"
  1230. countParams = append(countParams, endtime)
  1231. }
  1232. countSQL += ")a GROUP BY nnd"
  1233. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1234. }
  1235. return
  1236. }
  1237. 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) {
  1238. if lapseto == 0 {
  1239. d := XTReadDB().Table("xt_patients as s")
  1240. fmt.Println("d", d)
  1241. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0 and x.inspect_type = 1")
  1242. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1243. "SELECT " +
  1244. "CASE " +
  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. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1253. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1254. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1255. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1256. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1257. " ELSE '其他'" +
  1258. "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)"
  1259. countParams := make([]interface{}, 0)
  1260. countParams = append(countParams, januaryStartStrUnix)
  1261. countParams = append(countParams, januaryEndStrUnix)
  1262. countParams = append(countParams, febStartStrStrUnix)
  1263. countParams = append(countParams, febEndStrUnix)
  1264. countParams = append(countParams, marchStartStrUnix)
  1265. countParams = append(countParams, marchEndStrUnix)
  1266. countParams = append(countParams, aprStartStrUnix)
  1267. countParams = append(countParams, aprEndStrsUnix)
  1268. countParams = append(countParams, mayStartStrUnix)
  1269. countParams = append(countParams, mayEndStrsUnix)
  1270. countParams = append(countParams, junStartStrUnix)
  1271. countParams = append(countParams, junEndStrsUnix)
  1272. countParams = append(countParams, julStartStrUnix)
  1273. countParams = append(countParams, julEndStrsUnix)
  1274. countParams = append(countParams, augStartStrUnix)
  1275. countParams = append(countParams, augEndStrsUnix)
  1276. countParams = append(countParams, sepStartStrUnix)
  1277. countParams = append(countParams, sepEndStrsUnix)
  1278. countParams = append(countParams, octStartStrUnix)
  1279. countParams = append(countParams, octEndStrsUnix)
  1280. countParams = append(countParams, novStartStrUnix)
  1281. countParams = append(countParams, novEndStrsUnix)
  1282. countParams = append(countParams, decStartStrUnix)
  1283. countParams = append(countParams, decEndStrsUnix)
  1284. if orgid > 0 {
  1285. db = db.Where("x.org_id=?", orgid)
  1286. countSQL += " AND x.org_id=?"
  1287. countParams = append(countParams, orgid)
  1288. }
  1289. if modetype > 0 {
  1290. db = db.Where("x.item_id = ?", modetype)
  1291. countSQL += " AND x.item_id=?"
  1292. countParams = append(countParams, modetype)
  1293. }
  1294. if januaryStartStrUnix > 0 {
  1295. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1296. countSQL += " AND x.inspect_date >=?"
  1297. countParams = append(countParams, januaryStartStrUnix)
  1298. }
  1299. if decEndStrsUnix > 0 {
  1300. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1301. countSQL += " AND x.inspect_date <=?"
  1302. countParams = append(countParams, decEndStrsUnix)
  1303. }
  1304. countSQL += ")a GROUP BY nnd"
  1305. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1306. }
  1307. if lapseto == 1 {
  1308. d := XTReadDB().Table("xt_patients as s")
  1309. fmt.Println("d", d)
  1310. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0 and x.inspect_type = 1 ")
  1311. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1312. "SELECT " +
  1313. "CASE " +
  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. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1325. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1326. " ELSE '其他'" +
  1327. "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)"
  1328. countParams := make([]interface{}, 0)
  1329. countParams = append(countParams, januaryStartStrUnix)
  1330. countParams = append(countParams, januaryEndStrUnix)
  1331. countParams = append(countParams, febStartStrStrUnix)
  1332. countParams = append(countParams, febEndStrUnix)
  1333. countParams = append(countParams, marchStartStrUnix)
  1334. countParams = append(countParams, marchEndStrUnix)
  1335. countParams = append(countParams, aprStartStrUnix)
  1336. countParams = append(countParams, aprEndStrsUnix)
  1337. countParams = append(countParams, mayStartStrUnix)
  1338. countParams = append(countParams, mayEndStrsUnix)
  1339. countParams = append(countParams, junStartStrUnix)
  1340. countParams = append(countParams, junEndStrsUnix)
  1341. countParams = append(countParams, julStartStrUnix)
  1342. countParams = append(countParams, julEndStrsUnix)
  1343. countParams = append(countParams, augStartStrUnix)
  1344. countParams = append(countParams, augEndStrsUnix)
  1345. countParams = append(countParams, sepStartStrUnix)
  1346. countParams = append(countParams, sepEndStrsUnix)
  1347. countParams = append(countParams, octStartStrUnix)
  1348. countParams = append(countParams, octEndStrsUnix)
  1349. countParams = append(countParams, novStartStrUnix)
  1350. countParams = append(countParams, novEndStrsUnix)
  1351. countParams = append(countParams, decStartStrUnix)
  1352. countParams = append(countParams, decEndStrsUnix)
  1353. if orgid > 0 {
  1354. db = db.Where("x.org_id=?", orgid)
  1355. countSQL += " AND x.org_id=?"
  1356. countParams = append(countParams, orgid)
  1357. }
  1358. if modetype > 0 {
  1359. db = db.Where("x.item_id = ?", modetype)
  1360. countSQL += " AND x.item_id=?"
  1361. countParams = append(countParams, modetype)
  1362. }
  1363. if januaryStartStrUnix > 0 {
  1364. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1365. countSQL += " AND x.inspect_date >=?"
  1366. countParams = append(countParams, januaryStartStrUnix)
  1367. }
  1368. if decEndStrsUnix > 0 {
  1369. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1370. countSQL += " AND x.inspect_date <=?"
  1371. countParams = append(countParams, decEndStrsUnix)
  1372. }
  1373. countSQL += ")a GROUP BY nnd"
  1374. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1375. }
  1376. if lapseto == 2 {
  1377. d := XTReadDB().Table("xt_patients as s")
  1378. fmt.Println("d", d)
  1379. db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_value <> 0 and x.inspect_type = 1")
  1380. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1381. "SELECT " +
  1382. "CASE " +
  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. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1394. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1395. " ELSE '其他'" +
  1396. "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)"
  1397. countParams := make([]interface{}, 0)
  1398. countParams = append(countParams, januaryStartStrUnix)
  1399. countParams = append(countParams, januaryEndStrUnix)
  1400. countParams = append(countParams, febStartStrStrUnix)
  1401. countParams = append(countParams, febEndStrUnix)
  1402. countParams = append(countParams, marchStartStrUnix)
  1403. countParams = append(countParams, marchEndStrUnix)
  1404. countParams = append(countParams, aprStartStrUnix)
  1405. countParams = append(countParams, aprEndStrsUnix)
  1406. countParams = append(countParams, mayStartStrUnix)
  1407. countParams = append(countParams, mayEndStrsUnix)
  1408. countParams = append(countParams, junStartStrUnix)
  1409. countParams = append(countParams, junEndStrsUnix)
  1410. countParams = append(countParams, julStartStrUnix)
  1411. countParams = append(countParams, julEndStrsUnix)
  1412. countParams = append(countParams, augStartStrUnix)
  1413. countParams = append(countParams, augEndStrsUnix)
  1414. countParams = append(countParams, sepStartStrUnix)
  1415. countParams = append(countParams, sepEndStrsUnix)
  1416. countParams = append(countParams, octStartStrUnix)
  1417. countParams = append(countParams, octEndStrsUnix)
  1418. countParams = append(countParams, novStartStrUnix)
  1419. countParams = append(countParams, novEndStrsUnix)
  1420. countParams = append(countParams, decStartStrUnix)
  1421. countParams = append(countParams, decEndStrsUnix)
  1422. if orgid > 0 {
  1423. db = db.Where("x.org_id=?", orgid)
  1424. countSQL += " AND x.org_id=?"
  1425. countParams = append(countParams, orgid)
  1426. }
  1427. if modetype > 0 {
  1428. db = db.Where("x.item_id = ?", modetype)
  1429. countSQL += " AND x.item_id=?"
  1430. countParams = append(countParams, modetype)
  1431. }
  1432. if januaryStartStrUnix > 0 {
  1433. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1434. countSQL += " AND x.inspect_date >=?"
  1435. countParams = append(countParams, januaryStartStrUnix)
  1436. }
  1437. if decEndStrsUnix > 0 {
  1438. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1439. countSQL += " AND x.inspect_date <=?"
  1440. countParams = append(countParams, decEndStrsUnix)
  1441. }
  1442. countSQL += ")a GROUP BY nnd"
  1443. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1444. }
  1445. return
  1446. }
  1447. 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) {
  1448. if lapseto == 0 {
  1449. d := XTReadDB().Table("xt_patients as s")
  1450. fmt.Println("d", d)
  1451. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1452. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1453. "SELECT " +
  1454. "CASE " +
  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. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1463. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1464. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1465. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1466. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1467. " ELSE '其他'" +
  1468. "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)"
  1469. countParams := make([]interface{}, 0)
  1470. countParams = append(countParams, januaryStartStrUnix)
  1471. countParams = append(countParams, januaryEndStrUnix)
  1472. countParams = append(countParams, febStartStrStrUnix)
  1473. countParams = append(countParams, febEndStrUnix)
  1474. countParams = append(countParams, marchStartStrUnix)
  1475. countParams = append(countParams, marchEndStrUnix)
  1476. countParams = append(countParams, aprStartStrUnix)
  1477. countParams = append(countParams, aprEndStrsUnix)
  1478. countParams = append(countParams, mayStartStrUnix)
  1479. countParams = append(countParams, mayEndStrsUnix)
  1480. countParams = append(countParams, junStartStrUnix)
  1481. countParams = append(countParams, junEndStrsUnix)
  1482. countParams = append(countParams, julStartStrUnix)
  1483. countParams = append(countParams, julEndStrsUnix)
  1484. countParams = append(countParams, augStartStrUnix)
  1485. countParams = append(countParams, augEndStrsUnix)
  1486. countParams = append(countParams, sepStartStrUnix)
  1487. countParams = append(countParams, sepEndStrsUnix)
  1488. countParams = append(countParams, octStartStrUnix)
  1489. countParams = append(countParams, octEndStrsUnix)
  1490. countParams = append(countParams, novStartStrUnix)
  1491. countParams = append(countParams, novEndStrsUnix)
  1492. countParams = append(countParams, decStartStrUnix)
  1493. countParams = append(countParams, decEndStrsUnix)
  1494. if orgid > 0 {
  1495. db = db.Where("x.org_id=?", orgid)
  1496. countSQL += " AND x.org_id=?"
  1497. countParams = append(countParams, orgid)
  1498. }
  1499. if modetype > 0 {
  1500. db = db.Where("x.item_id = ?", modetype)
  1501. countSQL += " AND x.item_id=?"
  1502. countParams = append(countParams, modetype)
  1503. }
  1504. if januaryStartStrUnix > 0 {
  1505. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1506. countSQL += " AND x.inspect_date >=?"
  1507. countParams = append(countParams, januaryStartStrUnix)
  1508. }
  1509. if decEndStrsUnix > 0 {
  1510. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1511. countSQL += " AND x.inspect_date <=?"
  1512. countParams = append(countParams, decEndStrsUnix)
  1513. }
  1514. countSQL += ")a GROUP BY nnd"
  1515. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1516. }
  1517. if lapseto == 1 {
  1518. d := XTReadDB().Table("xt_patients as s")
  1519. fmt.Println("d", d)
  1520. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and and x.inspect_type = 2")
  1521. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1522. "SELECT " +
  1523. "CASE " +
  1524. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
  1525. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
  1526. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
  1527. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
  1528. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
  1529. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
  1530. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
  1531. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1532. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1533. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1534. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1535. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1536. " ELSE '其他'" +
  1537. "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)"
  1538. countParams := make([]interface{}, 0)
  1539. countParams = append(countParams, januaryStartStrUnix)
  1540. countParams = append(countParams, januaryEndStrUnix)
  1541. countParams = append(countParams, febStartStrStrUnix)
  1542. countParams = append(countParams, febEndStrUnix)
  1543. countParams = append(countParams, marchStartStrUnix)
  1544. countParams = append(countParams, marchEndStrUnix)
  1545. countParams = append(countParams, aprStartStrUnix)
  1546. countParams = append(countParams, aprEndStrsUnix)
  1547. countParams = append(countParams, mayStartStrUnix)
  1548. countParams = append(countParams, mayEndStrsUnix)
  1549. countParams = append(countParams, junStartStrUnix)
  1550. countParams = append(countParams, junEndStrsUnix)
  1551. countParams = append(countParams, julStartStrUnix)
  1552. countParams = append(countParams, julEndStrsUnix)
  1553. countParams = append(countParams, augStartStrUnix)
  1554. countParams = append(countParams, augEndStrsUnix)
  1555. countParams = append(countParams, sepStartStrUnix)
  1556. countParams = append(countParams, sepEndStrsUnix)
  1557. countParams = append(countParams, octStartStrUnix)
  1558. countParams = append(countParams, octEndStrsUnix)
  1559. countParams = append(countParams, novStartStrUnix)
  1560. countParams = append(countParams, novEndStrsUnix)
  1561. countParams = append(countParams, decStartStrUnix)
  1562. countParams = append(countParams, decEndStrsUnix)
  1563. if orgid > 0 {
  1564. db = db.Where("x.org_id=?", orgid)
  1565. countSQL += " AND x.org_id=?"
  1566. countParams = append(countParams, orgid)
  1567. }
  1568. if modetype > 0 {
  1569. db = db.Where("x.item_id = ?", modetype)
  1570. countSQL += " AND x.item_id=?"
  1571. countParams = append(countParams, modetype)
  1572. }
  1573. if januaryStartStrUnix > 0 {
  1574. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1575. countSQL += " AND x.inspect_date >=?"
  1576. countParams = append(countParams, januaryStartStrUnix)
  1577. }
  1578. if decEndStrsUnix > 0 {
  1579. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1580. countSQL += " AND x.inspect_date <=?"
  1581. countParams = append(countParams, decEndStrsUnix)
  1582. }
  1583. countSQL += ")a GROUP BY nnd"
  1584. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1585. }
  1586. if lapseto == 2 {
  1587. d := XTReadDB().Table("xt_patients as s")
  1588. fmt.Println("d", d)
  1589. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1590. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1591. "SELECT " +
  1592. "CASE " +
  1593. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
  1594. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
  1595. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
  1596. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
  1597. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
  1598. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
  1599. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
  1600. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
  1601. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
  1602. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
  1603. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
  1604. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
  1605. " ELSE '其他'" +
  1606. "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)"
  1607. countParams := make([]interface{}, 0)
  1608. countParams = append(countParams, januaryStartStrUnix)
  1609. countParams = append(countParams, januaryEndStrUnix)
  1610. countParams = append(countParams, febStartStrStrUnix)
  1611. countParams = append(countParams, febEndStrUnix)
  1612. countParams = append(countParams, marchStartStrUnix)
  1613. countParams = append(countParams, marchEndStrUnix)
  1614. countParams = append(countParams, aprStartStrUnix)
  1615. countParams = append(countParams, aprEndStrsUnix)
  1616. countParams = append(countParams, mayStartStrUnix)
  1617. countParams = append(countParams, mayEndStrsUnix)
  1618. countParams = append(countParams, junStartStrUnix)
  1619. countParams = append(countParams, junEndStrsUnix)
  1620. countParams = append(countParams, julStartStrUnix)
  1621. countParams = append(countParams, julEndStrsUnix)
  1622. countParams = append(countParams, augStartStrUnix)
  1623. countParams = append(countParams, augEndStrsUnix)
  1624. countParams = append(countParams, sepStartStrUnix)
  1625. countParams = append(countParams, sepEndStrsUnix)
  1626. countParams = append(countParams, octStartStrUnix)
  1627. countParams = append(countParams, octEndStrsUnix)
  1628. countParams = append(countParams, novStartStrUnix)
  1629. countParams = append(countParams, novEndStrsUnix)
  1630. countParams = append(countParams, decStartStrUnix)
  1631. countParams = append(countParams, decEndStrsUnix)
  1632. if orgid > 0 {
  1633. db = db.Where("x.org_id=?", orgid)
  1634. countSQL += " AND x.org_id=?"
  1635. countParams = append(countParams, orgid)
  1636. }
  1637. if modetype > 0 {
  1638. db = db.Where("x.item_id = ?", modetype)
  1639. countSQL += " AND x.item_id=?"
  1640. countParams = append(countParams, modetype)
  1641. }
  1642. if januaryStartStrUnix > 0 {
  1643. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1644. countSQL += " AND x.inspect_date >=?"
  1645. countParams = append(countParams, januaryStartStrUnix)
  1646. }
  1647. if decEndStrsUnix > 0 {
  1648. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1649. countSQL += " AND x.inspect_date <=?"
  1650. countParams = append(countParams, decEndStrsUnix)
  1651. }
  1652. countSQL += ")a GROUP BY nnd"
  1653. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1654. }
  1655. return
  1656. }
  1657. 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) {
  1658. if lapseto == 0 {
  1659. d := XTReadDB().Table("xt_patients as s")
  1660. fmt.Println("d", d)
  1661. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1662. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1663. "SELECT " +
  1664. "CASE " +
  1665. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  1666. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  1667. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  1668. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  1669. " ELSE '其他'" +
  1670. "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)"
  1671. countParams := make([]interface{}, 0)
  1672. countParams = append(countParams, firststart)
  1673. countParams = append(countParams, firstend)
  1674. countParams = append(countParams, sencondstart)
  1675. countParams = append(countParams, sencondend)
  1676. countParams = append(countParams, threestart)
  1677. countParams = append(countParams, threeend)
  1678. countParams = append(countParams, fourstart)
  1679. countParams = append(countParams, fourend)
  1680. if orgid > 0 {
  1681. db = db.Where("x.org_id=?", orgid)
  1682. countSQL += " AND x.org_id=?"
  1683. countParams = append(countParams, orgid)
  1684. }
  1685. if modetype > 0 {
  1686. db = db.Where("x.item_id = ?", modetype)
  1687. countSQL += " AND x.item_id=?"
  1688. countParams = append(countParams, modetype)
  1689. }
  1690. if startime > 0 {
  1691. db = db.Where("x.inspect_date >= ?", startime)
  1692. countSQL += " AND x.inspect_date >=?"
  1693. countParams = append(countParams, startime)
  1694. }
  1695. if endtime > 0 {
  1696. db = db.Where("x.inspect_date <= ?", endtime)
  1697. countSQL += " AND x.inspect_date <=?"
  1698. countParams = append(countParams, endtime)
  1699. }
  1700. countSQL += ")a GROUP BY nnd"
  1701. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1702. }
  1703. if lapseto == 1 {
  1704. d := XTReadDB().Table("xt_patients as s")
  1705. fmt.Println("d", d)
  1706. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  1707. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1708. "SELECT " +
  1709. "CASE " +
  1710. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  1711. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  1712. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  1713. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  1714. " ELSE '其他'" +
  1715. "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)"
  1716. countParams := make([]interface{}, 0)
  1717. countParams = append(countParams, firststart)
  1718. countParams = append(countParams, firstend)
  1719. countParams = append(countParams, sencondstart)
  1720. countParams = append(countParams, sencondend)
  1721. countParams = append(countParams, threestart)
  1722. countParams = append(countParams, threeend)
  1723. countParams = append(countParams, fourstart)
  1724. countParams = append(countParams, fourend)
  1725. if orgid > 0 {
  1726. db = db.Where("x.org_id=?", orgid)
  1727. countSQL += " AND x.org_id=?"
  1728. countParams = append(countParams, orgid)
  1729. }
  1730. if modetype > 0 {
  1731. db = db.Where("x.item_id = ?", modetype)
  1732. countSQL += " AND x.item_id=?"
  1733. countParams = append(countParams, modetype)
  1734. }
  1735. if startime > 0 {
  1736. db = db.Where("x.inspect_date >= ?", startime)
  1737. countSQL += " AND x.inspect_date >=?"
  1738. countParams = append(countParams, startime)
  1739. }
  1740. if endtime > 0 {
  1741. db = db.Where("x.inspect_date <= ?", endtime)
  1742. countSQL += " AND x.inspect_date <=?"
  1743. countParams = append(countParams, endtime)
  1744. }
  1745. countSQL += ")a GROUP BY nnd"
  1746. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1747. }
  1748. if lapseto == 2 {
  1749. d := XTReadDB().Table("xt_patients as s")
  1750. fmt.Println("d", d)
  1751. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  1752. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1753. "SELECT " +
  1754. "CASE " +
  1755. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
  1756. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
  1757. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
  1758. " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
  1759. " ELSE '其他'" +
  1760. "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)"
  1761. countParams := make([]interface{}, 0)
  1762. countParams = append(countParams, firststart)
  1763. countParams = append(countParams, firstend)
  1764. countParams = append(countParams, sencondstart)
  1765. countParams = append(countParams, sencondend)
  1766. countParams = append(countParams, threestart)
  1767. countParams = append(countParams, threeend)
  1768. countParams = append(countParams, fourstart)
  1769. countParams = append(countParams, fourend)
  1770. if orgid > 0 {
  1771. db = db.Where("x.org_id=?", orgid)
  1772. countSQL += " AND x.org_id=?"
  1773. countParams = append(countParams, orgid)
  1774. }
  1775. if modetype > 0 {
  1776. db = db.Where("x.item_id = ?", modetype)
  1777. countSQL += " AND x.item_id=?"
  1778. countParams = append(countParams, modetype)
  1779. }
  1780. if startime > 0 {
  1781. db = db.Where("x.inspect_date >= ?", startime)
  1782. countSQL += " AND x.inspect_date >=?"
  1783. countParams = append(countParams, startime)
  1784. }
  1785. if endtime > 0 {
  1786. db = db.Where("x.inspect_date <= ?", endtime)
  1787. countSQL += " AND x.inspect_date <=?"
  1788. countParams = append(countParams, endtime)
  1789. }
  1790. countSQL += ")a GROUP BY nnd"
  1791. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1792. }
  1793. return
  1794. }
  1795. 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) {
  1796. if lapseto == 0 {
  1797. d := XTReadDB().Table("xt_patients as s")
  1798. fmt.Println("d", d)
  1799. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 1")
  1800. table := XTReadDB().Table("xt_quality_control_standard as r")
  1801. fmt.Println(table)
  1802. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1803. "SELECT " +
  1804. "CASE " +
  1805. " 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 '一月'" +
  1806. " 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 '二月'" +
  1807. " 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 '三月'" +
  1808. " 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 '四月'" +
  1809. " 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 '五月'" +
  1810. " 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 '六月'" +
  1811. " 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 '七月'" +
  1812. " 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 '八月'" +
  1813. " 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 '九月'" +
  1814. " 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 '十月'" +
  1815. " 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 '十一月'" +
  1816. " 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 '十二月'" +
  1817. " ELSE '其他'" +
  1818. "END AS nnd FROM xt_inspection as x 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 +0 >= r.min_range +0 and x.inspect_value +0 <= r.large_range +0 )"
  1819. countParams := make([]interface{}, 0)
  1820. countParams = append(countParams, januaryStartStrUnix)
  1821. countParams = append(countParams, januaryEndStrUnix)
  1822. countParams = append(countParams, febStartStrStrUnix)
  1823. countParams = append(countParams, febEndStrUnix)
  1824. countParams = append(countParams, marchStartStrUnix)
  1825. countParams = append(countParams, marchEndStrUnix)
  1826. countParams = append(countParams, aprStartStrUnix)
  1827. countParams = append(countParams, aprEndStrsUnix)
  1828. countParams = append(countParams, mayStartStrUnix)
  1829. countParams = append(countParams, mayEndStrsUnix)
  1830. countParams = append(countParams, junStartStrUnix)
  1831. countParams = append(countParams, junEndStrsUnix)
  1832. countParams = append(countParams, julStartStrUnix)
  1833. countParams = append(countParams, julEndStrsUnix)
  1834. countParams = append(countParams, augStartStrUnix)
  1835. countParams = append(countParams, augEndStrsUnix)
  1836. countParams = append(countParams, sepStartStrUnix)
  1837. countParams = append(countParams, sepEndStrsUnix)
  1838. countParams = append(countParams, octStartStrUnix)
  1839. countParams = append(countParams, octEndStrsUnix)
  1840. countParams = append(countParams, novStartStrUnix)
  1841. countParams = append(countParams, novEndStrsUnix)
  1842. countParams = append(countParams, decStartStrUnix)
  1843. countParams = append(countParams, decEndStrsUnix)
  1844. if orgid > 0 {
  1845. db = db.Where("x.org_id=?", orgid)
  1846. countSQL += " AND x.org_id=?"
  1847. countParams = append(countParams, orgid)
  1848. }
  1849. if orgid > 0 {
  1850. db = db.Where("r.user_org_id=?", orgid)
  1851. countSQL += " AND r.user_org_id=?"
  1852. countParams = append(countParams, orgid)
  1853. }
  1854. if modetype > 0 {
  1855. db = db.Where("x.item_id = ?", modetype)
  1856. countSQL += " AND x.item_id=?"
  1857. countParams = append(countParams, modetype)
  1858. }
  1859. if januaryStartStrUnix > 0 {
  1860. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1861. countSQL += " AND x.inspect_date >=?"
  1862. countParams = append(countParams, januaryStartStrUnix)
  1863. }
  1864. if decEndStrsUnix > 0 {
  1865. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1866. countSQL += " AND x.inspect_date <=?"
  1867. countParams = append(countParams, decEndStrsUnix)
  1868. }
  1869. countSQL += ")a GROUP BY nnd"
  1870. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1871. }
  1872. if lapseto == 1 {
  1873. d := XTReadDB().Table("xt_patients as s")
  1874. fmt.Println("d", d)
  1875. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 1")
  1876. table := XTReadDB().Table("xt_quality_control_standard as r")
  1877. fmt.Println(table)
  1878. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1879. "SELECT " +
  1880. "CASE " +
  1881. " 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 '一月'" +
  1882. " 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 '二月'" +
  1883. " 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 '三月'" +
  1884. " 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 '四月'" +
  1885. " 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 '五月'" +
  1886. " 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 '六月'" +
  1887. " 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 '七月'" +
  1888. " 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 '八月'" +
  1889. " 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 '九月'" +
  1890. " 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 '十月'" +
  1891. " 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 '十一月'" +
  1892. " 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 '十二月'" +
  1893. " ELSE '其他'" +
  1894. "END AS nnd FROM xt_inspection as x 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) and (x.inspect_value +0 >= r.min_range +0 and x.inspect_value +0 <= r.large_range +0 )"
  1895. countParams := make([]interface{}, 0)
  1896. countParams = append(countParams, januaryStartStrUnix)
  1897. countParams = append(countParams, januaryEndStrUnix)
  1898. countParams = append(countParams, febStartStrStrUnix)
  1899. countParams = append(countParams, febEndStrUnix)
  1900. countParams = append(countParams, marchStartStrUnix)
  1901. countParams = append(countParams, marchEndStrUnix)
  1902. countParams = append(countParams, aprStartStrUnix)
  1903. countParams = append(countParams, aprEndStrsUnix)
  1904. countParams = append(countParams, mayStartStrUnix)
  1905. countParams = append(countParams, mayEndStrsUnix)
  1906. countParams = append(countParams, junStartStrUnix)
  1907. countParams = append(countParams, junEndStrsUnix)
  1908. countParams = append(countParams, julStartStrUnix)
  1909. countParams = append(countParams, julEndStrsUnix)
  1910. countParams = append(countParams, augStartStrUnix)
  1911. countParams = append(countParams, augEndStrsUnix)
  1912. countParams = append(countParams, sepStartStrUnix)
  1913. countParams = append(countParams, sepEndStrsUnix)
  1914. countParams = append(countParams, octStartStrUnix)
  1915. countParams = append(countParams, octEndStrsUnix)
  1916. countParams = append(countParams, novStartStrUnix)
  1917. countParams = append(countParams, novEndStrsUnix)
  1918. countParams = append(countParams, decStartStrUnix)
  1919. countParams = append(countParams, decEndStrsUnix)
  1920. if orgid > 0 {
  1921. db = db.Where("x.org_id=?", orgid)
  1922. countSQL += " AND x.org_id=?"
  1923. countParams = append(countParams, orgid)
  1924. }
  1925. if orgid > 0 {
  1926. db = db.Where("r.user_org_id=?", orgid)
  1927. countSQL += " AND r.user_org_id=?"
  1928. countParams = append(countParams, orgid)
  1929. }
  1930. if modetype > 0 {
  1931. db = db.Where("x.item_id = ?", modetype)
  1932. countSQL += " AND x.item_id=?"
  1933. countParams = append(countParams, modetype)
  1934. }
  1935. if januaryStartStrUnix > 0 {
  1936. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  1937. countSQL += " AND x.inspect_date >=?"
  1938. countParams = append(countParams, januaryStartStrUnix)
  1939. }
  1940. if decEndStrsUnix > 0 {
  1941. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  1942. countSQL += " AND x.inspect_date <=?"
  1943. countParams = append(countParams, decEndStrsUnix)
  1944. }
  1945. countSQL += ")a GROUP BY nnd"
  1946. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  1947. }
  1948. if lapseto == 2 {
  1949. d := XTReadDB().Table("xt_patients as s")
  1950. fmt.Println("d", d)
  1951. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 1")
  1952. table := XTReadDB().Table("xt_quality_control_standard as r")
  1953. fmt.Println(table)
  1954. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  1955. "SELECT " +
  1956. "CASE " +
  1957. " 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 '一月'" +
  1958. " 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 '二月'" +
  1959. " 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 '三月'" +
  1960. " 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 '四月'" +
  1961. " 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 '五月'" +
  1962. " 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 '六月'" +
  1963. " 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 '七月'" +
  1964. " 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 '八月'" +
  1965. " 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 '九月'" +
  1966. " 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 '十月'" +
  1967. " 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 '十一月'" +
  1968. " 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 '十二月'" +
  1969. " ELSE '其他'" +
  1970. "END AS nnd FROM xt_inspection as x 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 = 2) and (x.inspect_value +0 >= r.min_range +0 and x.inspect_value +0 <= r.large_range +0 )"
  1971. countParams := make([]interface{}, 0)
  1972. countParams = append(countParams, januaryStartStrUnix)
  1973. countParams = append(countParams, januaryEndStrUnix)
  1974. countParams = append(countParams, febStartStrStrUnix)
  1975. countParams = append(countParams, febEndStrUnix)
  1976. countParams = append(countParams, marchStartStrUnix)
  1977. countParams = append(countParams, marchEndStrUnix)
  1978. countParams = append(countParams, aprStartStrUnix)
  1979. countParams = append(countParams, aprEndStrsUnix)
  1980. countParams = append(countParams, mayStartStrUnix)
  1981. countParams = append(countParams, mayEndStrsUnix)
  1982. countParams = append(countParams, junStartStrUnix)
  1983. countParams = append(countParams, junEndStrsUnix)
  1984. countParams = append(countParams, julStartStrUnix)
  1985. countParams = append(countParams, julEndStrsUnix)
  1986. countParams = append(countParams, augStartStrUnix)
  1987. countParams = append(countParams, augEndStrsUnix)
  1988. countParams = append(countParams, sepStartStrUnix)
  1989. countParams = append(countParams, sepEndStrsUnix)
  1990. countParams = append(countParams, octStartStrUnix)
  1991. countParams = append(countParams, octEndStrsUnix)
  1992. countParams = append(countParams, novStartStrUnix)
  1993. countParams = append(countParams, novEndStrsUnix)
  1994. countParams = append(countParams, decStartStrUnix)
  1995. countParams = append(countParams, decEndStrsUnix)
  1996. if orgid > 0 {
  1997. db = db.Where("x.org_id=?", orgid)
  1998. countSQL += " AND x.org_id=?"
  1999. countParams = append(countParams, orgid)
  2000. }
  2001. if orgid > 0 {
  2002. db = db.Where("r.user_org_id=?", orgid)
  2003. countSQL += " AND r.user_org_id=?"
  2004. countParams = append(countParams, orgid)
  2005. }
  2006. if modetype > 0 {
  2007. db = db.Where("x.item_id = ?", modetype)
  2008. countSQL += " AND x.item_id=?"
  2009. countParams = append(countParams, modetype)
  2010. }
  2011. if januaryStartStrUnix > 0 {
  2012. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  2013. countSQL += " AND x.inspect_date >=?"
  2014. countParams = append(countParams, januaryStartStrUnix)
  2015. }
  2016. if decEndStrsUnix > 0 {
  2017. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  2018. countSQL += " AND x.inspect_date <=?"
  2019. countParams = append(countParams, decEndStrsUnix)
  2020. }
  2021. countSQL += ")a GROUP BY nnd"
  2022. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2023. }
  2024. return
  2025. }
  2026. 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) {
  2027. if lapseto == 0 {
  2028. d := XTReadDB().Table("xt_patients as s")
  2029. fmt.Println("d", d)
  2030. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  2031. table := XTReadDB().Table("xt_quality_control_standard as r")
  2032. fmt.Println(table)
  2033. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  2034. "SELECT " +
  2035. "CASE " +
  2036. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '一月'" +
  2037. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '二月'" +
  2038. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '三月'" +
  2039. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '四月'" +
  2040. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '五月'" +
  2041. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '六月'" +
  2042. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '七月'" +
  2043. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '八月'" +
  2044. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '九月'" +
  2045. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十月'" +
  2046. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十一月'" +
  2047. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十二月'" +
  2048. " ELSE '其他'" +
  2049. "END AS nnd FROM xt_inspection as x 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)"
  2050. countParams := make([]interface{}, 0)
  2051. countParams = append(countParams, januaryStartStrUnix)
  2052. countParams = append(countParams, januaryEndStrUnix)
  2053. countParams = append(countParams, febStartStrStrUnix)
  2054. countParams = append(countParams, febEndStrUnix)
  2055. countParams = append(countParams, marchStartStrUnix)
  2056. countParams = append(countParams, marchEndStrUnix)
  2057. countParams = append(countParams, aprStartStrUnix)
  2058. countParams = append(countParams, aprEndStrsUnix)
  2059. countParams = append(countParams, mayStartStrUnix)
  2060. countParams = append(countParams, mayEndStrsUnix)
  2061. countParams = append(countParams, junStartStrUnix)
  2062. countParams = append(countParams, junEndStrsUnix)
  2063. countParams = append(countParams, julStartStrUnix)
  2064. countParams = append(countParams, julEndStrsUnix)
  2065. countParams = append(countParams, augStartStrUnix)
  2066. countParams = append(countParams, augEndStrsUnix)
  2067. countParams = append(countParams, sepStartStrUnix)
  2068. countParams = append(countParams, sepEndStrsUnix)
  2069. countParams = append(countParams, octStartStrUnix)
  2070. countParams = append(countParams, octEndStrsUnix)
  2071. countParams = append(countParams, novStartStrUnix)
  2072. countParams = append(countParams, novEndStrsUnix)
  2073. countParams = append(countParams, decStartStrUnix)
  2074. countParams = append(countParams, decEndStrsUnix)
  2075. if orgid > 0 {
  2076. db = db.Where("x.org_id=?", orgid)
  2077. countSQL += " AND x.org_id=?"
  2078. countParams = append(countParams, orgid)
  2079. }
  2080. if orgid > 0 {
  2081. db = db.Where("r.user_org_id=?", orgid)
  2082. countSQL += " AND r.user_org_id=?"
  2083. countParams = append(countParams, orgid)
  2084. }
  2085. if modetype > 0 {
  2086. db = db.Where("x.item_id = ?", modetype)
  2087. countSQL += " AND x.item_id=?"
  2088. countParams = append(countParams, modetype)
  2089. }
  2090. if januaryStartStrUnix > 0 {
  2091. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  2092. countSQL += " AND x.inspect_date >=?"
  2093. countParams = append(countParams, januaryStartStrUnix)
  2094. }
  2095. if decEndStrsUnix > 0 {
  2096. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  2097. countSQL += " AND x.inspect_date <=?"
  2098. countParams = append(countParams, decEndStrsUnix)
  2099. }
  2100. countSQL += ")a GROUP BY nnd"
  2101. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2102. }
  2103. if lapseto == 1 {
  2104. d := XTReadDB().Table("xt_patients as s")
  2105. fmt.Println("d", d)
  2106. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  2107. table := XTReadDB().Table("xt_quality_control_standard as r")
  2108. fmt.Println(table)
  2109. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  2110. "SELECT " +
  2111. "CASE " +
  2112. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '一月'" +
  2113. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '二月'" +
  2114. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '三月'" +
  2115. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '四月'" +
  2116. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '五月'" +
  2117. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '六月'" +
  2118. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '七月'" +
  2119. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '八月'" +
  2120. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '九月'" +
  2121. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十月'" +
  2122. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十一月'" +
  2123. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十二月'" +
  2124. " ELSE '其他'" +
  2125. "END AS nnd FROM xt_inspection as x 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) and (x.inspect_value = r.range_value)"
  2126. countParams := make([]interface{}, 0)
  2127. countParams = append(countParams, januaryStartStrUnix)
  2128. countParams = append(countParams, januaryEndStrUnix)
  2129. countParams = append(countParams, febStartStrStrUnix)
  2130. countParams = append(countParams, febEndStrUnix)
  2131. countParams = append(countParams, marchStartStrUnix)
  2132. countParams = append(countParams, marchEndStrUnix)
  2133. countParams = append(countParams, aprStartStrUnix)
  2134. countParams = append(countParams, aprEndStrsUnix)
  2135. countParams = append(countParams, mayStartStrUnix)
  2136. countParams = append(countParams, mayEndStrsUnix)
  2137. countParams = append(countParams, junStartStrUnix)
  2138. countParams = append(countParams, junEndStrsUnix)
  2139. countParams = append(countParams, julStartStrUnix)
  2140. countParams = append(countParams, julEndStrsUnix)
  2141. countParams = append(countParams, augStartStrUnix)
  2142. countParams = append(countParams, augEndStrsUnix)
  2143. countParams = append(countParams, sepStartStrUnix)
  2144. countParams = append(countParams, sepEndStrsUnix)
  2145. countParams = append(countParams, octStartStrUnix)
  2146. countParams = append(countParams, octEndStrsUnix)
  2147. countParams = append(countParams, novStartStrUnix)
  2148. countParams = append(countParams, novEndStrsUnix)
  2149. countParams = append(countParams, decStartStrUnix)
  2150. countParams = append(countParams, decEndStrsUnix)
  2151. if orgid > 0 {
  2152. db = db.Where("x.org_id=?", orgid)
  2153. countSQL += " AND x.org_id=?"
  2154. countParams = append(countParams, orgid)
  2155. }
  2156. if orgid > 0 {
  2157. db = db.Where("r.user_org_id=?", orgid)
  2158. countSQL += " AND r.user_org_id=?"
  2159. countParams = append(countParams, orgid)
  2160. }
  2161. if modetype > 0 {
  2162. db = db.Where("x.item_id = ?", modetype)
  2163. countSQL += " AND x.item_id=?"
  2164. countParams = append(countParams, modetype)
  2165. }
  2166. if januaryStartStrUnix > 0 {
  2167. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  2168. countSQL += " AND x.inspect_date >=?"
  2169. countParams = append(countParams, januaryStartStrUnix)
  2170. }
  2171. if decEndStrsUnix > 0 {
  2172. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  2173. countSQL += " AND x.inspect_date <=?"
  2174. countParams = append(countParams, decEndStrsUnix)
  2175. }
  2176. countSQL += ")a GROUP BY nnd"
  2177. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2178. }
  2179. if lapseto == 2 {
  2180. d := XTReadDB().Table("xt_patients as s")
  2181. fmt.Println("d", d)
  2182. db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
  2183. table := XTReadDB().Table("xt_quality_control_standard as r")
  2184. fmt.Println(table)
  2185. countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
  2186. "SELECT " +
  2187. "CASE " +
  2188. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '一月'" +
  2189. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '二月'" +
  2190. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '三月'" +
  2191. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '四月'" +
  2192. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '五月'" +
  2193. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '六月'" +
  2194. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '七月'" +
  2195. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '八月'" +
  2196. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '九月'" +
  2197. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十月'" +
  2198. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十一月'" +
  2199. " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十二月'" +
  2200. " ELSE '其他'" +
  2201. "END AS nnd FROM xt_inspection as x 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 = 2) and (x.inspect_value = r.range_value)"
  2202. countParams := make([]interface{}, 0)
  2203. countParams = append(countParams, januaryStartStrUnix)
  2204. countParams = append(countParams, januaryEndStrUnix)
  2205. countParams = append(countParams, febStartStrStrUnix)
  2206. countParams = append(countParams, febEndStrUnix)
  2207. countParams = append(countParams, marchStartStrUnix)
  2208. countParams = append(countParams, marchEndStrUnix)
  2209. countParams = append(countParams, aprStartStrUnix)
  2210. countParams = append(countParams, aprEndStrsUnix)
  2211. countParams = append(countParams, mayStartStrUnix)
  2212. countParams = append(countParams, mayEndStrsUnix)
  2213. countParams = append(countParams, junStartStrUnix)
  2214. countParams = append(countParams, junEndStrsUnix)
  2215. countParams = append(countParams, julStartStrUnix)
  2216. countParams = append(countParams, julEndStrsUnix)
  2217. countParams = append(countParams, augStartStrUnix)
  2218. countParams = append(countParams, augEndStrsUnix)
  2219. countParams = append(countParams, sepStartStrUnix)
  2220. countParams = append(countParams, sepEndStrsUnix)
  2221. countParams = append(countParams, octStartStrUnix)
  2222. countParams = append(countParams, octEndStrsUnix)
  2223. countParams = append(countParams, novStartStrUnix)
  2224. countParams = append(countParams, novEndStrsUnix)
  2225. countParams = append(countParams, decStartStrUnix)
  2226. countParams = append(countParams, decEndStrsUnix)
  2227. if orgid > 0 {
  2228. db = db.Where("x.org_id=?", orgid)
  2229. countSQL += " AND x.org_id=?"
  2230. countParams = append(countParams, orgid)
  2231. }
  2232. if orgid > 0 {
  2233. db = db.Where("r.user_org_id=?", orgid)
  2234. countSQL += " AND r.user_org_id=?"
  2235. countParams = append(countParams, orgid)
  2236. }
  2237. if modetype > 0 {
  2238. db = db.Where("x.item_id = ?", modetype)
  2239. countSQL += " AND x.item_id=?"
  2240. countParams = append(countParams, modetype)
  2241. }
  2242. if januaryStartStrUnix > 0 {
  2243. db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
  2244. countSQL += " AND x.inspect_date >=?"
  2245. countParams = append(countParams, januaryStartStrUnix)
  2246. }
  2247. if decEndStrsUnix > 0 {
  2248. db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
  2249. countSQL += " AND x.inspect_date <=?"
  2250. countParams = append(countParams, decEndStrsUnix)
  2251. }
  2252. countSQL += ")a GROUP BY nnd"
  2253. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2254. }
  2255. return
  2256. }
  2257. func GetPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64, page int64, limit int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
  2258. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2259. table := readDb.Table("xt_patients as s")
  2260. fmt.Println(table)
  2261. d := readDb.Table(" xt_inspection_reference as r")
  2262. fmt.Println(d)
  2263. if orgid > 0 {
  2264. db = db.Where("x.org_id = ? and x.inspect_value <> ''", orgid)
  2265. }
  2266. if lapstor == 0 {
  2267. table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2268. }
  2269. if lapstor == 1 {
  2270. db = db.Where("s.lapseto = 1")
  2271. }
  2272. if lapstor == 2 {
  2273. db = db.Where("s.lapseto = 2")
  2274. }
  2275. if startime > 0 {
  2276. db = db.Where("x.inspect_date >=?", startime)
  2277. }
  2278. if endtime > 0 {
  2279. db = db.Where("x.inspect_date <=?", endtime)
  2280. }
  2281. offset := (page - 1) * limit
  2282. 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_quality_control_standard as r on x.item_id = r.inspection_minor ").Where("r.user_org_id = ? and r.status = 1 and r.is_status = 1", orgid).Group("x.patient_id").Count(&total).Offset(offset).Limit(limit).Scan(&inspection).Error
  2283. return inspection, total, err
  2284. }
  2285. //func GetPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64, page int64, limit int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
  2286. //
  2287. // db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2288. // table := readDb.Table("xt_patients as s")
  2289. // fmt.Println(table)
  2290. // d := readDb.Table(" xt_inspection_reference as r")
  2291. // fmt.Println(d)
  2292. //
  2293. // if orgid > 0 {
  2294. // db = db.Where("x.org_id = ?", orgid)
  2295. // }
  2296. // if lapstor == 0 {
  2297. // table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2298. // }
  2299. // if lapstor == 1 {
  2300. // db = db.Where("s.lapseto = 1")
  2301. // }
  2302. // if lapstor == 2 {
  2303. // db = db.Where("s.lapseto = 2")
  2304. // }
  2305. // if startime > 0 {
  2306. // db = db.Where("x.inspect_date >=?", startime)
  2307. // }
  2308. // if endtime > 0 {
  2309. // db = db.Where("x.inspect_date <=?", endtime)
  2310. // }
  2311. // offset := (page - 1) * limit
  2312. // 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
  2313. //
  2314. // return inspection, total, err
  2315. //}
  2316. func GetLastPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
  2317. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2318. table := readDb.Table("xt_patients as s")
  2319. //fmt.Println(table)
  2320. d := readDb.Table(" xt_inspection_reference as r")
  2321. fmt.Println(d)
  2322. d2 := readDb.Table("xt_quality_control_standard as d")
  2323. fmt.Println("d2", d2)
  2324. if orgid > 0 {
  2325. db = db.Where("x.org_id = ? and x.inspect_value+0 <> 0 and x.inspect_type = 1", orgid)
  2326. }
  2327. if lapstor == 0 {
  2328. table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2329. }
  2330. if lapstor == 1 {
  2331. table = table.Where("s.lapseto = 1")
  2332. }
  2333. if lapstor == 2 {
  2334. table = table.Where("s.lapseto = 2")
  2335. }
  2336. if startime > 0 {
  2337. db = db.Where("x.inspect_date >=?", startime)
  2338. }
  2339. if endtime > 0 {
  2340. db = db.Where("x.inspect_date <=?", endtime)
  2341. }
  2342. 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,d.min_range,d.large_range,d.range_value,d.range_type").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").Where("d.min_range<>''and d.user_org_id = ? and d.is_status =1 and NOT EXISTS(SELECT 1 FROM xt_inspection AS x2 WHERE x2.patient_id = x.patient_id AND x2.org_id = ? AND x2.item_id = x.item_id AND x2.inspect_date > x.inspect_date)", orgid, orgid).Order("x.inspect_date desc").Scan(&inspection).Error
  2343. return inspection, err
  2344. }
  2345. func GetTotalPatientsControl(orgid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
  2346. db := readDb.Table("xt_inspection as x").Where("x.status = 1")
  2347. table := readDb.Table("xt_quality_control_standard as s")
  2348. fmt.Println(table)
  2349. if orgid > 0 {
  2350. db = db.Where("x.org_id = ? and x.inspect_value <> ''", orgid)
  2351. }
  2352. if startime > 0 {
  2353. db = db.Where("x.inspect_date >=?", startime)
  2354. }
  2355. if endtime > 0 {
  2356. db = db.Where("x.inspect_date <=?", endtime)
  2357. }
  2358. err = db.Select("x.id").Joins("RIGHT JOIN xt_quality_control_standard as s on x.project_id = s.inspection_major and x.item_id = s.inspection_minor and x.org_id = s.user_org_id ").Where("s.status = 1 and s.is_status =1").Count(&total).Scan(&inspection).Error
  2359. return inspection, total, err
  2360. }
  2361. func GetStandControl(orgid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
  2362. db := readDb.Table("xt_inspection as x").Where("x.status = 1")
  2363. table := readDb.Table("xt_quality_control_standard as s")
  2364. fmt.Println(table)
  2365. if orgid > 0 {
  2366. db = db.Where("x.org_id = ? and x.inspect_value+0 <> 0 and x.inspect_type = 1 ", orgid)
  2367. }
  2368. if startime > 0 {
  2369. db = db.Where("x.inspect_date >=?", startime)
  2370. }
  2371. if endtime > 0 {
  2372. db = db.Where("x.inspect_date <=?", endtime)
  2373. }
  2374. db = db.Where("s.status = 1 and s.is_status = 1")
  2375. err = db.Select("x.id").Joins("RIGHT JOIN xt_quality_control_standard as s on x.project_id = s.inspection_major and x.item_id = s.inspection_minor and x.org_id = s.user_org_id ").Where("x.inspect_value+0 >= s.min_range + 0 and x.inspect_value+0 <= s.large_range + 0 ").Count(&total).Scan(&inspection).Error
  2376. return inspection, total, err
  2377. }
  2378. func GetStandControlOne(orgid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
  2379. db := readDb.Table("xt_inspection as x").Where("x.status = 1")
  2380. table := readDb.Table("xt_quality_control_standard as s")
  2381. fmt.Println(table)
  2382. if orgid > 0 {
  2383. db = db.Where("x.org_id = ? and x.inspect_value <> '' and x.inspect_type = 2 ", orgid)
  2384. }
  2385. if startime > 0 {
  2386. db = db.Where("x.inspect_date >=?", startime)
  2387. }
  2388. if endtime > 0 {
  2389. db = db.Where("x.inspect_date <=?", endtime)
  2390. }
  2391. db = db.Where("s.status = 1 and s.is_status = 1")
  2392. err = db.Select("x.id").Joins("RIGHT JOIN xt_quality_control_standard as s on x.project_id = s.inspection_major and x.item_id = s.inspection_minor and x.org_id = s.user_org_id ").Where("x.inspect_value = s.range_value").Count(&total).Scan(&inspection).Error
  2393. return inspection, total, err
  2394. }
  2395. func GetInfectiousPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
  2396. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2397. table := readDb.Table("xt_patients as s")
  2398. fmt.Println(table)
  2399. d := readDb.Table(" xt_inspection_reference as r")
  2400. fmt.Println(d)
  2401. d2 := readDb.Table("xt_quality_control_standard as d")
  2402. fmt.Println("d2", d2)
  2403. if orgid > 0 {
  2404. db = db.Where("x.org_id = ? and x.inspect_value <> '' and x.inspect_type = 2", orgid)
  2405. }
  2406. if lapstor == 0 {
  2407. table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2408. }
  2409. if lapstor == 1 {
  2410. table = table.Where("s.lapseto = 1")
  2411. }
  2412. if lapstor == 2 {
  2413. table = table.Where("s.lapseto = 2")
  2414. }
  2415. if startime > 0 {
  2416. db = db.Where("x.inspect_date >=?", startime)
  2417. }
  2418. if endtime > 0 {
  2419. db = db.Where("x.inspect_date <=?", endtime)
  2420. }
  2421. 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,d.min_range,d.large_range,d.range_value,d.range_type").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
  2422. return inspection, err
  2423. }
  2424. func GetInfectiousControl(orgid int64, lapstor int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
  2425. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2426. table := readDb.Table("xt_patients as s")
  2427. fmt.Println(table)
  2428. d := readDb.Table(" xt_inspection_reference as r")
  2429. fmt.Println(d)
  2430. d2 := readDb.Table("xt_quality_control_standard as d")
  2431. fmt.Println("d2", d2)
  2432. if orgid > 0 {
  2433. db = db.Where("x.org_id = ? and x.inspect_value <> '' and x.inspect_type = 2", orgid)
  2434. }
  2435. if lapstor == 0 {
  2436. table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2437. }
  2438. if lapstor == 1 {
  2439. table = table.Where("s.lapseto = 1")
  2440. }
  2441. if lapstor == 2 {
  2442. table = table.Where("s.lapseto = 2")
  2443. }
  2444. if startime > 0 {
  2445. db = db.Where("x.inspect_date >=?", startime)
  2446. }
  2447. if endtime > 0 {
  2448. db = db.Where("x.inspect_date <=?", endtime)
  2449. }
  2450. 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,d.min_range,d.large_range,d.range_value,d.range_type").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").Where("d.range_value <>''and d.user_org_id = ? and d.is_status = 1", orgid).Order("x.inspect_date desc").Scan(&inspection).Error
  2451. return inspection, err
  2452. }
  2453. func GetPatientContor(lapstor, orgid int64, keywords string, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
  2454. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2455. table := readDb.Table("xt_patients as s")
  2456. fmt.Println(table)
  2457. d := readDb.Table(" xt_inspection_reference as r")
  2458. fmt.Println(d)
  2459. d2 := readDb.Table("xt_quality_control_standard as d")
  2460. fmt.Println("d2", d2)
  2461. if len(keywords) > 0 {
  2462. db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", keywords, keywords)
  2463. }
  2464. if orgid > 0 {
  2465. db = db.Where("x.org_id = ?", orgid)
  2466. }
  2467. if lapstor == 0 {
  2468. table = table.Where("s.lapseto = 1 or s.lapseto = 2")
  2469. }
  2470. if lapstor == 1 {
  2471. table = table.Where("s.lapseto = 1")
  2472. }
  2473. if lapstor == 2 {
  2474. table = table.Where("s.lapseto = 2")
  2475. }
  2476. if startime > 0 {
  2477. db = db.Where("x.inspect_date >=?", startime)
  2478. }
  2479. if endtime > 0 {
  2480. db = db.Where("x.inspect_date <=?", endtime)
  2481. }
  2482. 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
  2483. return inspection, err
  2484. }
  2485. func GetPatientNames(orgid int64, patientid int64) (models.XtPatients, error) {
  2486. patients := models.XtPatients{}
  2487. err := readDb.Where("user_org_id = ? and id = ? and status = 1", orgid, patientid).Find(&patients).Error
  2488. return patients, err
  2489. }
  2490. func GetQualityControlById(orgid int64, patientid int64, startime int64, endtime int64, itemid int64, inspectdate int64) (inspection []*models.PatientInspectionCount, err error) {
  2491. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2492. table := readDb.Table("xt_patients as s")
  2493. fmt.Println(table)
  2494. d := readDb.Table(" xt_inspection_reference as r")
  2495. fmt.Println(d)
  2496. d2 := readDb.Table("xt_quality_control_standard as d")
  2497. fmt.Println("d2", d2)
  2498. if orgid > 0 {
  2499. db = db.Where("x.org_id = ?", orgid)
  2500. }
  2501. if patientid > 0 {
  2502. db = db.Where("x.patient_id = ?", patientid)
  2503. }
  2504. //if startime > 0 {
  2505. // db = db.Where("x.inspect_date >=?", startime)
  2506. //}
  2507. //if endtime > 0 {
  2508. // db = db.Where("x.inspect_date <=?", endtime)
  2509. //}
  2510. if itemid > 0 {
  2511. db = db.Where("x.item_id = ?", itemid)
  2512. }
  2513. if inspectdate > 0 {
  2514. db = db.Where("x.inspect_date = ?", inspectdate)
  2515. }
  2516. 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,d.range_type").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 asc").Scan(&inspection).Error
  2517. return inspection, err
  2518. }
  2519. func GetPatientComplianceDetail(orgid int64, patientid int64, startime int64, endtime int64, itemid int64) (inspection []*models.PatientInspectionCount, err error) {
  2520. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2521. table := readDb.Table("xt_patients as s")
  2522. fmt.Println(table)
  2523. d := readDb.Table(" xt_inspection_reference as r")
  2524. fmt.Println(d)
  2525. d2 := readDb.Table("xt_quality_control_standard as d")
  2526. fmt.Println("d2", d2)
  2527. if orgid > 0 {
  2528. db = db.Where("x.org_id = ? and (x.inspect_value <> '' or x.inspect_value+0 <> 0)", orgid)
  2529. }
  2530. if patientid > 0 {
  2531. db = db.Where("x.patient_id = ?", patientid)
  2532. }
  2533. if startime > 0 {
  2534. db = db.Where("x.inspect_date >=?", startime)
  2535. }
  2536. if endtime > 0 {
  2537. db = db.Where("x.inspect_date <=?", endtime)
  2538. }
  2539. if itemid > 0 {
  2540. db = db.Where("x.item_id = ?", itemid)
  2541. }
  2542. 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,d.range_value,d.range_type").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 asc").Scan(&inspection).Error
  2543. return inspection, err
  2544. }
  2545. func GetLastPatientsControlTwo(orgid int64, patientid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
  2546. db := readDb.Table("xt_inspection as x").Where("x.status =1")
  2547. table := readDb.Table("xt_patients as s")
  2548. fmt.Println(table)
  2549. d := readDb.Table(" xt_inspection_reference as r")
  2550. fmt.Println(d)
  2551. d2 := readDb.Table("xt_quality_control_standard as d")
  2552. fmt.Println("d2", d2)
  2553. if orgid > 0 {
  2554. db = db.Where("x.org_id = ?", orgid)
  2555. }
  2556. if patientid > 0 {
  2557. db = db.Where("x.patient_id = ?", patientid)
  2558. }
  2559. if startime > 0 {
  2560. db = db.Where("x.inspect_date >=?", startime)
  2561. }
  2562. if endtime > 0 {
  2563. db = db.Where("x.inspect_date <=?", endtime)
  2564. }
  2565. 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,d.large_range,d.min_range,d.range_type").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
  2566. return inspection, err
  2567. }
  2568. func GetBloodPressureDetail(id int64) (models.XtQualityControlStandard, error) {
  2569. standard := models.XtQualityControlStandard{}
  2570. err := XTReadDB().Model(&standard).Where("id=? and status = 1", id).Find(&standard).Error
  2571. return standard, err
  2572. }
  2573. func UpdateBloodPressure(st *models.XtQualityControlStandard, id int64) error {
  2574. err := XTWriteDB().Model(&st).Where("id=?", id).Update(map[string]interface{}{"inspection_major": st.InspectionMajor, "inspection_minor": st.InspectionMinor, "min_range": st.MinRange, "large_range": st.LargeRange, "sort": st.Sort, "updated_time": st.UpdatedTime}).Error
  2575. return err
  2576. }
  2577. func GetSystolicBloodPressure(orgid int64, startime int64, endtime int64) (record []*models.VmMonitoringRecord, total int64, err error) {
  2578. db := XTReadDB().Table("xt_monitoring_record as x")
  2579. err = db.Select("x.id,x.systolic_blood_pressure").Where("x.user_org_id = ? and x.monitoring_date >=? and x.monitoring_date<=? and x.status = 1 and x.systolic_blood_pressure <> 0", orgid, startime, endtime).Group("x.monitoring_date,x.patient_id").Count(&total).Scan(&record).Error
  2580. return record, total, err
  2581. }
  2582. func GetSystolicBloodPressureTwo(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (record []*models.VmMonitoringRecord, total int64, err error) {
  2583. db := XTReadDB().Table("xt_monitoring_record as x")
  2584. if lapseto > 0 && origin > 0 {
  2585. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ? AND p.source = ?", lapseto, origin)
  2586. }
  2587. if lapseto > 0 && origin == 0 {
  2588. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ?", lapseto)
  2589. }
  2590. if lapseto == 0 && origin > 0 {
  2591. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.source = ?", origin)
  2592. }
  2593. err = db.Select("x.id,x.systolic_blood_pressure").Where("x.user_org_id = ? and x.monitoring_date >=? and x.monitoring_date<=? and x.status = 1 and x.systolic_blood_pressure <> 0", orgid, startime, endtime).Group("x.monitoring_date,x.patient_id").Count(&total).Scan(&record).Error
  2594. return record, total, err
  2595. }
  2596. func GetStandSystolicBloodPressure(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (record []*models.XTMonitoringRecord, total int64, err error) {
  2597. db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
  2598. err = db.Select("x.id,s.sort").Joins("left join xt_quality_control_standard as s on s.user_org_id = x.user_org_id").Where("s.status = 1 and s.is_status = 0 and s.user_org_id = ? and x.user_org_id =? and x.monitoring_date>=? and x.monitoring_date <=? and s.inspection_minor = -1 and s.inspection_major = 0 and x.systolic_blood_pressure <> 0 and x.systolic_blood_pressure +0 >= s.min_range +0 and x.systolic_blood_pressure +0 <= s.large_range +0", orgid, orgid, startime, endtime).Group("x.monitoring_date,x.patient_id").Count(&total).Scan(&record).Error
  2599. return record, total, err
  2600. }
  2601. func GetDiastolicBloodPressure(orgid int64, startime int64, endtime int64) (record []*models.VmMonitoringRecord, total int64, err error) {
  2602. db := XTReadDB().Table("xt_monitoring_record as x")
  2603. err = db.Select("x.id,x.diastolic_blood_pressure").Where("x.user_org_id = ? and x.monitoring_date >=? and x.monitoring_date<=? and x.status = 1 and x.diastolic_blood_pressure <> 0", orgid, startime, endtime).Group("x.monitoring_date,x.patient_id").Count(&total).Scan(&record).Error
  2604. return record, total, err
  2605. }
  2606. func GetDiastolicBloodPressureTwo(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (record []*models.VmMonitoringRecord, total int64, err error) {
  2607. db := XTReadDB().Table("xt_monitoring_record as x")
  2608. if lapseto > 0 && origin > 0 {
  2609. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ? AND p.source = ?", lapseto, origin)
  2610. }
  2611. if lapseto > 0 && origin == 0 {
  2612. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ?", lapseto)
  2613. }
  2614. if lapseto == 0 && origin > 0 {
  2615. db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.source = ?", origin)
  2616. }
  2617. err = db.Select("x.id,x.diastolic_blood_pressure").Where("x.user_org_id = ? and x.monitoring_date >=? and x.monitoring_date<=? and x.status = 1 and x.diastolic_blood_pressure <> 0", orgid, startime, endtime).Group("x.monitoring_date,x.patient_id").Count(&total).Scan(&record).Error
  2618. return record, total, err
  2619. }
  2620. func GetDiastolicStandPressure(orgid int64, startime int64, endtime int64) (record []*models.XTMonitoringRecord, total int64, err error) {
  2621. db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
  2622. err = db.Select("x.id,s.sort").Joins("left join xt_quality_control_standard as s on s.user_org_id = x.user_org_id").Where("s.status = 1 and s.is_status = 0 and s.user_org_id = ? and x.user_org_id =? and x.monitoring_date>=? and x.monitoring_date <=? and s.inspection_minor = -2 and s.inspection_major = 0 and x.diastolic_blood_pressure <> 0 and x.diastolic_blood_pressure +0 >= s.min_range +0 and x.diastolic_blood_pressure +0 <= s.large_range +0", orgid, orgid, startime, endtime).Group("x.monitoring_date,x.patient_id").Count(&total).Scan(&record).Error
  2623. return record, total, err
  2624. }
  2625. func GetQuarterTargeStand(orgid int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCountTwo, err error) {
  2626. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  2627. countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
  2628. "SELECT " +
  2629. "CASE " +
  2630. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '1'" +
  2631. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '2'" +
  2632. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '3'" +
  2633. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '4'" +
  2634. " ELSE '其他'" +
  2635. "END AS nnd FROM xt_inspection as x right join xt_quality_control_standard AS s ON x.project_id = s.inspection_major AND x.item_id = s.inspection_minor AND x.org_id = s.user_org_id where x.inspect_value+0<>0 and x.status = 1 and x.inspect_type = 1 and s.is_status = 1 and s.status = 1 and x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0"
  2636. countParams := make([]interface{}, 0)
  2637. countParams = append(countParams, firststart)
  2638. countParams = append(countParams, firstend)
  2639. countParams = append(countParams, sencondstart)
  2640. countParams = append(countParams, sencondend)
  2641. countParams = append(countParams, threestart)
  2642. countParams = append(countParams, threeend)
  2643. countParams = append(countParams, fourstart)
  2644. countParams = append(countParams, fourend)
  2645. if orgid > 0 {
  2646. db = db.Where("x.org_id=?", orgid)
  2647. countSQL += " AND x.org_id=?"
  2648. countParams = append(countParams, orgid)
  2649. db = db.Where("x.inspect_date>=?", firststart)
  2650. countSQL += " AND x.inspect_date>=?"
  2651. countParams = append(countParams, firststart)
  2652. db = db.Where("x.inspect_date<=?", fourend)
  2653. countSQL += " AND x.inspect_date<=?"
  2654. countParams = append(countParams, fourend)
  2655. }
  2656. countSQL += ")a GROUP BY nnd"
  2657. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2658. return
  2659. }
  2660. func GetQuarterTargeNoStand(orgid int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCountTwo, err error) {
  2661. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  2662. countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
  2663. "SELECT " +
  2664. "CASE " +
  2665. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '1'" +
  2666. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '2'" +
  2667. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '3'" +
  2668. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '4'" +
  2669. " ELSE '其他'" +
  2670. "END AS nnd FROM xt_inspection as x right join xt_quality_control_standard AS s ON x.project_id = s.inspection_major AND x.item_id = s.inspection_minor AND x.org_id = s.user_org_id where x.inspect_value+0<>0 and x.status = 1 and x.inspect_type = 1 and s.is_status = 1 and s.status = 1 and (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0)"
  2671. countParams := make([]interface{}, 0)
  2672. countParams = append(countParams, firststart)
  2673. countParams = append(countParams, firstend)
  2674. countParams = append(countParams, sencondstart)
  2675. countParams = append(countParams, sencondend)
  2676. countParams = append(countParams, threestart)
  2677. countParams = append(countParams, threeend)
  2678. countParams = append(countParams, fourstart)
  2679. countParams = append(countParams, fourend)
  2680. if orgid > 0 {
  2681. db = db.Where("x.org_id=?", orgid)
  2682. countSQL += " AND x.org_id=?"
  2683. countParams = append(countParams, orgid)
  2684. db = db.Where("x.inspect_date>=?", firststart)
  2685. countSQL += " AND x.inspect_date>=?"
  2686. countParams = append(countParams, firststart)
  2687. db = db.Where("x.inspect_date<=?", fourend)
  2688. countSQL += " AND x.inspect_date<=?"
  2689. countParams = append(countParams, fourend)
  2690. }
  2691. countSQL += ")a GROUP BY nnd"
  2692. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2693. return
  2694. }
  2695. func GetContagionQuarterTargeStand(orgid int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCountTwo, err error) {
  2696. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  2697. countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
  2698. "SELECT " +
  2699. "CASE " +
  2700. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '1'" +
  2701. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '2'" +
  2702. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '3'" +
  2703. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '4'" +
  2704. " ELSE '其他'" +
  2705. "END AS nnd FROM xt_inspection as x right join xt_quality_control_standard AS s ON x.project_id = s.inspection_major AND x.item_id = s.inspection_minor AND x.org_id = s.user_org_id where x.inspect_value<>'' and x.status = 1 and x.inspect_type = 2 and s.is_status = 1 and s.status = 1 and x.inspect_value = s.range_value"
  2706. countParams := make([]interface{}, 0)
  2707. countParams = append(countParams, firststart)
  2708. countParams = append(countParams, firstend)
  2709. countParams = append(countParams, sencondstart)
  2710. countParams = append(countParams, sencondend)
  2711. countParams = append(countParams, threestart)
  2712. countParams = append(countParams, threeend)
  2713. countParams = append(countParams, fourstart)
  2714. countParams = append(countParams, fourend)
  2715. if orgid > 0 {
  2716. db = db.Where("x.org_id=?", orgid)
  2717. countSQL += " AND x.org_id=?"
  2718. countParams = append(countParams, orgid)
  2719. db = db.Where("x.inspect_date>=?", firststart)
  2720. countSQL += " AND x.inspect_date>=?"
  2721. countParams = append(countParams, firststart)
  2722. db = db.Where("x.inspect_date<=?", fourend)
  2723. countSQL += " AND x.inspect_date<=?"
  2724. countParams = append(countParams, fourend)
  2725. }
  2726. countSQL += ")a GROUP BY nnd"
  2727. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2728. return
  2729. }
  2730. func GetContagionTargeNoStand(orgid int64, firststart int64, firstend int64, sencondstart int64, sencondend int64, threestart int64, threeend int64, fourstart int64, fourend int64) (inspection []*models.ProjectCountTwo, err error) {
  2731. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  2732. countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
  2733. "SELECT " +
  2734. "CASE " +
  2735. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '1'" +
  2736. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '2'" +
  2737. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '3'" +
  2738. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '4'" +
  2739. " ELSE '其他'" +
  2740. "END AS nnd FROM xt_inspection as x right join xt_quality_control_standard AS s ON x.project_id = s.inspection_major AND x.item_id = s.inspection_minor AND x.org_id = s.user_org_id where x.inspect_value<>'' and x.status = 1 and x.inspect_type = 2 and s.is_status = 1 and s.status = 1 and x.inspect_value <> s.range_value"
  2741. countParams := make([]interface{}, 0)
  2742. countParams = append(countParams, firststart)
  2743. countParams = append(countParams, firstend)
  2744. countParams = append(countParams, sencondstart)
  2745. countParams = append(countParams, sencondend)
  2746. countParams = append(countParams, threestart)
  2747. countParams = append(countParams, threeend)
  2748. countParams = append(countParams, fourstart)
  2749. countParams = append(countParams, fourend)
  2750. if orgid > 0 {
  2751. db = db.Where("x.org_id=?", orgid)
  2752. countSQL += " AND x.org_id=?"
  2753. countParams = append(countParams, orgid)
  2754. db = db.Where("x.inspect_date>=?", firststart)
  2755. countSQL += " AND x.inspect_date>=?"
  2756. countParams = append(countParams, firststart)
  2757. db = db.Where("x.inspect_date<=?", fourend)
  2758. countSQL += " AND x.inspect_date<=?"
  2759. countParams = append(countParams, fourend)
  2760. }
  2761. countSQL += ")a GROUP BY nnd"
  2762. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2763. return
  2764. }
  2765. func GetMonthTargetStand(orgId, 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.ProjectCountTwo, err error) {
  2766. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  2767. countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
  2768. "SELECT " +
  2769. "CASE " +
  2770. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '1'" +
  2771. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '2'" +
  2772. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '3'" +
  2773. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '4'" +
  2774. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '5'" +
  2775. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '6'" +
  2776. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '7'" +
  2777. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '8'" +
  2778. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '9'" +
  2779. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '10'" +
  2780. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '11'" +
  2781. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0 THEN '12'" +
  2782. " ELSE '其他'" +
  2783. "END AS nnd FROM xt_inspection as x right join xt_quality_control_standard AS s ON x.project_id = s.inspection_major AND x.item_id = s.inspection_minor AND x.org_id = s.user_org_id where x.inspect_value+0<>0 and x.status = 1 and x.inspect_type = 1 and s.is_status = 1 and s.status = 1 and x.inspect_value + 0 >= s.min_range + 0 AND x.inspect_value + 0 <= s.large_range + 0"
  2784. countParams := make([]interface{}, 0)
  2785. countParams = append(countParams, januaryStartStrUnix)
  2786. countParams = append(countParams, januaryEndStrUnix)
  2787. countParams = append(countParams, febStartStrStrUnix)
  2788. countParams = append(countParams, febEndStrUnix)
  2789. countParams = append(countParams, marchStartStrUnix)
  2790. countParams = append(countParams, marchEndStrUnix)
  2791. countParams = append(countParams, aprStartStrUnix)
  2792. countParams = append(countParams, aprEndStrsUnix)
  2793. countParams = append(countParams, mayStartStrUnix)
  2794. countParams = append(countParams, mayEndStrsUnix)
  2795. countParams = append(countParams, junStartStrUnix)
  2796. countParams = append(countParams, junEndStrsUnix)
  2797. countParams = append(countParams, julStartStrUnix)
  2798. countParams = append(countParams, julEndStrsUnix)
  2799. countParams = append(countParams, augStartStrUnix)
  2800. countParams = append(countParams, augEndStrsUnix)
  2801. countParams = append(countParams, sepStartStrUnix)
  2802. countParams = append(countParams, sepEndStrsUnix)
  2803. countParams = append(countParams, octStartStrUnix)
  2804. countParams = append(countParams, octEndStrsUnix)
  2805. countParams = append(countParams, novStartStrUnix)
  2806. countParams = append(countParams, novEndStrsUnix)
  2807. countParams = append(countParams, decStartStrUnix)
  2808. countParams = append(countParams, decEndStrsUnix)
  2809. if orgId > 0 {
  2810. db = db.Where("x.org_id=?", orgId)
  2811. countSQL += " AND x.org_id=?"
  2812. countParams = append(countParams, orgId)
  2813. db = db.Where("x.inspect_date>=?", januaryStartStrUnix)
  2814. countSQL += " AND x.inspect_date>=?"
  2815. countParams = append(countParams, januaryStartStrUnix)
  2816. db = db.Where("x.inspect_date<=?", decStartStrUnix)
  2817. countSQL += " AND x.inspect_date<=?"
  2818. countParams = append(countParams, decEndStrsUnix)
  2819. }
  2820. countSQL += ")a GROUP BY nnd"
  2821. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2822. return
  2823. }
  2824. func GetMonthTargetNoStand(orgId, 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.ProjectCountTwo, err error) {
  2825. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  2826. countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
  2827. "SELECT " +
  2828. "CASE " +
  2829. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '1'" +
  2830. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '2'" +
  2831. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '3'" +
  2832. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '4'" +
  2833. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '5'" +
  2834. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '6'" +
  2835. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '7'" +
  2836. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '8'" +
  2837. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '9'" +
  2838. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '10'" +
  2839. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '11'" +
  2840. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0) THEN '12'" +
  2841. " ELSE '其他'" +
  2842. "END AS nnd FROM xt_inspection as x right join xt_quality_control_standard AS s ON x.project_id = s.inspection_major AND x.item_id = s.inspection_minor AND x.org_id = s.user_org_id where x.inspect_value+0<>0 and x.status = 1 and x.inspect_type = 1 and s.is_status = 1 and s.status = 1 and (x.inspect_value + 0 < s.min_range + 0 or x.inspect_value + 0 > s.large_range + 0)"
  2843. countParams := make([]interface{}, 0)
  2844. countParams = append(countParams, januaryStartStrUnix)
  2845. countParams = append(countParams, januaryEndStrUnix)
  2846. countParams = append(countParams, febStartStrStrUnix)
  2847. countParams = append(countParams, febEndStrUnix)
  2848. countParams = append(countParams, marchStartStrUnix)
  2849. countParams = append(countParams, marchEndStrUnix)
  2850. countParams = append(countParams, aprStartStrUnix)
  2851. countParams = append(countParams, aprEndStrsUnix)
  2852. countParams = append(countParams, mayStartStrUnix)
  2853. countParams = append(countParams, mayEndStrsUnix)
  2854. countParams = append(countParams, junStartStrUnix)
  2855. countParams = append(countParams, junEndStrsUnix)
  2856. countParams = append(countParams, julStartStrUnix)
  2857. countParams = append(countParams, julEndStrsUnix)
  2858. countParams = append(countParams, augStartStrUnix)
  2859. countParams = append(countParams, augEndStrsUnix)
  2860. countParams = append(countParams, sepStartStrUnix)
  2861. countParams = append(countParams, sepEndStrsUnix)
  2862. countParams = append(countParams, octStartStrUnix)
  2863. countParams = append(countParams, octEndStrsUnix)
  2864. countParams = append(countParams, novStartStrUnix)
  2865. countParams = append(countParams, novEndStrsUnix)
  2866. countParams = append(countParams, decStartStrUnix)
  2867. countParams = append(countParams, decEndStrsUnix)
  2868. if orgId > 0 {
  2869. db = db.Where("x.org_id=?", orgId)
  2870. countSQL += " AND x.org_id=?"
  2871. countParams = append(countParams, orgId)
  2872. db = db.Where("x.inspect_date>=?", januaryStartStrUnix)
  2873. countSQL += " AND x.inspect_date>=?"
  2874. countParams = append(countParams, januaryStartStrUnix)
  2875. db = db.Where("x.inspect_date<=?", decStartStrUnix)
  2876. countSQL += " AND x.inspect_date<=?"
  2877. countParams = append(countParams, decEndStrsUnix)
  2878. }
  2879. countSQL += ")a GROUP BY nnd"
  2880. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2881. return
  2882. }
  2883. func GetMonthcontagionTargeStand(orgId, 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.ProjectCountTwo, err error) {
  2884. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  2885. countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
  2886. "SELECT " +
  2887. "CASE " +
  2888. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '1'" +
  2889. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '2'" +
  2890. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '3'" +
  2891. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '4'" +
  2892. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '5'" +
  2893. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '6'" +
  2894. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '7'" +
  2895. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '8'" +
  2896. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '9'" +
  2897. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '10'" +
  2898. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '11'" +
  2899. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '12'" +
  2900. " ELSE '其他'" +
  2901. "END AS nnd FROM xt_inspection as x right join xt_quality_control_standard AS s ON x.project_id = s.inspection_major AND x.item_id = s.inspection_minor AND x.org_id = s.user_org_id where x.inspect_value<>'' and x.status = 1 and x.inspect_type = 2 and s.is_status = 1 and s.status = 1 and x.inspect_value = s.range_value"
  2902. countParams := make([]interface{}, 0)
  2903. countParams = append(countParams, januaryStartStrUnix)
  2904. countParams = append(countParams, januaryEndStrUnix)
  2905. countParams = append(countParams, febStartStrStrUnix)
  2906. countParams = append(countParams, febEndStrUnix)
  2907. countParams = append(countParams, marchStartStrUnix)
  2908. countParams = append(countParams, marchEndStrUnix)
  2909. countParams = append(countParams, aprStartStrUnix)
  2910. countParams = append(countParams, aprEndStrsUnix)
  2911. countParams = append(countParams, mayStartStrUnix)
  2912. countParams = append(countParams, mayEndStrsUnix)
  2913. countParams = append(countParams, junStartStrUnix)
  2914. countParams = append(countParams, junEndStrsUnix)
  2915. countParams = append(countParams, julStartStrUnix)
  2916. countParams = append(countParams, julEndStrsUnix)
  2917. countParams = append(countParams, augStartStrUnix)
  2918. countParams = append(countParams, augEndStrsUnix)
  2919. countParams = append(countParams, sepStartStrUnix)
  2920. countParams = append(countParams, sepEndStrsUnix)
  2921. countParams = append(countParams, octStartStrUnix)
  2922. countParams = append(countParams, octEndStrsUnix)
  2923. countParams = append(countParams, novStartStrUnix)
  2924. countParams = append(countParams, novEndStrsUnix)
  2925. countParams = append(countParams, decStartStrUnix)
  2926. countParams = append(countParams, decEndStrsUnix)
  2927. if orgId > 0 {
  2928. db = db.Where("x.org_id=?", orgId)
  2929. countSQL += " AND x.org_id=?"
  2930. countParams = append(countParams, orgId)
  2931. db = db.Where("x.inspect_date>=?", januaryStartStrUnix)
  2932. countSQL += " AND x.inspect_date>=?"
  2933. countParams = append(countParams, januaryStartStrUnix)
  2934. db = db.Where("x.inspect_date<=?", decStartStrUnix)
  2935. countSQL += " AND x.inspect_date<=?"
  2936. countParams = append(countParams, decEndStrsUnix)
  2937. }
  2938. countSQL += ")a GROUP BY nnd"
  2939. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2940. return
  2941. }
  2942. func GetMonthcontagionTargeNoStand(orgId, 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.ProjectCountTwo, err error) {
  2943. db := readDb.Table("xt_inspection as x ").Where("x.status=1")
  2944. countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
  2945. "SELECT " +
  2946. "CASE " +
  2947. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '1'" +
  2948. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '2'" +
  2949. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '3'" +
  2950. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '4'" +
  2951. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '5'" +
  2952. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '6'" +
  2953. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '7'" +
  2954. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '8'" +
  2955. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '9'" +
  2956. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '10'" +
  2957. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '11'" +
  2958. " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '12'" +
  2959. " ELSE '其他'" +
  2960. "END AS nnd FROM xt_inspection as x right join xt_quality_control_standard AS s ON x.project_id = s.inspection_major AND x.item_id = s.inspection_minor AND x.org_id = s.user_org_id where x.inspect_value<>'' and x.status = 1 and x.inspect_type = 2 and s.is_status = 1 and s.status = 1 and x.inspect_value <> s.range_value"
  2961. countParams := make([]interface{}, 0)
  2962. countParams = append(countParams, januaryStartStrUnix)
  2963. countParams = append(countParams, januaryEndStrUnix)
  2964. countParams = append(countParams, febStartStrStrUnix)
  2965. countParams = append(countParams, febEndStrUnix)
  2966. countParams = append(countParams, marchStartStrUnix)
  2967. countParams = append(countParams, marchEndStrUnix)
  2968. countParams = append(countParams, aprStartStrUnix)
  2969. countParams = append(countParams, aprEndStrsUnix)
  2970. countParams = append(countParams, mayStartStrUnix)
  2971. countParams = append(countParams, mayEndStrsUnix)
  2972. countParams = append(countParams, junStartStrUnix)
  2973. countParams = append(countParams, junEndStrsUnix)
  2974. countParams = append(countParams, julStartStrUnix)
  2975. countParams = append(countParams, julEndStrsUnix)
  2976. countParams = append(countParams, augStartStrUnix)
  2977. countParams = append(countParams, augEndStrsUnix)
  2978. countParams = append(countParams, sepStartStrUnix)
  2979. countParams = append(countParams, sepEndStrsUnix)
  2980. countParams = append(countParams, octStartStrUnix)
  2981. countParams = append(countParams, octEndStrsUnix)
  2982. countParams = append(countParams, novStartStrUnix)
  2983. countParams = append(countParams, novEndStrsUnix)
  2984. countParams = append(countParams, decStartStrUnix)
  2985. countParams = append(countParams, decEndStrsUnix)
  2986. if orgId > 0 {
  2987. db = db.Where("x.org_id=?", orgId)
  2988. countSQL += " AND x.org_id=?"
  2989. countParams = append(countParams, orgId)
  2990. db = db.Where("x.inspect_date>=?", januaryStartStrUnix)
  2991. countSQL += " AND x.inspect_date>=?"
  2992. countParams = append(countParams, januaryStartStrUnix)
  2993. db = db.Where("x.inspect_date<=?", decStartStrUnix)
  2994. countSQL += " AND x.inspect_date<=?"
  2995. countParams = append(countParams, decEndStrsUnix)
  2996. }
  2997. countSQL += ")a GROUP BY nnd"
  2998. err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
  2999. return
  3000. }
  3001. func GetQuarterBloodList(orgid int64, januaryStartStrUnix int64, januaryEndStrUnix int64) (record []*models.VmMonitoringRecord, err error) {
  3002. db := XTReadDB().Table("xt_monitoring_record as x")
  3003. err = db.Select("x.id,x.systolic_blood_pressure,x.diastolic_blood_pressure,x.monitoring_date,x.patient_id,x.user_org_id").Where("x.user_org_id = ? and x.monitoring_date >=? and x.monitoring_date<=? and x.status = 1 and x.systolic_blood_pressure <> 0 and x.diastolic_blood_pressure <> 0", orgid, januaryStartStrUnix, januaryEndStrUnix).Group("x.monitoring_date,x.patient_id").Scan(&record).Error
  3004. return record, err
  3005. }
  3006. func GetTaregetNoStandDetail(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientsInspection, err error) {
  3007. db := XTReadDB().Table("xt_inspection as x")
  3008. err = db.Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,d.sort,d.min_range,d.large_range,d.range_value,d.range_type,x.inspect_type,x.org_id").Joins("left join xt_patients AS s ON s.id = x.patient_id").Joins("RIGHT JOIN xt_quality_control_standard AS d ON d.inspection_minor = x.item_id AND d.inspection_major = x.project_id AND x.org_id = d.user_org_id").Where("x.status = 1 and x.inspect_type = 1 and x.org_id = ? and x.inspect_value + 0 <> 0 and x.inspect_date >=? and x.inspect_date<=? and d.user_org_id = ? and d.is_status=1 and d.status = 1 and (x.inspect_value+0 < d.min_range+0 or x.inspect_value+0 > d.large_range + 0)", orgid, startime, endtime, orgid).Group("x.id").Order("x.inspect_date DESC").Scan(&inspection).Error
  3009. return inspection, err
  3010. }
  3011. func GetConfigurationNoStandDetail(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientsInspection, err error) {
  3012. db := XTReadDB().Table("xt_inspection as x")
  3013. err = db.Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,d.sort,d.min_range,d.large_range,d.range_value,d.range_type,x.inspect_type,x.org_id").Joins("left join xt_patients AS s ON s.id = x.patient_id").Joins("RIGHT JOIN xt_quality_control_standard AS d ON d.inspection_minor = x.item_id AND d.inspection_major = x.project_id AND x.org_id = d.user_org_id").Where("x.status = 1 and x.inspect_type = 2 and x.org_id = ? and x.inspect_value <> '' and x.inspect_date >=? and x.inspect_date<=? and d.user_org_id = ? and d.is_status=1 and d.status = 1 and (x.inspect_value <> d.range_value)", orgid, startime, endtime, orgid).Group("x.id").Order("x.inspect_date DESC").Scan(&inspection).Error
  3014. return inspection, err
  3015. }
  3016. func GetInspectNoStandList(orgid int64, startime int64, endtime int64, limit int64, page int64) (inspection []*models.XtPatientsInspection, err error) {
  3017. db := XTReadDB().Table("xt_inspection as x")
  3018. offset := (page - 1) * limit
  3019. err = db.Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,d.sort,d.min_range,d.large_range,d.range_value,d.range_type,x.inspect_type,x.org_id").Joins("left join xt_patients AS s ON s.id = x.patient_id").Joins("RIGHT JOIN xt_quality_control_standard AS d ON d.inspection_minor = x.item_id AND d.inspection_major = x.project_id AND x.org_id = d.user_org_id").Where("x.status = 1 and x.inspect_type = 1 and x.org_id = ? and x.inspect_value + 0 <> 0 and x.inspect_date >=? and x.inspect_date<=? and d.user_org_id = ? and d.is_status=1 and d.status = 1 and (x.inspect_value+0 < d.min_range+0 or x.inspect_value+0 > d.large_range + 0)", orgid, startime, endtime, orgid).Group("x.id").Offset(offset).Limit(limit).Order("x.inspect_date DESC").Scan(&inspection).Error
  3020. return inspection, err
  3021. }
  3022. func GetTargetStandDetail(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientsInspection, err error) {
  3023. db := XTReadDB().Table("xt_inspection as x")
  3024. err = db.Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,d.sort,d.min_range,d.large_range,d.range_value,d.range_type,x.inspect_type,x.org_id").Joins("left join xt_patients AS s ON s.id = x.patient_id").Joins("RIGHT JOIN xt_quality_control_standard AS d ON d.inspection_minor = x.item_id AND d.inspection_major = x.project_id AND x.org_id = d.user_org_id").Where("x.status = 1 and x.inspect_type = 1 and x.org_id = ? and x.inspect_value + 0 <> 0 and x.inspect_date >=? and x.inspect_date<=? and d.user_org_id = ? and d.is_status=1 and d.status = 1 and x.inspect_value+0 >=d.min_range+0 and x.inspect_value+0 <= d.large_range + 0", orgid, startime, endtime, orgid).Group("x.id").Order("x.inspect_date DESC").Scan(&inspection).Error
  3025. return inspection, err
  3026. }
  3027. func GetConfigurationStandDetail(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientsInspection, err error) {
  3028. db := XTReadDB().Table("xt_inspection as x")
  3029. err = db.Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,d.sort,d.min_range,d.large_range,d.range_value,d.range_type,x.inspect_type,x.org_id").Joins("left join xt_patients AS s ON s.id = x.patient_id").Joins("RIGHT JOIN xt_quality_control_standard AS d ON d.inspection_minor = x.item_id AND d.inspection_major = x.project_id AND x.org_id = d.user_org_id").Where("x.status = 1 and x.inspect_type = 2 and x.org_id = ? and x.inspect_value <> '' and x.inspect_date >=? and x.inspect_date<=? and d.user_org_id = ? and d.is_status=1 and d.status = 1 and (x.inspect_value = d.range_value)", orgid, startime, endtime, orgid).Group("x.id").Order("x.inspect_date DESC").Scan(&inspection).Error
  3030. return inspection, err
  3031. }
  3032. func GetStandList(orgid int64, startime int64, endtime int64, limit int64, page int64) (inspection []*models.XtPatientsInspection, err error) {
  3033. db := XTReadDB().Table("xt_inspection as x")
  3034. offset := (page - 1) * limit
  3035. err = db.Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,d.sort,d.min_range,d.large_range,d.range_value,d.range_type,x.inspect_type,x.org_id").Joins("left join xt_patients AS s ON s.id = x.patient_id").Joins("RIGHT JOIN xt_quality_control_standard AS d ON d.inspection_minor = x.item_id AND d.inspection_major = x.project_id AND x.org_id = d.user_org_id").Where("x.status = 1 and x.inspect_type = 1 and x.org_id = ? and x.inspect_value + 0 <> 0 and x.inspect_date >=? and x.inspect_date<=? and d.user_org_id = ? and d.is_status=1 and d.status = 1 and x.inspect_value+0 >=d.min_range+0 and x.inspect_value+0 <= d.large_range + 0", orgid, startime, endtime, orgid).Group("x.id").Offset(offset).Limit(limit).Order("x.inspect_date DESC").Scan(&inspection).Error
  3036. return inspection, err
  3037. }
  3038. func GetDiastolicStand(orgid int64, startime int64, endtime int64, page int64, limit int64) (record []*models.XTMonitoringRecords, err error) {
  3039. db := XTReadDB().Table("xt_monitoring_record as x")
  3040. offset := (page - 1) * limit
  3041. err = db.Select("x.id,x.systolic_blood_pressure,x.diastolic_blood_pressure,x.patient_id,x.monitoring_date,s.name").Joins("left join xt_patients as s on s.id = x.patient_id").Where("x.user_org_id = ? and x.monitoring_date >=? and x.monitoring_date<=? and x.status = 1 and x.systolic_blood_pressure <> 0 and x.diastolic_blood_pressure <> 0)", orgid, startime, endtime).Offset(offset).Limit(limit).Group("x.monitoring_date,x.patient_id").Scan(&record).Error
  3042. return record, err
  3043. }
  3044. func GetInspectionMoninList(id int64, orgid int64, patientid int64) (models.XtInspection, error) {
  3045. inspection := models.XtInspection{}
  3046. err = XTReadDB().Model(&inspection).Where("item_id=? and org_id = ? and status = 1 and patient_id = ?", id, orgid, patientid).Last(&inspection).Error
  3047. return inspection, err
  3048. }
  3049. func TotalSysStandCountTwo(orgid int64, startime int64, endtime int64, sysmin int64, syslarge int64, diamin int64, dialarge int64) (record []*models.XTMonitoringRecords, err error) {
  3050. db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
  3051. if orgid > 0 {
  3052. db = db.Where("x.user_org_id = ? and x.systolic_blood_pressure<>0 and x.diastolic_blood_pressure<>0 ", orgid)
  3053. }
  3054. if startime > 0 {
  3055. db = db.Where("x.monitoring_date>=?", startime)
  3056. }
  3057. if endtime > 0 {
  3058. db = db.Where("x.monitoring_date<=?", endtime)
  3059. }
  3060. if sysmin > 0 {
  3061. db = db.Where(" x.systolic_blood_pressure>=?", sysmin)
  3062. }
  3063. if syslarge > 0 {
  3064. db = db.Where("x.systolic_blood_pressure<=?", syslarge)
  3065. }
  3066. if diamin > 0 {
  3067. db = db.Where(" x.diastolic_blood_pressure>=?", diamin)
  3068. }
  3069. if dialarge > 0 {
  3070. db = db.Where("x.diastolic_blood_pressure<=?", dialarge)
  3071. }
  3072. err = db.Select("x.id,x.user_org_id,x.systolic_blood_pressure,x.diastolic_blood_pressure,x.patient_id,x.monitoring_date,s.name").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.status = 1").Group("x.monitoring_date,x.patient_id").Order("x.monitoring_date desc").Scan(&record).Error
  3073. return record, err
  3074. }
  3075. func TotalSysStandCount(orgid int64, startime int64, endtime int64, sysmin int64, syslarge int64, diamin int64, dialarge int64, page int64, limit int64) (record []*models.XTMonitoringRecords, err error) {
  3076. db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
  3077. if orgid > 0 {
  3078. db = db.Where("x.user_org_id = ? and x.systolic_blood_pressure<>0 and x.diastolic_blood_pressure<>0 ", orgid)
  3079. }
  3080. if startime > 0 {
  3081. db = db.Where("x.monitoring_date>=?", startime)
  3082. }
  3083. if endtime > 0 {
  3084. db = db.Where("x.monitoring_date<=?", endtime)
  3085. }
  3086. if sysmin > 0 {
  3087. db = db.Where(" x.systolic_blood_pressure>=?", sysmin)
  3088. }
  3089. if syslarge > 0 {
  3090. db = db.Where("x.systolic_blood_pressure<=?", syslarge)
  3091. }
  3092. if diamin > 0 {
  3093. db = db.Where(" x.diastolic_blood_pressure>=?", diamin)
  3094. }
  3095. if dialarge > 0 {
  3096. db = db.Where("x.diastolic_blood_pressure<=?", dialarge)
  3097. }
  3098. offset := (page - 1) * limit
  3099. err = db.Select("x.id,x.user_org_id,x.systolic_blood_pressure,x.diastolic_blood_pressure,x.patient_id,x.monitoring_date,s.name").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.status = 1").Group("x.monitoring_date,x.patient_id").Offset(offset).Limit(limit).Order("x.monitoring_date desc").Scan(&record).Error
  3100. return record, err
  3101. }
  3102. func TotalSysNoStandCountTwo(orgid int64, startime int64, endtime int64, sysmin int64, syslarge int64, diamin int64, dialarge int64) (record []*models.XTMonitoringRecords, err error) {
  3103. db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
  3104. if orgid > 0 {
  3105. db = db.Where("x.user_org_id = ? and x.systolic_blood_pressure<>0 and x.diastolic_blood_pressure<>0 ", orgid)
  3106. }
  3107. if startime > 0 {
  3108. db = db.Where("x.monitoring_date>=?", startime)
  3109. }
  3110. if endtime > 0 {
  3111. db = db.Where("x.monitoring_date<=?", endtime)
  3112. }
  3113. err = db.Select("x.id,x.user_org_id,x.systolic_blood_pressure,x.diastolic_blood_pressure,x.patient_id,x.monitoring_date,s.name").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.status = 1 and(x.systolic_blood_pressure<=? or x.systolic_blood_pressure>=?) or (x.diastolic_blood_pressure<=? or x.diastolic_blood_pressure>=?)", sysmin, syslarge, diamin, dialarge).Group("x.monitoring_date,x.patient_id").Order("x.monitoring_date desc").Scan(&record).Error
  3114. return record, err
  3115. }
  3116. func TotalSysNoStandCount(orgid int64, startime int64, endtime int64, sysmin int64, syslarge int64, diamin int64, dialarge int64, page int64, limit int64) (record []*models.XTMonitoringRecords, err error) {
  3117. db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
  3118. if orgid > 0 {
  3119. db = db.Where("x.user_org_id = ? and x.systolic_blood_pressure<>0 and x.diastolic_blood_pressure<>0 ", orgid)
  3120. }
  3121. if startime > 0 {
  3122. db = db.Where("x.monitoring_date>=?", startime)
  3123. }
  3124. if endtime > 0 {
  3125. db = db.Where("x.monitoring_date<=?", endtime)
  3126. }
  3127. offset := (page - 1) * limit
  3128. err = db.Select("x.id,x.user_org_id,x.systolic_blood_pressure,x.diastolic_blood_pressure,x.patient_id,x.monitoring_date,s.name").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.status = 1 and(x.systolic_blood_pressure<=? or x.systolic_blood_pressure>=?) or (x.diastolic_blood_pressure<=? or x.diastolic_blood_pressure>=?)", sysmin, syslarge, diamin, dialarge).Group("x.monitoring_date,x.patient_id").Offset(offset).Limit(limit).Order("x.monitoring_date desc").Scan(&record).Error
  3129. return record, err
  3130. }
  3131. func GetModeIdCount(startime int64, endtime int64, orgid int64, page int64, limit int64) (order []*models.BloodDialysisModeIdCount, err error) {
  3132. table := XTReadDB().Table("xt_schedule as s")
  3133. fmt.Println("table", table)
  3134. db := XTReadDB().Table("xt_dialysis_order as o")
  3135. if orgid > 0 {
  3136. db = db.Where("o.user_org_id = ?", orgid)
  3137. }
  3138. if startime > 0 {
  3139. db = db.Where("o.dialysis_date>=?", startime)
  3140. }
  3141. if endtime > 0 {
  3142. db = db.Where("o.dialysis_date<=?", endtime)
  3143. }
  3144. //offset := (page - 1) * limit
  3145. err = db.Group(" s.patient_id,s.mode_id").Select("s.mode_id, s.patient_id, count(o.id) as count").Joins("left join xt_schedule as s on s.patient_id = o.patient_id").Where("s.schedule_date = o.dialysis_date and s.status =1 ").Scan(&order).Error
  3146. return order, err
  3147. }
  3148. func GetScheduleModeIdCount(startime int64, endtime int64, orgid int64, page int64, limit int64) (order []*models.BloodDialysisModeIdCount, err error) {
  3149. db := XTReadDB().Table("xt_schedule as s").Where("s.status = 1")
  3150. if orgid > 0 {
  3151. db = db.Where("s.user_org_id = ?", orgid)
  3152. }
  3153. if startime > 0 {
  3154. db = db.Where("s.schedule_date>=?", startime)
  3155. }
  3156. if endtime > 0 {
  3157. db = db.Where("s.schedule_date<=?", endtime)
  3158. }
  3159. err = db.Group(" s.patient_id,s.mode_id").Select("s.mode_id,s.patient_id,count(s.id) as count").Scan(&order).Error
  3160. return order, err
  3161. }
  3162. func GetTreatModeList(startime int64, endtime int64, orgid int64) (order []*models.BloodDialysisModeIdCount, err error) {
  3163. table := XTReadDB().Table("xt_schedule as s")
  3164. fmt.Println("table", table)
  3165. db := XTReadDB().Table("xt_dialysis_order as o")
  3166. if orgid > 0 {
  3167. db = db.Where("o.user_org_id = ?", orgid)
  3168. }
  3169. if startime > 0 {
  3170. db = db.Where("o.dialysis_date>=?", startime)
  3171. }
  3172. if endtime > 0 {
  3173. db = db.Where("o.dialysis_date<=?", endtime)
  3174. }
  3175. err = db.Group("s.mode_id").Select("s.mode_id, s.patient_id").Joins("left join xt_schedule as s on s.patient_id = o.patient_id").Where("s.schedule_date = o.dialysis_date and s.status =1 ").Scan(&order).Error
  3176. return order, err
  3177. }
  3178. func GetCountModeId(startime int64, endtime int64, modeid int64, orgid int64) (order []*models.BloodTreateModeIdCount, err error) {
  3179. table := XTReadDB().Table("xt_schedule as s")
  3180. fmt.Println("table", table)
  3181. db := XTReadDB().Table("xt_dialysis_order as o")
  3182. if orgid > 0 {
  3183. db = db.Where("o.user_org_id = ?", orgid)
  3184. }
  3185. if startime > 0 {
  3186. db = db.Where("o.dialysis_date>=?", startime)
  3187. }
  3188. if endtime > 0 {
  3189. db = db.Where("o.dialysis_date<=?", endtime)
  3190. }
  3191. err = db.Group("o.dialysis_date,s.mode_id").Select("s.mode_id, count(s.mode_id) as count,o.dialysis_date").Joins("left join xt_schedule as s on s.patient_id = o.patient_id").Where("s.schedule_date = o.dialysis_date and s.status =1 and s.mode_id = ? and o.dialysis_date <> ''", modeid).Scan(&order).Error
  3192. return order, err
  3193. }
  3194. func GetCountRollout(orgid int64, startime int64, endtime int64, lapsetotype int64, sourcetype int64) (lapseto []*models.BloodLapsetoCount, err error) {
  3195. table := XTReadDB().Table("xt_patients as s")
  3196. fmt.Println(table)
  3197. db := XTReadDB().Table("xt_patient_lapseto as x").Where("x.status = 1")
  3198. if startime > 0 {
  3199. db = db.Where("x.lapseto_time >=?", startime)
  3200. }
  3201. if endtime > 0 {
  3202. db = db.Where("x.lapseto_time<=?", endtime)
  3203. }
  3204. if lapsetotype == 0 || sourcetype == 0 {
  3205. err = db.Group("x.lapseto_time,x.lapseto_type").Select("count(x.id) as count,x.lapseto_type,x.lapseto_time").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.user_org_id = ?", orgid).Scan(&lapseto).Error
  3206. }
  3207. if lapsetotype > 0 {
  3208. err = db.Group("x.lapseto_time,x.lapseto_type").Select("count(x.id) as count,x.lapseto_type,x.lapseto_time").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.user_org_id = ? and s.lapseto = ?", orgid, lapsetotype).Scan(&lapseto).Error
  3209. }
  3210. if sourcetype > 0 {
  3211. err = db.Group("x.lapseto_time,x.lapseto_type").Select("count(x.id) as count,x.lapseto_type,x.lapseto_time").Joins("left join xt_patients as s on s.id = x.patient_id").Where("s.user_org_id = ? and s.source = ?", orgid, sourcetype).Scan(&lapseto).Error
  3212. }
  3213. return lapseto, err
  3214. }
  3215. func GetCheckExaminePercent(start_time int64, end_time int64, org_id int64, name_type int64) (total int64) {
  3216. switch name_type {
  3217. case 1:
  3218. key := "%" + "血常规" + "%"
  3219. readDb.Model(&models.Inspection{}).Where("inspect_date >= ? AND inspect_date <= ? AND user_org_id = ? AND status = 1 AND (item_name Like ? Or project_name Like ?)", start_time, end_time, org_id, key).Group("patient_id").Count(&total)
  3220. break
  3221. case 2:
  3222. //key := "%" + "肝功能" + "%"
  3223. //key1 := "%" + "肾功能" + "%"
  3224. //key2 := "%" + "电解质" + "%"
  3225. //key3 := "%" + "血脂" + "%"
  3226. //readDb.Model(&models.Inspection{}).Where("inspect_date >= ? AND inspect_date <= ? AND user_org_id = ? AND status = 1 AND ((item_name Like ? Or project_name Like ?) Or (item_name Like ? Or project_name Like ?) Or (item_name Like ? Or project_name Like ?) Or (item_name Like ? Or project_name Like ?))", start_time, end_time, org_id, key, key, key1, key1, key2, key2, key3, key3).Group("patient_id").Count(&total)
  3227. break
  3228. case 3:
  3229. //key := "%" + "肝功能" + "%"
  3230. //readDb.Model(&models.Inspection{}).Where("inspect_date >= ? AND inspect_date <= ? AND user_org_id = ? AND status = 1 AND ((item_name Like ? Or project_name Like ?) Or (item_name Like ? Or project_name Like ?) Or (item_name Like ? Or project_name Like ?) Or (item_name Like ? Or project_name Like ?))", start_time, end_time, org_id, key, key, key1, key1, key2, key2, key3, key3).Group("patient_id").Count(&total)
  3231. break
  3232. case 4:
  3233. break
  3234. case 5:
  3235. break
  3236. case 6:
  3237. break
  3238. }
  3239. return
  3240. }
  3241. func GetAllPatientCount(orgid int64) (total int64, err error) {
  3242. err = XTReadDB().Where("user_org_id = ? and status = 1", orgid).Count(&total).Error
  3243. return
  3244. }
  3245. func GetPatientInspectionList(user_org_id int64) (inspection []*models.XtInspection, err error) {
  3246. err = XTReadDB().Where("inspect_date>=? and inspect_date<=? and org_id = ? and status=1", 1704038400, 1711814400, user_org_id).Group("patient_id").Find(&inspection).Error
  3247. return inspection, err
  3248. }