diff --git a/handlers/corporate/mcudetail/tabkelainanfisik.hanlders.go b/handlers/corporate/mcudetail/tabkelainanfisik.hanlders.go index dbf7e3a..5585815 100644 --- a/handlers/corporate/mcudetail/tabkelainanfisik.hanlders.go +++ b/handlers/corporate/mcudetail/tabkelainanfisik.hanlders.go @@ -54,10 +54,10 @@ func (tkf *TabKelainanFisikHandler) HandleShowTabKelainanFisik(c echo.Context) e } content := corporate_mcudetail.Tabkelainanfisik( - chart.ShowChartFixed("bmixs", string(bmijson), "400px", "450px"), + chart.ShowChartFixed("bmixs", string(bmijson), "300px", "450px"), chart.ShowChartFixed("bmimd", string(bmijson), "500px", "450px"), chart.ShowChartFixed("bmilg", string(bmijson), "600px", "450px"), - chart.ShowChartFixed("hprxs", string(hiperjson), "400px", "450px"), + chart.ShowChartFixed("hprxs", string(hiperjson), "300px", "450px"), chart.ShowChartFixed("hprmd", string(hiperjson), "500px", "450px"), chart.ShowChartFixed("hprlg", string(hiperjson), "600px", "450px"), ) diff --git a/handlers/corporate/mcudetail/tabkelainanglobal.handlers.go b/handlers/corporate/mcudetail/tabkelainanglobal.handlers.go index 5122cb1..aee15fc 100644 --- a/handlers/corporate/mcudetail/tabkelainanglobal.handlers.go +++ b/handlers/corporate/mcudetail/tabkelainanglobal.handlers.go @@ -12,7 +12,8 @@ import ( ) type TabKelainanGlobalServices interface { - GetBarChartConf(title string, data models.BarDataset) (models.Barchart, error) + GetKelainanGlobalMCU(mcuID string) (models.Barchart, error) + GetKelainanFisik(mcuID string) (models.Barchart, error) } type TabKelainanGlobalHandler struct { @@ -31,36 +32,33 @@ func (tkg *TabKelainanGlobalHandler) HandleShowTabKelainanGlobal(c echo.Context) logger.Info("params", zap.Any("id", id)) - test := models.BarDataset{ - Source: [][]interface{}{ - {"score", "amount", "product", "percentage"}, - {200, 447, "Body Mass Index"}, - {150, 314, "Pemeriksaan Mata"}, - {125, 314, "Fungsi Lemak"}, - {100, 254, "Autospirometri"}, - {90, 200, "Hematologi"}, - {80, 180, "ECG"}, - {75, 160, "Hiperuricemia"}, - {70, 125, "Tekanan Darah"}, - {60, 118, "Urine Lengkap"}, - {50, 87, "Fungsi Hati"}, - }, - } - - title := "Kelainan MCU" - option, err := tkg.TabKelainanGlobalServices.GetBarChartConf(title, test) + kelmcu, err := tkg.TabKelainanGlobalServices.GetKelainanGlobalMCU(id) if err != nil { return err } - klmcujson, err := json.MarshalIndent(option, "", " ") + kelfisik, err := tkg.TabKelainanGlobalServices.GetKelainanFisik(id) + if err != nil { + return err + } + + klmcujson, err := json.MarshalIndent(kelmcu, "", " ") + if err != nil { + return err + } + + klfisjson, err := json.MarshalIndent(kelfisik, "", " ") if err != nil { return err } content := corporate_mcudetail.TabKelainanGlobal( - chart.ShowChartFixed("a", string(klmcujson), "1000px", "450px"), - chart.ShowChartFixed("b", string(klmcujson), "1000px", "450px"), + chart.ShowChartFixed("chartmcuxs", string(klmcujson), "300px", "450px"), + chart.ShowChartFixed("chartfisikxs", string(klfisjson), "300px", "450px"), + chart.ShowChartFixed("chartmcumd", string(klmcujson), "500px", "450px"), + chart.ShowChartFixed("chartfisikmd", string(klfisjson), "500px", "450px"), + chart.ShowChartFixed("chartmculg", string(klmcujson), "1000px", "450px"), + chart.ShowChartFixed("chartfisiklg", string(klfisjson), "1000px", "450px"), ) return utils.View(c, content) diff --git a/handlers/corporate/mcudetail/tabkelainanlab.handlers.go b/handlers/corporate/mcudetail/tabkelainanlab.handlers.go new file mode 100644 index 0000000..85703ad --- /dev/null +++ b/handlers/corporate/mcudetail/tabkelainanlab.handlers.go @@ -0,0 +1,105 @@ +package mcu_corporate_handlers + +import ( + "cpone/component/chart" + "cpone/models" + "cpone/utils" + corporate_mcudetail "cpone/views/corporate/mcu/mcutab" + "encoding/json" + + "github.com/labstack/echo/v4" +) + +type TabKelainanLabServices interface { + GetDataPresentaseKelainanLab(mcuID string) (models.Barchart, error) + GetHematologi(mcuID string) (models.Barchart, error) + GetUrinalisa(mcuID string) (models.Barchart, error) + GetGangguanFungsiHati(mcuID string) (models.Barchart, error) + GetGangguanMetabolismeLemak(mcuID string) (models.Barchart, error) + GetPeningkatanGlukosa(mcuID string) (models.Barchart, error) +} + +type TabKelainanLabHandler struct { + TabKelainanLabServices TabKelainanLabServices +} + +func NewTabKelainanLabHandler(tkl TabKelainanLabServices) *TabKelainanLabHandler { + return &TabKelainanLabHandler{ + TabKelainanLabServices: tkl, + } +} + +func (tkl *TabKelainanLabHandler) HandleShowTabKelainanLab(c echo.Context) error { + id := c.Param("id") + + datapre, err := tkl.TabKelainanLabServices.GetDataPresentaseKelainanLab(id) + if err != nil { + return err + } + + hematologi, err := tkl.TabKelainanLabServices.GetHematologi(id) + if err != nil { + return err + } + + urinalisa, err := tkl.TabKelainanLabServices.GetUrinalisa(id) + if err != nil { + return err + } + + hati, err := tkl.TabKelainanLabServices.GetGangguanFungsiHati(id) + if err != nil { + return err + } + + lemak, err := tkl.TabKelainanLabServices.GetGangguanMetabolismeLemak(id) + if err != nil { + return err + } + + glukosa, err := tkl.TabKelainanLabServices.GetPeningkatanGlukosa(id) + if err != nil { + return err + } + + dataprejson, err := json.MarshalIndent(datapre, "", " ") + if err != nil { + return err + } + + hemajson, err := json.MarshalIndent(hematologi, "", " ") + if err != nil { + return err + } + + urinjson, err := json.MarshalIndent(urinalisa, "", " ") + if err != nil { + return err + } + + hatijson, err := json.MarshalIndent(hati, "", " ") + if err != nil { + return err + } + + lemakjson, err := json.MarshalIndent(lemak, "", " ") + if err != nil { + return err + } + + glukosjson, err := json.MarshalIndent(glukosa, "", " ") + if err != nil { + return err + } + + content := corporate_mcudetail.TabKelainanLab( + chart.ShowChartFixed("dataprelg", string(dataprejson), "1000px", "450px"), + chart.ShowChartFixed("hemalg", string(hemajson), "600px", "450px"), + chart.ShowChartFixed("urinlg", string(urinjson), "600px", "450px"), + chart.ShowChartFixed("hatilg", string(hatijson), "600px", "450px"), + chart.ShowChartFixed("lemaklg", string(lemakjson), "600px", "450px"), + chart.ShowChartFixed("glukoslg", string(glukosjson), "600px", "450px"), + ) + + return utils.View(c, content) +} diff --git a/handlers/routes.go b/handlers/routes.go index bb5d43a..03ccbd5 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -131,6 +131,10 @@ func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) { kelainanglobalHdlr := mcu_corporate_handlers.NewTabKelainanGlobalHandler(kelainanglobalSrvs) corp.GET("/dashboard_pic/detail/:id/tabkelainanglobal", kelainanglobalHdlr.HandleShowTabKelainanGlobal) + kelainanlabSrvs := mcu_corporate_services.NewTabKelainanLabServices(appStore) + kelainanlabHdlr := mcu_corporate_handlers.NewTabKelainanLabHandler(kelainanlabSrvs) + corp.GET("/dashboard_pic/detail/:id/tabkelainanlab", kelainanlabHdlr.HandleShowTabKelainanLab) + // tab kelainan fisik kelainanfisikSrvs := mcu_corporate_services.NewTabKelainanFisikServices(appStore) kelainanfisikHdlr := mcu_corporate_handlers.NewTabKelainanFisikHandler(kelainanfisikSrvs) diff --git a/models/chart.models.go b/models/chart.models.go index d272453..b20059c 100644 --- a/models/chart.models.go +++ b/models/chart.models.go @@ -85,8 +85,21 @@ type Barchart struct { Y string `json:"y"` } `json:"encode"` } `json:"series"` + Tooltip struct { + Trigger string `json:"trigger"` + AxisPointer struct { + Type string `json:"type"` + } `json:"axisPointer"` + } `json:"tooltip"` } type BarDataset struct { Source [][]interface{} `json:"source"` } + +type BarDataPoint struct { + Score int `json:"score"` + Amount int `json:"amount"` + Product string `json:"product"` + Percentage string `json:"percentage"` +} diff --git a/models/tabkelainanlab.models.go b/models/tabkelainanlab.models.go new file mode 100644 index 0000000..f5bba37 --- /dev/null +++ b/models/tabkelainanlab.models.go @@ -0,0 +1,6 @@ +package models + +type KelainanLabModel struct { + Mcu_KelainanName string `db:"Mcu_KelainanName"` + Total int `db:"total"` +} diff --git a/services/corporate/mcudetail/tabkelainanglobal.services.go b/services/corporate/mcudetail/tabkelainanglobal.services.go index 5f1c053..38831ab 100644 --- a/services/corporate/mcudetail/tabkelainanglobal.services.go +++ b/services/corporate/mcudetail/tabkelainanglobal.services.go @@ -21,7 +21,6 @@ func NewTabKelainanGlobalServices(store db.AppStore) *TabKelainanGlobalServices func (tkg *TabKelainanGlobalServices) GetBarChartConf(title string, data models.BarDataset) (models.Barchart, error) { option := models.Barchart{} - option.Title = struct { Text string "json:\"text\"" }{title} @@ -63,11 +62,24 @@ func (tkg *TabKelainanGlobalServices) GetBarChartConf(title string, data models. X string "json:\"x\"" Y string "json:\"y\"" }{ - X: "amount", + X: "score", Y: "product", }, }, } + option.Tooltip = struct { + Trigger string "json:\"trigger\"" + AxisPointer struct { + Type string "json:\"type\"" + } "json:\"axisPointer\"" + }{ + Trigger: "axis", + AxisPointer: struct { + Type string "json:\"type\"" + }{ + Type: "shadow", + }, + } return option, nil } @@ -77,9 +89,6 @@ func (tkg *TabKelainanGlobalServices) GetKelainanGlobalMCU(mcuID string) (models var option models.Barchart var data []models.KelainanGlobalMCUModel - // title := "Kelainan MCU" - // chartData := models.BarDataset{} - q := ` SELECT IFNULL(Nat_TestName ,Mcu_KelainanGroupName) AS Test, @@ -99,11 +108,23 @@ func (tkg *TabKelainanGlobalServices) GetKelainanGlobalMCU(mcuID string) (models defer logger.Sync() logger.Info("resp data", zap.Any("data", data)) - // if data != nil { + title := "Kelainan MCU" + chartData := models.BarDataset{ + Source: [][]interface{}{ + {"score", "amount", "product", "percentage"}, + }, + } - // } else { + for _, d := range data { + chartData.Source = append(chartData.Source, []interface{}{ + d.Total, d.Total, d.Test, + }) + } - // } + option, err := tkg.GetBarChartConf(title, chartData) + if err != nil { + return option, fmt.Errorf("error insert data to barchart %v", err) + } return option, nil } @@ -134,5 +155,23 @@ func (tkg *TabKelainanGlobalServices) GetKelainanFisik(mcuID string) (models.Bar defer logger.Sync() logger.Info("resp data", zap.Any("data", data)) + title := "Kelainan Fisik" + chartData := models.BarDataset{ + Source: [][]interface{}{ + {"score", "amount", "product", "percentage"}, + }, + } + + for _, d := range data { + chartData.Source = append(chartData.Source, []interface{}{ + d.Total, d.Total, d.Mcu_KelainanName, + }) + } + + option, err := tkg.GetBarChartConf(title, chartData) + if err != nil { + return option, nil + } + return option, nil } diff --git a/services/corporate/mcudetail/tabkelainanlab.services.go b/services/corporate/mcudetail/tabkelainanlab.services.go new file mode 100644 index 0000000..edeabf4 --- /dev/null +++ b/services/corporate/mcudetail/tabkelainanlab.services.go @@ -0,0 +1,363 @@ +package mcu_corporate_services + +import ( + "cpone/db" + "cpone/models" + dbx "cpone/package/database" + "fmt" + + "go.uber.org/zap" +) + +type TabKelainanLabServices struct { + TabKelainanLabStore db.AppStore +} + +func NewTabKelainanLabServices(store db.AppStore) *TabKelainanLabServices { + return &TabKelainanLabServices{ + TabKelainanLabStore: store, + } +} + +func (tkl *TabKelainanLabServices) GetBarChartConf(title string, data models.BarDataset) (models.Barchart, error) { + option := models.Barchart{} + + option.Title = struct { + Text string "json:\"text\"" + }{title} + option.Dataset = data + option.Grid.ContainLabel = true + option.XAxis.Name = "amount" + option.YAxis.Type = "category" + option.VisualMap.Orient = "horizontal" + option.VisualMap.Left = "center" + option.VisualMap.Min = 1 + option.VisualMap.Max = 100 + option.VisualMap.Show = false + option.VisualMap.Dimension = 0 + option.VisualMap.InRange.Color = []string{"#42aaf5", "#00eaf2", "#035bff"} + option.Series = []struct { + Label struct { + Position string "json:\"position\"" + Show bool "json:\"show\"" + Formatter string "json:\"formatter\"" + } "json:\"label\"" + Type string "json:\"type\"" + Encode struct { + X string "json:\"x\"" + Y string "json:\"y\"" + } "json:\"encode\"" + }{ + { + Label: struct { + Position string "json:\"position\"" + Show bool "json:\"show\"" + Formatter string "json:\"formatter\"" + }{ + Position: "right", + Show: true, + Formatter: "{@[3]} %", + }, + Type: "bar", + Encode: struct { + X string "json:\"x\"" + Y string "json:\"y\"" + }{ + X: "score", + Y: "product", + }, + }, + } + option.Tooltip = struct { + Trigger string "json:\"trigger\"" + AxisPointer struct { + Type string "json:\"type\"" + } "json:\"axisPointer\"" + }{ + Trigger: "axis", + AxisPointer: struct { + Type string "json:\"type\"" + }{ + Type: "shadow", + }, + } + + return option, nil +} + +func (tkl *TabKelainanLabServices) GetDataPresentaseKelainanLab(mcuID string) (models.Barchart, error) { + logger, _ := zap.NewProduction() + var option models.Barchart + var data []models.KelainanLabModel + + q := ` + SELECT + Mcu_KelainanName, + COUNT(Mgm_HeaderT_OrderHeaderID) AS total + FROM mgm_header + JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID + AND Mgm_DetailIsActive = 'Y' + JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID + JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID + WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ? + AND Mgm_HeaderType = 'L' + AND Mgm_HeaderIsNormal = 'N' + GROUP BY Mcu_KelainanID ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC + ` + + if err := dbx.Handlex.Select(&data, q, mcuID); err != nil { + return option, fmt.Errorf("error get total presentase fisik %v", err) + } + defer logger.Sync() + logger.Info("resp data", zap.Any("data", data)) + + title := "" + chartData := models.BarDataset{ + Source: [][]interface{}{ + {"score", "amount", "product", "percentage"}, + }, + } + + for _, d := range data { + chartData.Source = append(chartData.Source, []interface{}{ + d.Total, d.Total, d.Mcu_KelainanName, + }) + } + + option, err := tkl.GetBarChartConf(title, chartData) + if err != nil { + return option, fmt.Errorf("error insert data to chart %v", err) + } + + return option, nil +} + +func (tkl *TabKelainanLabServices) GetHematologi(mcuID string) (models.Barchart, error) { + logger, _ := zap.NewProduction() + var option models.Barchart + var data []models.KelainanLabModel + + q := ` + SELECT Mcu_KelainanName, + COUNT(Mgm_HeaderT_OrderHeaderID) AS total + FROM mgm_header + JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y' + JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID + JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID + WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ? + AND Mgm_HeaderType = 'L' + AND Mgm_HeaderIsNormal = 'N' + AND Mcu_KelainanGroupID = 14 + GROUP BY Mcu_KelainanID + ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC + ` + if err := dbx.Handlex.Select(&data, q, mcuID); err != nil { + return option, fmt.Errorf("error get hematologi %v", err) + } + defer logger.Sync() + logger.Info("resp data", zap.Any("data", data)) + + title := "Hematologi" + chartData := models.BarDataset{ + Source: [][]interface{}{ + {"score", "amount", "product", "percentage"}, + }, + } + + for _, d := range data { + chartData.Source = append(chartData.Source, []interface{}{ + d.Total, d.Total, d.Mcu_KelainanName, + }) + } + + option, err := tkl.GetBarChartConf(title, chartData) + if err != nil { + return option, fmt.Errorf("error insert data to chart %v", err) + } + + return option, nil +} + +func (tkl *TabKelainanLabServices) GetUrinalisa(mcuID string) (models.Barchart, error) { + logger, _ := zap.NewProduction() + var option models.Barchart + var data []models.KelainanLabModel + + q := ` + SELECT + Mcu_KelainanName, + COUNT(Mgm_HeaderT_OrderHeaderID) AS total + FROM mgm_header + JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID + AND Mgm_DetailIsActive = 'Y' + JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID + JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID + WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ? + AND Mgm_HeaderType = 'L' + AND Mgm_HeaderIsNormal = 'N' + AND Mcu_KelainanGroupID = 15 + GROUP BY Mcu_KelainanID + ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC + ` + if err := dbx.Handlex.Select(&data, q, mcuID); err != nil { + return option, fmt.Errorf("error get urinalisa %v", err) + } + defer logger.Sync() + logger.Info("resp data", zap.Any("data", data)) + + title := "Urinalisa" + chartData := models.BarDataset{ + Source: [][]interface{}{ + {"score", "amount", "product", "percentage"}, + }, + } + + for _, d := range data { + chartData.Source = append(chartData.Source, []interface{}{ + d.Total, d.Total, d.Mcu_KelainanName, + }) + } + + option, err := tkl.GetBarChartConf(title, chartData) + if err != nil { + return option, fmt.Errorf("error insert data to chart %v", err) + } + + return option, nil +} + +func (tkl *TabKelainanLabServices) GetGangguanFungsiHati(mcuID string) (models.Barchart, error) { + logger, _ := zap.NewProduction() + var option models.Barchart + var data []models.KelainanLabModel + + q := ` + SELECT Mcu_KelainanName, + COUNT(Mgm_HeaderT_OrderHeaderID) AS total + FROM mgm_header + JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID + AND Mgm_DetailIsActive = 'Y' + JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID + JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID + WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ? + AND Mgm_HeaderType = 'L' + AND Mgm_HeaderIsNormal = 'N' + AND Mcu_KelainanGroupID = 16 + GROUP BY Mcu_KelainanID + ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC + ` + if err := dbx.Handlex.Select(&data, q, mcuID); err != nil { + return option, fmt.Errorf("error get gangguan fungsi hati %v", err) + } + defer logger.Sync() + logger.Info("resp data", zap.Any("data", data)) + + title := "Gangguan Fungsi Hati" + chartData := models.BarDataset{ + Source: [][]interface{}{ + {"score", "amount", "product", "percentage"}, + }, + } + + for _, d := range data { + chartData.Source = append(chartData.Source, []interface{}{ + d.Total, d.Total, d.Mcu_KelainanName, + }) + } + + option, err := tkl.GetBarChartConf(title, chartData) + if err != nil { + return option, fmt.Errorf("error insert data to chart %v", err) + } + + return option, nil +} + +func (tkl *TabKelainanLabServices) GetGangguanMetabolismeLemak(mcuID string) (models.Barchart, error) { + logger, _ := zap.NewProduction() + var option models.Barchart + var data []models.KelainanLabModel + + q := ` + SELECT + IFNULL(Mcu_KelainanName,'Normal') AS Mcu_KelainanName, + COUNT(Mgm_HeaderT_OrderHeaderID) AS total + FROM mgm_header + LEFT JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y' + LEFT JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID + LEFT JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID + WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderNat_TestCode IN ( '10520300','10520400') + AND Mgm_HeaderMgm_McuID = ? + GROUP BY Mcu_KelainanID + ORDER BY total DESC + ` + if err := dbx.Handlex.Select(&data, q, mcuID); err != nil { + return option, fmt.Errorf("error get gangguan metabolisme lemak %v", err) + } + defer logger.Sync() + logger.Info("resp data", zap.Any("data", data)) + + title := "Gangguan Metabolisme Lemak" + chartData := models.BarDataset{ + Source: [][]interface{}{ + {"score", "amount", "product", "percentage"}, + }, + } + + for _, d := range data { + chartData.Source = append(chartData.Source, []interface{}{ + d.Total, d.Total, d.Mcu_KelainanName, + }) + } + + option, err := tkl.GetBarChartConf(title, chartData) + if err != nil { + return option, fmt.Errorf("error insert data to chart %v", err) + } + + return option, nil +} + +func (tkl *TabKelainanLabServices) GetPeningkatanGlukosa(mcuID string) (models.Barchart, error) { + logger, _ := zap.NewProduction() + var option models.Barchart + var data []models.KelainanLabModel + + q := ` + SELECT IFNULL(Mcu_KelainanName,'Normal') AS Mcu_KelainanName, + COUNT(Mgm_HeaderT_OrderHeaderID) AS total + FROM mgm_header + LEFT JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y' + LEFT JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID + LEFT JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID + WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderNat_TestCode = 10540200 + AND Mgm_HeaderMgm_McuID = ? + GROUP BY Mcu_KelainanID + ORDER BY total DESC + ` + if err := dbx.Handlex.Select(&data, q, mcuID); err != nil { + return option, fmt.Errorf("error get peningkatan glukosa %v", err) + } + defer logger.Sync() + logger.Info("resp data", zap.Any("data", data)) + + title := "Peningkatan Glukosa" + chartData := models.BarDataset{ + Source: [][]interface{}{ + {"score", "amount", "product", "percentage"}, + }, + } + + for _, d := range data { + chartData.Source = append(chartData.Source, []interface{}{ + d.Total, d.Total, d.Mcu_KelainanName, + }) + } + + option, err := tkl.GetBarChartConf(title, chartData) + if err != nil { + return option, fmt.Errorf("error insert data to chart %v", err) + } + + return option, nil +} diff --git a/views/corporate/mcu/mcutab/tabkelainanglobal.templ b/views/corporate/mcu/mcutab/tabkelainanglobal.templ index be40236..016b73c 100644 --- a/views/corporate/mcu/mcutab/tabkelainanglobal.templ +++ b/views/corporate/mcu/mcutab/tabkelainanglobal.templ @@ -1,8 +1,12 @@ package corporate_mcudetail templ TabKelainanGlobal( - chartmcu templ.Component, - chartfisik templ.Component, + chartmcuxs templ.Component, + chartfisikxs templ.Component, + chartmcumd templ.Component, + chartfisikmd templ.Component, + chartmculg templ.Component, + chartfisiklg templ.Component, ) {
@@ -11,21 +15,31 @@ templ TabKelainanGlobal( // xs
- Small +
+ @chartmcuxs +
+
+ @chartfisikxs +
// md
- Medium +
+ @chartmcumd +
+
+ @chartfisikmd +
// lg
- @chartmcu + @chartmculg
- @chartfisik + @chartfisiklg
diff --git a/views/corporate/mcu/mcutab/tabkelainanglobal_templ.go b/views/corporate/mcu/mcutab/tabkelainanglobal_templ.go index b82f901..725901e 100644 --- a/views/corporate/mcu/mcutab/tabkelainanglobal_templ.go +++ b/views/corporate/mcu/mcutab/tabkelainanglobal_templ.go @@ -11,8 +11,12 @@ import "io" import "bytes" func TabKelainanGlobal( - chartmcu templ.Component, - chartfisik templ.Component, + chartmcuxs templ.Component, + chartfisikxs templ.Component, + chartmcumd templ.Component, + chartfisikmd templ.Component, + chartmculg templ.Component, + chartfisiklg templ.Component, ) templ.Component { return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) @@ -26,11 +30,11 @@ func TabKelainanGlobal( templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("

Data Kelainan Global

Small\r
Medium\r
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("

Data Kelainan Global

") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = chartmcu.Render(ctx, templ_7745c5c3_Buffer) + templ_7745c5c3_Err = chartmcuxs.Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -38,7 +42,39 @@ func TabKelainanGlobal( if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = chartfisik.Render(ctx, templ_7745c5c3_Buffer) + templ_7745c5c3_Err = chartfisikxs.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = chartmcumd.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = chartfisikmd.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = chartmculg.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = chartfisiklg.Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/views/corporate/mcu/mcutab/tabkelainanlab.templ b/views/corporate/mcu/mcutab/tabkelainanlab.templ new file mode 100644 index 0000000..a6b5946 --- /dev/null +++ b/views/corporate/mcu/mcutab/tabkelainanlab.templ @@ -0,0 +1,44 @@ +package corporate_mcudetail + +templ TabKelainanLab( + chartpresentase templ.Component, + charthematologi templ.Component, + charturinalisa templ.Component, + chartganghati templ.Component, + chartmetalemak templ.Component, + chartglukosa templ.Component, +) { +
+
+

Data Kelainan Lab

+
+ + // xs +
+ +
+ + // md +
+ +
+ + // lg +
+
+ @chartpresentase +
+
+ @charthematologi + @charturinalisa +
+
+ @chartganghati + @chartmetalemak +
+
+ @chartglukosa +
+
+
+} \ No newline at end of file diff --git a/views/corporate/mcu/mcutab/tabkelainanlab_templ.go b/views/corporate/mcu/mcutab/tabkelainanlab_templ.go new file mode 100644 index 0000000..a57f459 --- /dev/null +++ b/views/corporate/mcu/mcutab/tabkelainanlab_templ.go @@ -0,0 +1,82 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package corporate_mcudetail + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +func TabKelainanLab( + chartpresentase templ.Component, + charthematologi templ.Component, + charturinalisa templ.Component, + chartganghati templ.Component, + chartmetalemak templ.Component, + chartglukosa templ.Component, +) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("

Data Kelainan Lab

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = chartpresentase.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = charthematologi.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = charturinalisa.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = chartganghati.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = chartmetalemak.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = chartglukosa.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} diff --git a/views/corporate/mcu/mcutabview.templ b/views/corporate/mcu/mcutabview.templ index 1a2ae74..e0b1eff 100644 --- a/views/corporate/mcu/mcutabview.templ +++ b/views/corporate/mcu/mcutabview.templ @@ -12,7 +12,7 @@ templ TabViewMcuDetail( Kelainan global
-
+
//
-
- +
+ // +
-
+
//
diff --git a/views/corporate/mcu/mcutabview_templ.go b/views/corporate/mcu/mcutabview_templ.go index a1a0b19..b3052b7 100644 --- a/views/corporate/mcu/mcutabview_templ.go +++ b/views/corporate/mcu/mcutabview_templ.go @@ -51,16 +51,29 @@ func TabViewMcuDetail( if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainanglobal\" hx-trigger=\"click\">Kelainan global
  • Kelainan Lab
  • kelainan Non Lab
  • Kelainan global
  • Kelainan Lab
  • kelainan Non Lab
  • Keuangan
  • Keuangan