1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628 |
- package service
-
- import (
- "fmt"
- "strconv"
- "time"
-
- "XT_New/models"
- "github.com/jinzhu/gorm"
- )
-
- func GetInspectionMajor(orgid int64) (inspection []*models.XtInspectionReference, err error) {
-
- err = XTReadDB().Model(&inspection).Where("org_id = ? and status = 1", orgid).Group("project_name").Order("id asc").Find(&inspection).Error
- return inspection, err
- }
-
- func GetInspectionMinor(projectid int64, orgid int64) (inspection []*models.XtInspectionReference, err error) {
-
- err = XTReadDB().Model(&inspection).Where("project_id = ? and status = 1 and org_id = ?", projectid, orgid).Find(&inspection).Error
- return inspection, err
- }
-
- func GetInspectionRange(id int64) (models.XtInspectionReference, error) {
- reference := models.XtInspectionReference{}
- err := XTReadDB().Model(&reference).Where("id=? and status = 1", id).Find(&reference).Error
- return reference, err
- }
-
- func GetItemid(id int64) (models.XtInspectionReference, error) {
- reference := models.XtInspectionReference{}
- err = XTReadDB().Model(&reference).Where("id = ? and status = 1", id).Find(&reference).Error
- return reference, err
- }
-
- func GetConfigurationById(major int64, moni int64, orgid int64) (*models.XtQualityControlStandard, error) {
- standard := models.XtQualityControlStandard{}
- err := XTReadDB().Model(&standard).Where("inspection_major = ? and inspection_minor = ? and user_org_id = ? and status = 1", major, moni, orgid).Find(&standard).Error
- if err == gorm.ErrRecordNotFound {
- return nil, err
- }
- if err != nil {
- return nil, err
- }
- return &standard, nil
- }
-
- func GetConfigurationByIdTwo(major int64, moni int64, orgid int64) (standard models.XtQualityControlStandard, err error) {
-
- err = XTReadDB().Model(&standard).Where("inspection_major = ? and inspection_minor = ? and user_org_id = ? and status = 1", major, moni, orgid).First(&standard).Error
- return standard, err
- }
-
- func SaveInspection(standard *models.XtQualityControlStandard) error {
-
- err := XTWriteDB().Create(&standard).Error
- return err
- }
-
- func GetConfigurationlist(orgid int64, limit int64, page int64) (standard []*models.QualityControlStandard, total int64, err error) {
-
- db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
- if orgid > 0 {
- db = db.Where("x.user_org_id = ? and x.is_status = 1", orgid)
- }
- table := XTReadDB().Table("xt_inspection_reference as s")
- fmt.Println(table)
- offset := (page - 1) * limit
- 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).
- Joins("left join xt_inspection_reference as s on s.id = x.inspection_minor").Offset(offset).Limit(limit).Scan(&standard).Error
- return standard, total, err
- }
-
- func GetDefaultBloodPressure(orgid int64) (standard []*models.XtQualityControlStandard, err error) {
- err = XTReadDB().Model(&standard).Where("user_org_id = ? and status = 1 and is_status = 0", orgid).Find(&standard).Error
- return standard, err
- }
-
- func GetConfigurationListTwo(orgid int64, limit int64, page int64) (standard []*models.QualityControlStandard, total int64, err error) {
- db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
- if orgid > 0 {
- db = db.Where("x.user_org_id = ? and x.is_status =1", orgid)
- }
- table := XTReadDB().Table("xt_inspection_reference as s")
- fmt.Println(table)
- offset := (page - 1) * limit
- 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").
- 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
- return standard, total, err
- }
-
- func GetConfigurationDetail(id int64) (models.XtQualityControlStandard, error) {
- standard := models.XtQualityControlStandard{}
- err := XTReadDB().Model(&standard).Where("id=? and status = 1", id).Find(&standard).Error
- return standard, err
- }
-
- func GetIdByItemId(itemid int64, orgid int64) (models.XtInspectionReference, error) {
- reference := models.XtInspectionReference{}
- err := XTReadDB().Model(&reference).Where("item_id = ? and org_id = ?", itemid, orgid).Find(&reference).Error
- return reference, err
- }
-
- func GetAllInspectionMinor(orgid int64) (standard []*models.XtInspectionReference, err error) {
-
- err = XTReadDB().Model(&standard).Where("org_id = ? and status = 1", orgid).Find(&standard).Error
- return standard, err
- }
-
- func UpdarteConfiguration(st *models.XtQualityControlStandard, id int64) error {
-
- 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
- return err
- }
-
- func DeleteConfiguration(id int64) (err error) {
-
- err = XTWriteDB().Model(models.XtQualityControlStandard{}).Where("id=?", id).Updates(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
- return err
- }
-
- func GetAllInspectionData(orgid int64) (*models.XtInspectionReference, error) {
- diseases := models.XtInspectionReference{}
- err := XTReadDB().Model(&diseases).Where("org_id = ? and status = 1", orgid).Find(&diseases).Error
- if err == gorm.ErrRecordNotFound {
- return nil, err
- }
- if err != nil {
- return nil, err
- }
- return &diseases, nil
- }
-
- func GetAllInspectiondatatwo(orgid int64) (reference []*models.XtInspectionReference, err error) {
-
- err = XTReadDB().Model(&reference).Where("org_id = ? and status = 1", orgid).Group("project_name").Find(&reference).Error
- return reference, err
- }
-
- func GetInspectionMajorById(marjor int64, orgid int64) (*models.XtCheckConfiguration, error) {
- configuration := models.XtCheckConfiguration{}
- err := XTReadDB().Model(&configuration).Where("inspection_major = ? and user_org_id = ? and status =1", marjor, orgid).Find(&configuration).Error
- if err == gorm.ErrRecordNotFound {
- return nil, err
- }
- if err != nil {
- return nil, err
- }
- return &configuration, nil
- }
-
- func GetInspectionMajorByIdTwo(marjor int64, orgid int64) (configuration models.XtCheckConfiguration, err error) {
- err = XTReadDB().Model(&configuration).Where("inspection_major = ? and user_org_id = ? and status =1", marjor, orgid).First(&configuration).Error
- return configuration, err
- }
-
- func CreateCheckConfiguration(configuration *models.XtCheckConfiguration) error {
- err := XTWriteDB().Create(&configuration).Error
- return err
- }
-
- func GetAllChekcListTwo(orgid int64, page int64, limit int64) (check []*models.CheckConfiguration, total int64, err error) {
- db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- if orgid > 0 {
- db = db.Where("x.user_org_id = ?", orgid)
- }
- offset := (page - 1) * limit
- 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).
- Joins("left join xt_inspection_reference as r on r.project_id = x.inspection_major").Offset(offset).Limit(limit).Scan(&check).Error
- return check, total, err
- }
-
- func GetAllCheckList(orgid int64, page int64, limit int64) (check []*models.CheckConfiguration, total int64, err error) {
-
- db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- if orgid > 0 {
- db = db.Where("x.user_org_id = ?", orgid)
- }
- offset := (page - 1) * limit
- 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).
- 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
- return check, total, err
- }
-
- func GetCheckDetail(id int64) (models.XtCheckConfiguration, error) {
-
- configuration := models.XtCheckConfiguration{}
- err := XTReadDB().Model(&configuration).Where("id=? and status =1", id).Find(&configuration).Error
- return configuration, err
- }
-
- func UpdateCheck(con *models.XtCheckConfiguration, id int64) error {
-
- 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
- return err
- }
-
- func DeleteCheck(id int64) error {
-
- err := XTWriteDB().Model(models.XtCheckConfiguration{}).Where("id=?", id).Updates(map[string]interface{}{"status": 0, "updated_time": time.Now().Unix()}).Error
- return err
- }
-
- //
- //func GetDialysiTotal(startime int64, endtime int64, orgid int64,lapsetotype int64,sourcetype int64) (order []*models.DialysisOrder, total int64, err error) {
- // err = XTReadDB().Model(&order).Where("dialysis_date >= ? and dialysis_date<=? and user_org_id = ?", startime, endtime, orgid).Count(&total).Find(&order).Error
- // return order, total, err
- //}
-
- func GetDialysiTotal(startime int64, endtime int64, orgid int64, lapsetotype int64, sourcetype int64) (models.PatientPrescriptionCountStruct, error) {
- counts := models.PatientPrescriptionCountStruct{}
-
- 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)
-
- if lapsetotype > 0 {
- 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
- }
- if lapsetotype == 0 {
- err = db.Joins("left join xt_patients as s on s.id= x.patient_id").Scan(&counts).Error
- }
-
- if sourcetype > 0 {
- 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
- }
-
- if sourcetype == 0 {
- err = db.Joins("left join xt_patients as s on s.id= x.patient_id").Scan(&counts).Error
- }
-
- return counts, err
- }
-
- func GetDialysisCountMode(starttime int64, endtime int64, orgid int64, lapsetotype int64, sourcetype int64) (counts []*models.PatientPrescriptionCountStruct, err error) {
- db := readDb.Table("xt_dialysis_order as o").Where("o.status = 1")
- if starttime > 0 {
- db = db.Where("o.dialysis_date >=?", starttime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- if orgid > 0 {
- db = db.Where("o.user_org_id = ?", orgid)
- }
- if lapsetotype > 0 {
- db = db.Where("p.lapseto = ?", lapsetotype)
- }
- if sourcetype > 0 {
- db = db.Where("p.source = ?", sourcetype)
- }
- 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
- return counts, err
- }
-
- func GetTotalRollOut(starttime int64, endtime int64, orgid int64) (counts []*models.PatientLapseto, total int64, err error) {
-
- db := readDb.Table("xt_patient_lapseto as x").Where("x.status = 1")
- table := readDb.Table("xt_dialysis_order as s")
- fmt.Println(table)
- 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
- return counts, total, err
- }
-
- func GetTotalRollOutPatients(orgid int64, startime int64, endtime int64, lapsetotype int64, sourcetype int64) (patients []*models.XtPatients, err error) {
-
- db := XTReadDB().Table("xt_patients as x")
-
- if sourcetype == 0 {
- 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
- }
- if sourcetype > 0 {
- 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
- }
- return patients, err
- }
-
- func GetTotalRollOutPatientsTwo(orgid int64, startime int64, endtime int64, lapsetotype int64, sourcetype int64) (patients []*models.XtPatients, err error) {
- db := XTReadDB().Table("xt_patients as x")
- if sourcetype == 0 {
-
- 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
-
- }
- if sourcetype > 0 {
-
- 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
- }
- return patients, err
- }
-
- func GetPatientTotalCount(orgID int64, lapsetotype int64, sourcetype int64) (total int64) {
- db := readDb.Table("xt_patients as x")
- //if lapsetotype > 0 {
- // db = db.Where("x.lapseto = ?", lapsetotype)
- //}
- //if sourcetype > 0 {
- // db = db.Where("x.source = ?", sourcetype)
- //}
- db.Where("x.user_org_id=? and x.status=1", orgID).Count(&total)
- return
- }
-
- func GetPatientTotalCountTwo(orgid int64, starttime int64, endtime int64) (dialysisorder []*models.XtDialysisOrder, total int64, err error) {
-
- 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
- return dialysisorder, total, err
- }
-
- func GetManPatientTotalCount(orgid int64, starttime int64, endtime int64) (dialysisorder []*models.SgjDialysisOrder, total int64, err error) {
-
- db := XTReadDB().Table("xt_dialysis_order as s").Where("s.status = 1")
- table := XTReadDB().Table("xt_patients as x")
- fmt.Println("table", table)
- 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
- return dialysisorder, total, err
-
- }
-
- func GetManPatientTotal(orgid int64, lapsetotype int64, sourcetype int64) (patients []*models.XtPatients, total int64, err error) {
-
- db := XTReadDB().Table("xt_patients as x").Where("x.status = 1")
- if lapsetotype > 0 {
- db = db.Where("x.lapseto = ?", lapsetotype)
- }
- if sourcetype > 0 {
- db = db.Where("x.source = ?", sourcetype)
- }
- err = db.Where("x.user_org_id = ? and x.status = 1 and x.gender = 1", orgid).Count(&total).Find(&patients).Error
- return patients, total, err
- }
-
- func GetWoManPatientTotal(orgid int64, lapsetotype int64, sourcetype int64) (patients []*models.XtPatients, total int64, err error) {
- db := XTReadDB().Table("xt_patients as x").Where("x.status = 1")
- if lapsetotype > 0 {
- db = db.Where("x.lapseto = ?", lapsetotype)
- }
- if sourcetype > 0 {
- db = db.Where("x.source = ?", sourcetype)
- }
- err = db.Where("x.user_org_id = ? and x.status = 1 and x.gender = 2", orgid).Count(&total).Find(&patients).Error
- return patients, total, err
- }
-
- //func GetPatientInfectiousCount(orgid int64, starttime int64, endtime int64) (counts []*models.PatientContagionsCountStruct, err error) {
- // 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
- // return counts, err
- //}
-
- func GetPatientInfectiousCount(orgid int64, startime int64, endtime int64, lapsetotype int64, sourcetype int64) (counts []*models.PatientContagionsCountStruct, err error) {
-
- if lapsetotype == 0 {
- 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 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
- }
- if sourcetype == 0 {
- 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 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
- }
-
- if lapsetotype > 0 {
- 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 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
- }
-
- if sourcetype > 0 {
- 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 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
- }
-
- return counts, err
-
- }
-
- func GetPatientOtherInfectious(orgid int64) (patients []*models.XtPatients, total int64, err error) {
-
- err = XTReadDB().Model(&patients).Where("user_org_id = ? and status = 1 and is_infectious = 1", orgid).Count(&total).Find(&patients).Error
- return patients, total, err
- }
-
- func GetTotalAgeCount(orgid int64, lapsetotype int64, sourcetype int64) (counts []*models.PatientAgeCountStruct, err error) {
-
- if lapsetotype == 0 || sourcetype == 0 {
- readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
- SELECT
- CASE
- 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'
- 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'
- 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'
- 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'
- ELSE '150'
- END
- AS nnd FROM xt_patients as s where s.user_org_id=? and s.status=1
- )a GROUP BY nnd`, orgid).Scan(&counts)
-
- }
-
- if lapsetotype > 0 {
- readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
- SELECT
- CASE
- 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'
- 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'
- 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'
- 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'
- ELSE '150'
- END
- AS nnd FROM xt_patients as s where s.user_org_id=? and s.status=1 and s.lapseto = ?
- )a GROUP BY nnd`, orgid, lapsetotype).Scan(&counts)
-
- }
-
- if sourcetype > 0 {
- readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
- SELECT
- CASE
- 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'
- 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'
- 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'
- 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'
- ELSE '150'
- END
- AS nnd FROM xt_patients as s where s.user_org_id=? and s.status=1 and s.source = ?
- )a GROUP BY nnd`, orgid, sourcetype).Scan(&counts)
-
- }
- return
- }
-
- func GetTotalAgeCountTwo(orgid int64, starttime int64, endtime int64) (counts []*models.PatientAgeCountStruct, err error) {
- readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
- SELECT
- CASE
- 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'
- END
- 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<=?
- )a GROUP BY nnd`, orgid, starttime, endtime).Scan(&counts)
- return
- }
-
- func GetTotalDialysisAgeCount(orgid int64) (patients []*models.XtPatients, err error) {
-
- err = XTReadDB().Where("user_org_id = ? and status =1", orgid).Find(&patients).Error
- return patients, err
- }
-
- func GetDialysisAgeData(orgID int64, lapsetotype int64, sourcetype int64) (counts []*models.DialysisAgePieDataStruct, err error) {
-
- if lapsetotype == 0 || sourcetype == 0 {
- readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
- SELECT
- CASE
- 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'
- 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'
- 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'
- WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 60 THEN '4'
- 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)
- }
-
- if lapsetotype > 0 {
- readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
- SELECT
- CASE
- 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'
- 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'
- 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'
- WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 60 THEN '4'
- 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)
- }
-
- if sourcetype > 0 {
- readDb.Raw(`SELECT nnd AS 'age',COUNT(*) AS 'count' FROM(
- SELECT
- CASE
- 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'
- 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'
- 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'
- WHEN TIMESTAMPDIFF( YEAR, DATE( DATE_ADD( FROM_UNIXTIME( 0 ), INTERVAL p.first_dialysis_date SECOND ) ), curdate( ) ) > 60 THEN '4'
- 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)
- }
-
- return
- }
-
- func GetCurentOrgPatients(orgid int64) (patients []*models.BloodXtPatients, err error) {
-
- err = XTReadDB().Where("user_org_id = ? and status =1", orgid).Order("created_time desc").Find(&patients).Error
- return patients, err
- }
-
- func TotalDialysisCount(startime int64, endtime int64, orgid int64) (order []*models.BloodDialysisOrderCount, err error) {
-
- db := XTReadDB().Table("xt_dialysis_order as o")
-
- 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
- return order, err
- }
-
- func GetDialysisList(startime int64, endtime int64, page int64, limit int64, orgid int64) (order []*models.BloodDialysisOrder, total int64, err error) {
-
- db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
-
- if orgid > 0 {
- db = db.Where("o.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("o.dialysis_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- offset := (page - 1) * limit
- 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
- return order, total, err
-
- }
-
- func GetDialysisScheduleList(startime int64, endtime int64, page int64, limit int64, orgid int64) (order []*models.BloodDialysisOrderSchedule, err error) {
-
- db := XTReadDB().Table("xt_schedule as o").Where("o.status = 1")
-
- if orgid > 0 {
- db = db.Where("o.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("o.schedule_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.schedule_date<=?", endtime)
- }
- 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
- return order, err
- }
-
- func GetAllDialysisList(startime int64, endtime int64, orgid int64) (order []*models.BloodDialysisOrder, err error) {
-
- db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
- if orgid > 0 {
- db = db.Where("o.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("o.dialysis_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- 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
- return order, err
- }
-
- func GetDialysisPatientList(startime int64, endtime int64, page int64, limit int64, orgid int64) (order []*models.BloodDialysisOrder, total int64, err error) {
-
- db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
- db = db.Where("o.user_org_id = ?", orgid)
- if startime > 0 {
- db = db.Where("o.dialysis_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- offset := (page - 1) * limit
- 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
- return order, total, err
- }
-
- func GetLastSort(orgid int64) (models.XtQualityControlStandard, error) {
- standard := models.XtQualityControlStandard{}
- err := XTReadDB().Model(&standard).Where("user_org_id = ? and status =1 and is_status = 1", orgid).Last(&standard).Error
- return standard, err
- }
-
- func GetLastCheckList(orgid int64) (models.XtCheckConfiguration, error) {
- configuration := models.XtCheckConfiguration{}
- err := XTReadDB().Model(&configuration).Where("user_org_id = ? and status =1", orgid).Last(&configuration).Error
- return configuration, err
- }
-
- func GetDialysisDetailById(id int64, orgid int64, startime int64, endtime int64, limit int64, page int64) (prescription []*models.BloodDialysisPrescription, total int64, err error) {
-
- db := XTReadDB().Table("xt_dialysis_prescription as p").Where("p.status =1 ")
- table := XTReadDB().Table("xt_patients as s")
- fmt.Println(table)
- if id > 0 {
- db = db.Where("p.patient_id = ?", id)
- }
-
- if orgid > 0 {
- db = db.Where("p.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("p.record_date >= ?", startime)
- }
- if endtime > 0 {
- db = db.Where("p.record_date <=?", endtime)
- }
- offset := (page - 1) * limit
- 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
- return prescription, total, err
- }
-
- func GetPrescritionByName(orgid int64, patient_id int64, startime int64, endtime int64, limit int64, page int64) (prescription []*models.BloodDialysisPrescription, total int64, err error) {
-
- db := XTReadDB().Table("xt_dialysis_prescription as p").Where("p.status =1 ")
- table := XTReadDB().Table("xt_patients as s")
- fmt.Println(table)
- //if len(keywords) > 0 {
- // likeKey := "%" + keywords + "%"
- // db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", likeKey, likeKey)
- //}
- if patient_id > 0 {
- db = db.Where("s.id = ?", patient_id)
- }
- if orgid > 0 {
- db = db.Where("p.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("p.record_date >= ?", startime)
- }
- if endtime > 0 {
- db = db.Where("p.record_date <=?", endtime)
- }
- offset := (page - 1) * limit
- 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
- return prescription, total, err
- }
-
- func GetTreateInfo(orgID int64, startime int64, endtime int64, lapseto int64, limit int64, page int64) (blood []*models.TreatDialysisOrder, total int64, err error) {
-
- db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1")
- sql := "from_unixtime(o.dialysis_date, '%Y%m%d') AS date"
- if orgID > 0 {
- db = db.Where("o.user_org_id = ?", orgID)
- }
- if startime > 0 {
- db = db.Where("o.dialysis_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- if lapseto == 0 {
- db = db.Where("p.lapseto = 1 or p.lapseto = 2")
- }
- if lapseto > 0 {
- db = db.Where("p.lapseto = ?", lapseto)
- }
- 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
- return blood, total, err
-
- }
- func GetTreatList(orgid int64, startime int64, endtime int64, lapseto int64) (ttd []*models.TreatTotalStruct, err error) {
- db := XTReadDB().Table("xt_dialysis_order as o").Where("o.status = 1 ")
- p := XTReadDB().Table("xt_patients as p")
- fmt.Println(p)
- if orgid > 0 {
- db = db.Where("o.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("o.dialysis_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- //if lapseto == 0 {
- // db = db.Where("p.lapseto = 1 or p.lapseto = 2")
- //}
- if lapseto > 0 {
- db = db.Where("p.lapseto = ?", lapseto)
- }
- 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
- return ttd, err
- }
-
- func GetStatistics(orgID int64, startime int64, endtime int64, modeID int64) (dtd []*DialysisTotalDataStruct, ttd []*DialysisTotalDataStruct, err error) {
- db := readDb
- sql := "s.mode_id,from_unixtime(o.dialysis_date, '%Y%m%d') as date, count(o.dialysis_date) as number"
- datesql := " o.dialysis_date as date"
- group := "from_unixtime(o.dialysis_date, '%Y%m%d')"
- 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")
- if orgID > 0 {
- db = db.Where("o.user_org_id = ?", orgID)
- }
- if modeID > 0 {
- db = db.Where("s.mode_id=?", modeID)
- }
- if startime > 0 {
- db = db.Where("o.dialysis_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- db = db.Where("o.status=1")
-
- err = db.Select("s.mode_id, count(s.mode_id) as number").Order("s.mode_id asc").Find(&ttd).Error
- if err != nil {
- return
- }
-
- var ds []*DialysisTotalDataStruct
- err = db.Select(datesql).Group(group).Find(&ds).Error
- if err != nil {
- return
- }
-
- dates := make([]string, 0)
- if len(ds) > 0 {
- for _, d := range ds {
- dates = append(dates, d.Date)
- }
-
- db = db.Where("o.dialysis_date IN (?)", dates)
-
- }
-
- err = db.Select(sql).Group(group + ", s.mode_id").Order("date asc, s.mode_id").Find(&dtd).Error
- return
-
- }
-
- func GetInspectionTotalCount(orgid int64) (configuration []*models.CheckConfiguration, err error) {
- var count int
- db := XTReadDB().Table("xt_check_configuration as x").Where("x.status = 1")
- table := XTReadDB().Table("xt_inspection_reference as s")
- if orgid > 0 {
- db = db.Where("x.user_org_id = ?", orgid)
- }
- fmt.Println(table)
- 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
- return configuration, err
- }
-
- func GetInspectionProjectCount(orgid int64, startime int64, endtime int64, patientid int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
-
- db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
- fmt.Println(d)
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- if patientid > 0 {
- db = db.Where("x.patient_id = ?", patientid)
- }
-
- 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
- return
- }
-
- func GetInspectionDetailById(id int64, orgid int64, startime int64, endtime int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
- db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
- fmt.Println(d)
- if id > 0 {
- db = db.Where("x.patient_id=?", id)
- }
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
-
- 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
- return
- }
-
- func GetSearchPatientInfo(orgid int64, keywords int64, startime int64, endtime int64) (projectCounts []*models.UserInspectionProjectCounts, err error) {
-
- db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
- fmt.Println(d)
- p := XTReadDB().Table("xt_patients as p")
- fmt.Println(p)
- //if len(keywords) > 0 {
- // likeKey := "%" + keywords + "%"
- // db = db.Where("p.name LIKE ? OR p.dialysis_no LIKE ?", likeKey, likeKey)
- //}
- if keywords > 0 {
- db = db.Where("x.patient_id = ?", keywords)
- }
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
-
- 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
- return
- }
-
- func GetMajorInspectionByOrgid(orgid int64) (checkconfiguration []*models.CheckConfiguration, err error) {
-
- db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
- table := XTReadDB().Table("xt_inspection_reference ar r")
- fmt.Println(table)
- 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
- return checkconfiguration, err
- }
-
- func GetDefaultByOrgId(orgid int64) (checkconfiguration []*models.CheckConfiguration, err error) {
-
- db := XTReadDB().Table("xt_check_configuration as x").Where("x.status =1")
- table := XTReadDB().Table("xt_inspection_reference ar r")
- fmt.Println(table)
- 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
- return checkconfiguration, err
- }
-
- func GetPatientListData(orgid int64, startime int64, endtime int64, limit int64, page int64) (inspection []*models.PatientsInspection, total int64, err error) {
-
- db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
- table := XTReadDB().Table("xt_patients as s")
- fmt.Println("table", table)
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >= ?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- offset := (page - 1) * limit
- 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
- return inspection, total, err
- }
-
- func GetPatientListInfo(orgid int64, startime int64, endtime int64, limit int64, page int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
-
- patients, _, err := GetPatientListData(orgid, startime, endtime, limit, page)
-
- db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
- pa := XTReadDB().Table("xt_patients as s")
- fmt.Println(pa)
- fmt.Println(d)
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
-
- //if len(ds) > 0 {
- // for _, d := range ds {
- // dates = append(dates, d.Date)
- // }
- //
- // db = db.Where("o.dialysis_date IN (?)", dates)
- //
- ////}
-
- selectContent := "CASE"
- dates := make([]string, 0)
- for _, item := range patients {
- selectContent = selectContent + " WHEN x.patient_id =" + strconv.FormatInt(item.PatientId, 10) + " THEN " + "'" + item.Name + "'"
- dates = append(dates, strconv.FormatInt(item.PatientId, 10))
- }
- db = db.Where("x.patient_id in(?)", dates)
- 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
- //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
- return
- }
-
- func GetPatientDetailCheck(id int64, orgid int64, startime int64, endtime int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
-
- db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
- if id > 0 {
- db = db.Where("s.id = ?", id)
- }
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
-
- 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
- return
- }
-
- func GetSearchDetailCheck(orgid int64, keywords string, startime int64, endtime int64) (projectCounts []*models.PatientInspectionProjectCount, err error) {
- db := XTReadDB().Table("xt_inspection as x").Where("x.status = 1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- d := XTReadDB().Table("xt_check_configuration as t").Where("t.status = 1")
- pa := XTReadDB().Table("xt_patients as s")
- fmt.Println(pa)
- fmt.Println(d)
- if len(keywords) > 0 {
- likeKey := "%" + keywords + "%"
- db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", likeKey, likeKey)
- }
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
-
- 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
- return
- }
-
- func GetNormDataByOrgId(orgid int64) (standard []*models.QualityControlStandard, err error) {
-
- db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
- if orgid > 0 {
- db = db.Where("x.user_org_id = ? and x.is_status = 1", orgid)
- }
- table := XTReadDB().Table("xt_inspection_reference as s")
- fmt.Println(table)
-
- 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").
- 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
- return standard, err
- }
-
- func GetNormData(orgid int64) (standard []*models.QualityControlStandard, err error) {
-
- db := XTReadDB().Table("xt_quality_control_standard as x").Where("x.status =1")
- if orgid >= 0 {
- db = db.Where("x.user_org_id = ? and x.is_status = 1", orgid)
- }
- table := XTReadDB().Table("xt_inspection_reference as s")
- fmt.Println(table)
-
- 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").
- 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
- return standard, err
- }
-
- func GetItemNameGroup(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientInspection, err error) {
- db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- 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
- return inspection, err
- }
-
- func GetFirstQuarter(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientInspection, err error) {
-
- db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
- table := XTReadDB().Table("xt_inspection_reference as r")
- fmt.Println(table)
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- 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
- return inspection, err
- }
-
- func GetQuarterTotalCount(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (inspection []*models.VmPatientInspectionTwo, err error) {
-
- db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
- if orgid > 0 {
- 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)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- if lapseto > 0 && origin > 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ? AND p.source = ?", lapseto, origin)
- }
- if lapseto > 0 && origin == 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ?", lapseto)
- }
-
- if lapseto == 0 && origin > 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.source = ?", origin)
- }
- 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
- return inspection, err
- }
-
- func GetQuarterTotalCountTwo(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (inspection []*models.VmPatientInspectionTwo, err error) {
- db := XTReadDB().Table("xt_inspection as x ").Where("x.status = 1")
- q := XTReadDB().Table("x.xt_quality_control_standard as q")
- fmt.Println(q)
- if orgid > 0 {
- 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)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- if lapseto > 0 && origin > 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ? AND p.source = ?", lapseto, origin)
- }
- if lapseto > 0 && origin == 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ?", lapseto)
- }
-
- if lapseto == 0 && origin > 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.source = ?", origin)
- }
- 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
- return inspection, err
- }
-
- 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) {
-
- if lapseto == 0 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >= ?", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 1 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
- "ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
-
- if startime > 0 {
- db = db.Where("x.inspect_date >= ?", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
-
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 2 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
-
- if startime > 0 {
- db = db.Where("x.inspect_date >= ?", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
-
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
-
- }
- return
- }
-
- 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) {
-
- if lapseto == 0 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value<> ''")
- table := XTReadDB().Table("xt_inspection_reference as r")
- q := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println("q", q)
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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 '第一季度'" +
- " 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 '第二季度'" +
- " 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 '第三季度'" +
- " 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 '第四季度'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >= ? ", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
-
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 1 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value<> ''")
- table := XTReadDB().Table("xt_inspection_reference as r")
- q := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println("q", q)
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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 '第一季度'" +
- " 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 '第二季度'" +
- " 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 '第三季度'" +
- " 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 '第四季度'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >= ? ", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
-
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
- return
- }
-
- 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) {
-
- if lapseto == 0 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_type = 2")
- table := XTReadDB().Table("xt_inspection_reference as r")
- q := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println("q", q)
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第一季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第二季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第三季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第四季度'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >= ? ", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
-
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 1 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_type = 2")
- table := XTReadDB().Table("xt_inspection_reference as r")
- q := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println("q", q)
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第一季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第二季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第三季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = r.range_value THEN '第四季度'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >= ? ", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
-
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
- return
- }
-
- 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) {
-
- if lapseto == 0 {
-
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0 and x.inspect_type = 1")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 1 {
-
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_value <> 0 and x.inspect_type = 1 ")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 2 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 x.inspect_value <> 0 and x.inspect_type = 1")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
- return
- }
-
- 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) {
-
- if lapseto == 0 {
-
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 1 {
-
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and and x.inspect_type = 2")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 2 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
- return
- }
-
- 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) {
-
- if lapseto == 0 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >= ?", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 1 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >= ?", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 2 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
-
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第一季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第二季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第三季度'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? THEN '第四季度'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
-
- if startime > 0 {
- db = db.Where("x.inspect_date >= ?", startime)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <= ?", endtime)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, endtime)
- }
-
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
-
- }
- return
- }
-
- 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) {
- if lapseto == 0 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 1")
- table := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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 '一月'" +
- " 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 '二月'" +
- " 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 '三月'" +
- " 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 '四月'" +
- " 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 '五月'" +
- " 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 '六月'" +
- " 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 '七月'" +
- " 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 '八月'" +
- " 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 '九月'" +
- " 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 '十月'" +
- " 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 '十一月'" +
- " 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 '十二月'" +
- " ELSE '其他'" +
- "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 )"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 1 {
-
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 1")
- table := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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 '一月'" +
- " 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 '二月'" +
- " 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 '三月'" +
- " 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 '四月'" +
- " 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 '五月'" +
- " 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 '六月'" +
- " 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 '七月'" +
- " 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 '八月'" +
- " 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 '九月'" +
- " 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 '十月'" +
- " 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 '十一月'" +
- " 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 '十二月'" +
- " ELSE '其他'" +
- "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 )"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 2 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 1")
- table := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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 '一月'" +
- " 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 '二月'" +
- " 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 '三月'" +
- " 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 '四月'" +
- " 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 '五月'" +
- " 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 '六月'" +
- " 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 '七月'" +
- " 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 '八月'" +
- " 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 '九月'" +
- " 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 '十月'" +
- " 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 '十一月'" +
- " 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 '十二月'" +
- " ELSE '其他'" +
- "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 )"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
- return
- }
-
- 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) {
- if lapseto == 0 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
- table := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 1 {
-
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
- table := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
-
- if lapseto == 2 {
- d := XTReadDB().Table("xt_patients as s")
- fmt.Println("d", d)
- db := readDb.Table("xt_inspection as x ").Where("x.status=1 and x.inspect_type = 2")
- table := XTReadDB().Table("xt_quality_control_standard as r")
- fmt.Println(table)
- countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '二月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '三月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '四月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '五月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '六月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '七月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '八月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '九月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十一月'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? and x.inspect_value = r.range_value THEN '十二月'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
- }
- if orgid > 0 {
- db = db.Where("r.user_org_id=?", orgid)
- countSQL += " AND r.user_org_id=?"
- countParams = append(countParams, orgid)
- }
- if modetype > 0 {
- db = db.Where("x.item_id = ?", modetype)
- countSQL += " AND x.item_id=?"
- countParams = append(countParams, modetype)
- }
- if januaryStartStrUnix > 0 {
- db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date >=?"
- countParams = append(countParams, januaryStartStrUnix)
- }
- if decEndStrsUnix > 0 {
- db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
- countSQL += " AND x.inspect_date <=?"
- countParams = append(countParams, decEndStrsUnix)
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- }
- return
- }
-
- func GetPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64, page int64, limit int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
-
- db := readDb.Table("xt_inspection as x").Where("x.status =1")
- table := readDb.Table("xt_patients as s")
- fmt.Println(table)
- d := readDb.Table(" xt_inspection_reference as r")
- fmt.Println(d)
-
- if orgid > 0 {
- db = db.Where("x.org_id = ? and x.inspect_value <> ''", orgid)
- }
- if lapstor == 0 {
- table = table.Where("s.lapseto = 1 or s.lapseto = 2")
- }
- if lapstor == 1 {
- db = db.Where("s.lapseto = 1")
- }
- if lapstor == 2 {
- db = db.Where("s.lapseto = 2")
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- offset := (page - 1) * limit
- 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
-
- return inspection, total, err
- }
-
- //func GetPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64, page int64, limit int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
- //
- // db := readDb.Table("xt_inspection as x").Where("x.status =1")
- // table := readDb.Table("xt_patients as s")
- // fmt.Println(table)
- // d := readDb.Table(" xt_inspection_reference as r")
- // fmt.Println(d)
- //
- // if orgid > 0 {
- // db = db.Where("x.org_id = ?", orgid)
- // }
- // if lapstor == 0 {
- // table = table.Where("s.lapseto = 1 or s.lapseto = 2")
- // }
- // if lapstor == 1 {
- // db = db.Where("s.lapseto = 1")
- // }
- // if lapstor == 2 {
- // db = db.Where("s.lapseto = 2")
- // }
- // if startime > 0 {
- // db = db.Where("x.inspect_date >=?", startime)
- // }
- // if endtime > 0 {
- // db = db.Where("x.inspect_date <=?", endtime)
- // }
- // offset := (page - 1) * limit
- // 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
- //
- // return inspection, total, err
- //}
-
- func GetLastPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
-
- db := readDb.Table("xt_inspection as x").Where("x.status =1")
- table := readDb.Table("xt_patients as s")
- //fmt.Println(table)
- d := readDb.Table(" xt_inspection_reference as r")
- fmt.Println(d)
- d2 := readDb.Table("xt_quality_control_standard as d")
- fmt.Println("d2", d2)
- if orgid > 0 {
- db = db.Where("x.org_id = ? and x.inspect_value+0 <> 0 and x.inspect_type = 1", orgid)
- }
- if lapstor == 0 {
- table = table.Where("s.lapseto = 1 or s.lapseto = 2")
- }
-
- if lapstor == 1 {
- table = table.Where("s.lapseto = 1")
- }
- if lapstor == 2 {
- table = table.Where("s.lapseto = 2")
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- 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
-
- return inspection, err
- }
-
- func GetTotalPatientsControl(orgid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
- db := readDb.Table("xt_inspection as x").Where("x.status = 1")
- table := readDb.Table("xt_quality_control_standard as s")
- fmt.Println(table)
- if orgid > 0 {
- db = db.Where("x.org_id = ? and x.inspect_value <> ''", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- 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
- return inspection, total, err
- }
- func GetStandControl(orgid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
- db := readDb.Table("xt_inspection as x").Where("x.status = 1")
- table := readDb.Table("xt_quality_control_standard as s")
- fmt.Println(table)
- if orgid > 0 {
- db = db.Where("x.org_id = ? and x.inspect_value+0 <> 0 and x.inspect_type = 1 ", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- db = db.Where("s.status = 1 and s.is_status = 1")
- 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
- return inspection, total, err
- }
-
- func GetStandControlOne(orgid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, total int64, err error) {
- db := readDb.Table("xt_inspection as x").Where("x.status = 1")
- table := readDb.Table("xt_quality_control_standard as s")
- fmt.Println(table)
- if orgid > 0 {
- db = db.Where("x.org_id = ? and x.inspect_value <> '' and x.inspect_type = 2 ", orgid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- db = db.Where("s.status = 1 and s.is_status = 1")
- 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
- return inspection, total, err
- }
-
- func GetInfectiousPatientsControl(orgid int64, lapstor int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
- db := readDb.Table("xt_inspection as x").Where("x.status =1")
- table := readDb.Table("xt_patients as s")
- fmt.Println(table)
- d := readDb.Table(" xt_inspection_reference as r")
- fmt.Println(d)
- d2 := readDb.Table("xt_quality_control_standard as d")
- fmt.Println("d2", d2)
- if orgid > 0 {
- db = db.Where("x.org_id = ? and x.inspect_value <> '' and x.inspect_type = 2", orgid)
- }
- if lapstor == 0 {
- table = table.Where("s.lapseto = 1 or s.lapseto = 2")
- }
-
- if lapstor == 1 {
- table = table.Where("s.lapseto = 1")
- }
- if lapstor == 2 {
- table = table.Where("s.lapseto = 2")
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- 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
-
- return inspection, err
- }
-
- func GetInfectiousControl(orgid int64, lapstor int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
- db := readDb.Table("xt_inspection as x").Where("x.status =1")
- table := readDb.Table("xt_patients as s")
- fmt.Println(table)
- d := readDb.Table(" xt_inspection_reference as r")
- fmt.Println(d)
- d2 := readDb.Table("xt_quality_control_standard as d")
- fmt.Println("d2", d2)
- if orgid > 0 {
- db = db.Where("x.org_id = ? and x.inspect_value <> '' and x.inspect_type = 2", orgid)
- }
- if lapstor == 0 {
- table = table.Where("s.lapseto = 1 or s.lapseto = 2")
- }
-
- if lapstor == 1 {
- table = table.Where("s.lapseto = 1")
- }
- if lapstor == 2 {
- table = table.Where("s.lapseto = 2")
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- 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
-
- return inspection, err
- }
-
- func GetPatientContor(lapstor, orgid int64, keywords string, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
-
- db := readDb.Table("xt_inspection as x").Where("x.status =1")
- table := readDb.Table("xt_patients as s")
- fmt.Println(table)
- d := readDb.Table(" xt_inspection_reference as r")
- fmt.Println(d)
- d2 := readDb.Table("xt_quality_control_standard as d")
- fmt.Println("d2", d2)
-
- if len(keywords) > 0 {
- db = db.Where("s.name LIKE ? OR s.dialysis_no LIKE ?", keywords, keywords)
- }
-
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if lapstor == 0 {
- table = table.Where("s.lapseto = 1 or s.lapseto = 2")
- }
-
- if lapstor == 1 {
- table = table.Where("s.lapseto = 1")
- }
- if lapstor == 2 {
- table = table.Where("s.lapseto = 2")
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- 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
-
- return inspection, err
- }
-
- func GetPatientNames(orgid int64, patientid int64) (models.XtPatients, error) {
- patients := models.XtPatients{}
- err := readDb.Where("user_org_id = ? and id = ? and status = 1", orgid, patientid).Find(&patients).Error
- return patients, err
- }
-
- func GetQualityControlById(orgid int64, patientid int64, startime int64, endtime int64, itemid int64, inspectdate int64) (inspection []*models.PatientInspectionCount, err error) {
-
- db := readDb.Table("xt_inspection as x").Where("x.status =1")
- table := readDb.Table("xt_patients as s")
- fmt.Println(table)
- d := readDb.Table(" xt_inspection_reference as r")
- fmt.Println(d)
- d2 := readDb.Table("xt_quality_control_standard as d")
- fmt.Println("d2", d2)
-
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if patientid > 0 {
- db = db.Where("x.patient_id = ?", patientid)
- }
-
- //if startime > 0 {
- // db = db.Where("x.inspect_date >=?", startime)
- //}
- //if endtime > 0 {
- // db = db.Where("x.inspect_date <=?", endtime)
- //}
- if itemid > 0 {
- db = db.Where("x.item_id = ?", itemid)
- }
- if inspectdate > 0 {
- db = db.Where("x.inspect_date = ?", inspectdate)
- }
- 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
-
- return inspection, err
- }
-
- func GetPatientComplianceDetail(orgid int64, patientid int64, startime int64, endtime int64, itemid int64) (inspection []*models.PatientInspectionCount, err error) {
- db := readDb.Table("xt_inspection as x").Where("x.status =1")
- table := readDb.Table("xt_patients as s")
- fmt.Println(table)
- d := readDb.Table(" xt_inspection_reference as r")
- fmt.Println(d)
- d2 := readDb.Table("xt_quality_control_standard as d")
- fmt.Println("d2", d2)
-
- if orgid > 0 {
- db = db.Where("x.org_id = ? and (x.inspect_value <> '' or x.inspect_value+0 <> 0)", orgid)
- }
- if patientid > 0 {
- db = db.Where("x.patient_id = ?", patientid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- if itemid > 0 {
- db = db.Where("x.item_id = ?", itemid)
- }
-
- 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
-
- return inspection, err
- }
-
- func GetLastPatientsControlTwo(orgid int64, patientid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
-
- db := readDb.Table("xt_inspection as x").Where("x.status =1")
- table := readDb.Table("xt_patients as s")
- fmt.Println(table)
- d := readDb.Table(" xt_inspection_reference as r")
- fmt.Println(d)
- d2 := readDb.Table("xt_quality_control_standard as d")
- fmt.Println("d2", d2)
- if orgid > 0 {
- db = db.Where("x.org_id = ?", orgid)
- }
- if patientid > 0 {
- db = db.Where("x.patient_id = ?", patientid)
- }
- if startime > 0 {
- db = db.Where("x.inspect_date >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.inspect_date <=?", endtime)
- }
- 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
-
- return inspection, err
- }
-
- func GetBloodPressureDetail(id int64) (models.XtQualityControlStandard, error) {
- standard := models.XtQualityControlStandard{}
- err := XTReadDB().Model(&standard).Where("id=? and status = 1", id).Find(&standard).Error
- return standard, err
- }
-
- func UpdateBloodPressure(st *models.XtQualityControlStandard, id int64) error {
-
- 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
- return err
-
- }
-
- func GetSystolicBloodPressure(orgid int64, startime int64, endtime int64) (record []*models.VmMonitoringRecord, total int64, err error) {
-
- db := XTReadDB().Table("xt_monitoring_record as x")
- 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
- return record, total, err
- }
-
- func GetSystolicBloodPressureTwo(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (record []*models.VmMonitoringRecord, total int64, err error) {
-
- db := XTReadDB().Table("xt_monitoring_record as x")
- if lapseto > 0 && origin > 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ? AND p.source = ?", lapseto, origin)
- }
- if lapseto > 0 && origin == 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ?", lapseto)
- }
-
- if lapseto == 0 && origin > 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.source = ?", origin)
- }
- 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
- return record, total, err
- }
-
- func GetStandSystolicBloodPressure(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (record []*models.XTMonitoringRecord, total int64, err error) {
-
- db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
- 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
- return record, total, err
- }
-
- func GetDiastolicBloodPressure(orgid int64, startime int64, endtime int64) (record []*models.VmMonitoringRecord, total int64, err error) {
-
- db := XTReadDB().Table("xt_monitoring_record as x")
- 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
- return record, total, err
- }
-
- func GetDiastolicBloodPressureTwo(orgid int64, startime int64, endtime int64, lapseto int64, origin int64) (record []*models.VmMonitoringRecord, total int64, err error) {
- db := XTReadDB().Table("xt_monitoring_record as x")
- if lapseto > 0 && origin > 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ? AND p.source = ?", lapseto, origin)
- }
- if lapseto > 0 && origin == 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.lapseto = ?", lapseto)
- }
-
- if lapseto == 0 && origin > 0 {
- db = db.Joins("inner join xt_patients as p on p.id = x.patient_id AND p.source = ?", origin)
- }
- 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
- return record, total, err
- }
-
- func GetDiastolicStandPressure(orgid int64, startime int64, endtime int64) (record []*models.XTMonitoringRecord, total int64, err error) {
- db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
- 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
- return record, total, err
- }
-
- 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) {
-
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
- countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- db = db.Where("x.inspect_date>=?", firststart)
- countSQL += " AND x.inspect_date>=?"
- countParams = append(countParams, firststart)
-
- db = db.Where("x.inspect_date<=?", fourend)
- countSQL += " AND x.inspect_date<=?"
- countParams = append(countParams, fourend)
-
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- return
- }
-
- 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) {
-
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
- countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- db = db.Where("x.inspect_date>=?", firststart)
- countSQL += " AND x.inspect_date>=?"
- countParams = append(countParams, firststart)
-
- db = db.Where("x.inspect_date<=?", fourend)
- countSQL += " AND x.inspect_date<=?"
- countParams = append(countParams, fourend)
-
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- return
- }
-
- 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) {
-
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
- countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '1'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '2'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '3'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '4'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- db = db.Where("x.inspect_date>=?", firststart)
- countSQL += " AND x.inspect_date>=?"
- countParams = append(countParams, firststart)
-
- db = db.Where("x.inspect_date<=?", fourend)
- countSQL += " AND x.inspect_date<=?"
- countParams = append(countParams, fourend)
-
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- return
- }
-
- 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) {
-
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
- countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '1'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '2'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '3'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '4'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, firststart)
- countParams = append(countParams, firstend)
- countParams = append(countParams, sencondstart)
- countParams = append(countParams, sencondend)
- countParams = append(countParams, threestart)
- countParams = append(countParams, threeend)
- countParams = append(countParams, fourstart)
- countParams = append(countParams, fourend)
- if orgid > 0 {
- db = db.Where("x.org_id=?", orgid)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgid)
-
- db = db.Where("x.inspect_date>=?", firststart)
- countSQL += " AND x.inspect_date>=?"
- countParams = append(countParams, firststart)
-
- db = db.Where("x.inspect_date<=?", fourend)
- countSQL += " AND x.inspect_date<=?"
- countParams = append(countParams, fourend)
-
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- return
- }
-
- 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) {
-
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
- countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgId > 0 {
- db = db.Where("x.org_id=?", orgId)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgId)
-
- db = db.Where("x.inspect_date>=?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date>=?"
- countParams = append(countParams, januaryStartStrUnix)
-
- db = db.Where("x.inspect_date<=?", decStartStrUnix)
- countSQL += " AND x.inspect_date<=?"
- countParams = append(countParams, decEndStrsUnix)
-
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- return
- }
-
- 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) {
-
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
- countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " 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'" +
- " ELSE '其他'" +
- "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)"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgId > 0 {
- db = db.Where("x.org_id=?", orgId)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgId)
-
- db = db.Where("x.inspect_date>=?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date>=?"
- countParams = append(countParams, januaryStartStrUnix)
-
- db = db.Where("x.inspect_date<=?", decStartStrUnix)
- countSQL += " AND x.inspect_date<=?"
- countParams = append(countParams, decEndStrsUnix)
-
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- return
- }
-
- 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) {
-
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
- countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '1'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '2'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '3'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '4'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '5'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '6'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '7'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '8'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '9'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '10'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '11'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value = s.range_value THEN '12'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgId > 0 {
- db = db.Where("x.org_id=?", orgId)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgId)
-
- db = db.Where("x.inspect_date>=?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date>=?"
- countParams = append(countParams, januaryStartStrUnix)
-
- db = db.Where("x.inspect_date<=?", decStartStrUnix)
- countSQL += " AND x.inspect_date<=?"
- countParams = append(countParams, decEndStrsUnix)
-
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- return
- }
-
- 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) {
-
- db := readDb.Table("xt_inspection as x ").Where("x.status=1")
- countSQL := "SELECT nnd AS 'name',COUNT(*) AS 'count' FROM(" +
- "SELECT " +
- "CASE " +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '1'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '2'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '3'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '4'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '5'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '6'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '7'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '8'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '9'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '10'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '11'" +
- " WHEN x.inspect_date>=? AND x.inspect_date<=? AND x.inspect_value <> s.range_value THEN '12'" +
- " ELSE '其他'" +
- "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"
- countParams := make([]interface{}, 0)
- countParams = append(countParams, januaryStartStrUnix)
- countParams = append(countParams, januaryEndStrUnix)
- countParams = append(countParams, febStartStrStrUnix)
- countParams = append(countParams, febEndStrUnix)
- countParams = append(countParams, marchStartStrUnix)
- countParams = append(countParams, marchEndStrUnix)
- countParams = append(countParams, aprStartStrUnix)
- countParams = append(countParams, aprEndStrsUnix)
- countParams = append(countParams, mayStartStrUnix)
- countParams = append(countParams, mayEndStrsUnix)
- countParams = append(countParams, junStartStrUnix)
- countParams = append(countParams, junEndStrsUnix)
- countParams = append(countParams, julStartStrUnix)
- countParams = append(countParams, julEndStrsUnix)
- countParams = append(countParams, augStartStrUnix)
- countParams = append(countParams, augEndStrsUnix)
- countParams = append(countParams, sepStartStrUnix)
- countParams = append(countParams, sepEndStrsUnix)
- countParams = append(countParams, octStartStrUnix)
- countParams = append(countParams, octEndStrsUnix)
- countParams = append(countParams, novStartStrUnix)
- countParams = append(countParams, novEndStrsUnix)
- countParams = append(countParams, decStartStrUnix)
- countParams = append(countParams, decEndStrsUnix)
- if orgId > 0 {
- db = db.Where("x.org_id=?", orgId)
- countSQL += " AND x.org_id=?"
- countParams = append(countParams, orgId)
-
- db = db.Where("x.inspect_date>=?", januaryStartStrUnix)
- countSQL += " AND x.inspect_date>=?"
- countParams = append(countParams, januaryStartStrUnix)
-
- db = db.Where("x.inspect_date<=?", decStartStrUnix)
- countSQL += " AND x.inspect_date<=?"
- countParams = append(countParams, decEndStrsUnix)
-
- }
- countSQL += ")a GROUP BY nnd"
- err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
- return
- }
-
- func GetQuarterBloodList(orgid int64, januaryStartStrUnix int64, januaryEndStrUnix int64) (record []*models.VmMonitoringRecord, err error) {
-
- db := XTReadDB().Table("xt_monitoring_record as x")
- 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
- return record, err
- }
-
- func GetTaregetNoStandDetail(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientsInspection, err error) {
-
- db := XTReadDB().Table("xt_inspection as x")
- 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
- return inspection, err
- }
-
- func GetConfigurationNoStandDetail(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientsInspection, err error) {
- db := XTReadDB().Table("xt_inspection as x")
- 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
- return inspection, err
- }
-
- func GetInspectNoStandList(orgid int64, startime int64, endtime int64, limit int64, page int64) (inspection []*models.XtPatientsInspection, err error) {
-
- db := XTReadDB().Table("xt_inspection as x")
- offset := (page - 1) * limit
- 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
- return inspection, err
- }
-
- func GetTargetStandDetail(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientsInspection, err error) {
- db := XTReadDB().Table("xt_inspection as x")
- 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
- return inspection, err
- }
-
- func GetConfigurationStandDetail(orgid int64, startime int64, endtime int64) (inspection []*models.XtPatientsInspection, err error) {
- db := XTReadDB().Table("xt_inspection as x")
- 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
- return inspection, err
- }
-
- func GetStandList(orgid int64, startime int64, endtime int64, limit int64, page int64) (inspection []*models.XtPatientsInspection, err error) {
- db := XTReadDB().Table("xt_inspection as x")
- offset := (page - 1) * limit
- 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
-
- return inspection, err
- }
-
- func GetDiastolicStand(orgid int64, startime int64, endtime int64, page int64, limit int64) (record []*models.XTMonitoringRecords, err error) {
-
- db := XTReadDB().Table("xt_monitoring_record as x")
- offset := (page - 1) * limit
- 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
- return record, err
- }
-
- func GetInspectionMoninList(id int64, orgid int64, patientid int64) (models.XtInspection, error) {
- inspection := models.XtInspection{}
- err = XTReadDB().Model(&inspection).Where("item_id=? and org_id = ? and status = 1 and patient_id = ?", id, orgid, patientid).Last(&inspection).Error
- return inspection, err
- }
-
- func TotalSysStandCountTwo(orgid int64, startime int64, endtime int64, sysmin int64, syslarge int64, diamin int64, dialarge int64) (record []*models.XTMonitoringRecords, err error) {
-
- db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
- if orgid > 0 {
- db = db.Where("x.user_org_id = ? and x.systolic_blood_pressure<>0 and x.diastolic_blood_pressure<>0 ", orgid)
- }
- if startime > 0 {
- db = db.Where("x.monitoring_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.monitoring_date<=?", endtime)
- }
- if sysmin > 0 {
- db = db.Where(" x.systolic_blood_pressure>=?", sysmin)
- }
- if syslarge > 0 {
- db = db.Where("x.systolic_blood_pressure<=?", syslarge)
- }
- if diamin > 0 {
- db = db.Where(" x.diastolic_blood_pressure>=?", diamin)
- }
- if dialarge > 0 {
- db = db.Where("x.diastolic_blood_pressure<=?", dialarge)
- }
- 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
- return record, err
- }
-
- 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) {
-
- db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
- if orgid > 0 {
- db = db.Where("x.user_org_id = ? and x.systolic_blood_pressure<>0 and x.diastolic_blood_pressure<>0 ", orgid)
- }
- if startime > 0 {
- db = db.Where("x.monitoring_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.monitoring_date<=?", endtime)
- }
- if sysmin > 0 {
- db = db.Where(" x.systolic_blood_pressure>=?", sysmin)
- }
- if syslarge > 0 {
- db = db.Where("x.systolic_blood_pressure<=?", syslarge)
- }
- if diamin > 0 {
- db = db.Where(" x.diastolic_blood_pressure>=?", diamin)
- }
- if dialarge > 0 {
- db = db.Where("x.diastolic_blood_pressure<=?", dialarge)
- }
- offset := (page - 1) * limit
- 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
- return record, err
- }
-
- func TotalSysNoStandCountTwo(orgid int64, startime int64, endtime int64, sysmin int64, syslarge int64, diamin int64, dialarge int64) (record []*models.XTMonitoringRecords, err error) {
-
- db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
- if orgid > 0 {
- db = db.Where("x.user_org_id = ? and x.systolic_blood_pressure<>0 and x.diastolic_blood_pressure<>0 ", orgid)
- }
- if startime > 0 {
- db = db.Where("x.monitoring_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.monitoring_date<=?", endtime)
- }
- 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
- return record, err
- }
-
- 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) {
-
- db := XTReadDB().Table("xt_monitoring_record as x").Where("x.status = 1")
- if orgid > 0 {
- db = db.Where("x.user_org_id = ? and x.systolic_blood_pressure<>0 and x.diastolic_blood_pressure<>0 ", orgid)
- }
- if startime > 0 {
- db = db.Where("x.monitoring_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.monitoring_date<=?", endtime)
- }
- offset := (page - 1) * limit
- 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
- return record, err
- }
-
- func GetModeIdCount(startime int64, endtime int64, orgid int64, page int64, limit int64) (order []*models.BloodDialysisModeIdCount, err error) {
-
- table := XTReadDB().Table("xt_schedule as s")
- fmt.Println("table", table)
- db := XTReadDB().Table("xt_dialysis_order as o")
- if orgid > 0 {
- db = db.Where("o.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("o.dialysis_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- //offset := (page - 1) * limit
- 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
- return order, err
- }
-
- func GetScheduleModeIdCount(startime int64, endtime int64, orgid int64, page int64, limit int64) (order []*models.BloodDialysisModeIdCount, err error) {
-
- db := XTReadDB().Table("xt_schedule as s").Where("s.status = 1")
- if orgid > 0 {
- db = db.Where("s.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("s.schedule_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("s.schedule_date<=?", endtime)
- }
- err = db.Group(" s.patient_id,s.mode_id").Select("s.mode_id,s.patient_id,count(s.id) as count").Scan(&order).Error
- return order, err
- }
-
- func GetTreatModeList(startime int64, endtime int64, orgid int64) (order []*models.BloodDialysisModeIdCount, err error) {
-
- table := XTReadDB().Table("xt_schedule as s")
- fmt.Println("table", table)
- db := XTReadDB().Table("xt_dialysis_order as o")
- if orgid > 0 {
- db = db.Where("o.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("o.dialysis_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- 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
- return order, err
-
- }
-
- func GetCountModeId(startime int64, endtime int64, modeid int64, orgid int64) (order []*models.BloodTreateModeIdCount, err error) {
-
- table := XTReadDB().Table("xt_schedule as s")
- fmt.Println("table", table)
- db := XTReadDB().Table("xt_dialysis_order as o")
- if orgid > 0 {
- db = db.Where("o.user_org_id = ?", orgid)
- }
- if startime > 0 {
- db = db.Where("o.dialysis_date>=?", startime)
- }
- if endtime > 0 {
- db = db.Where("o.dialysis_date<=?", endtime)
- }
- 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
- return order, err
-
- }
-
- func GetCountRollout(orgid int64, startime int64, endtime int64, lapsetotype int64, sourcetype int64) (lapseto []*models.BloodLapsetoCount, err error) {
-
- table := XTReadDB().Table("xt_patients as s")
- fmt.Println(table)
- db := XTReadDB().Table("xt_patient_lapseto as x").Where("x.status = 1")
- if startime > 0 {
- db = db.Where("x.lapseto_time >=?", startime)
- }
- if endtime > 0 {
- db = db.Where("x.lapseto_time<=?", endtime)
- }
- if lapsetotype == 0 || sourcetype == 0 {
- 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
- }
-
- if lapsetotype > 0 {
- 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
- }
- if sourcetype > 0 {
- 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
- }
- return lapseto, err
- }
-
- func GetCheckExaminePercent(start_time int64, end_time int64, org_id int64, name_type int64) (total int64) {
-
- switch name_type {
- case 1:
- key := "%" + "血常规" + "%"
- 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)
-
- break
- case 2:
- //key := "%" + "肝功能" + "%"
- //key1 := "%" + "肾功能" + "%"
- //key2 := "%" + "电解质" + "%"
- //key3 := "%" + "血脂" + "%"
- //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)
-
- break
- case 3:
- //key := "%" + "肝功能" + "%"
- //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)
-
- break
- case 4:
- break
- case 5:
- break
- case 6:
- break
-
- }
-
- return
- }
-
- func GetAllPatientCount(orgid int64) (total int64, err error) {
- err = XTReadDB().Where("user_org_id = ? and status = 1", orgid).Count(&total).Error
- return
- }
-
- func GetPatientInspectionList(user_org_id int64) (inspection []*models.XtInspection, err error) {
-
- 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
-
- return inspection, err
- }
|