kelainan global chart

This commit is contained in:
Sas Andy
2024-04-30 17:16:21 +07:00
parent 3c9c63dd2a
commit d601cc0801
10 changed files with 898 additions and 316 deletions

View File

@@ -6,10 +6,12 @@ import (
"github.com/emarifer/go-templ-project-structure/db"
)
func NewServicesPiechart(u Piechart, uStore db.PieChartStore) *ServicesPiechart {
func NewServicesPiechart(u Piechart, b Barchart, uStore db.PieChartStore, bStore db.BarChartStore) *ServicesPiechart {
return &ServicesPiechart{
Piechart: u,
Barchart: b,
BarChartStore: bStore,
PieChartStore: uStore,
}
}
@@ -122,6 +124,8 @@ type Piechart struct {
type ServicesPiechart struct {
Piechart Piechart
Barchart Barchart
BarChartStore db.BarChartStore
PieChartStore db.PieChartStore
}
@@ -329,6 +333,122 @@ func GetPieChartMcu006(code string, id int) (string, Piechart, error) {
return title, option, nil
}
// Kelainan MCU - MCU004
func GetBarChartMcu004(code string, id int) (string, Barchart, error) {
title := "Kelainan MCU"
option := Barchart{}
option.Title = struct {
Text string "json:\"text\""
}{title}
option.Dataset = struct {
Source [][]interface{} "json:\"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"},
}}
option.Grid.ContainLabel = true
option.XAxis.Name = "amount"
option.YAxis.Type = "category"
option.VisualMap.Orient = "horizontal"
option.VisualMap.Left = "center"
option.VisualMap.Min = 10
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: "amount", Y: "product"}},
}
return title, option, nil
}
// Kelainan MCU - MCU004
func GetBarChartMcu005(code string, id int) (string, Barchart, error) {
title := "Kelainan Fisik"
option := Barchart{}
option.Title = struct {
Text string "json:\"text\""
}{title}
option.Dataset = struct {
Source [][]interface{} "json:\"source\""
}{[][]interface{}{
{"score", "amount", "product", "percentage"},
{200, 400, "Obesitas Stage 1"},
{150, 300, "Pre Hipertensi"},
{133, 250, "Kelainan Refraksi"},
{125, 180, "Overweight"},
{100, 125, "Obesitas Stage 2"},
{80, 100, "Hipertensi grade 1"},
{70, 80, "Kel. Refrakti terkoreksi"},
{60, 70, "Kel. Refrakti tidak terkoreksi"},
{55, 55, "Hipertensi grade 2"},
}}
option.Grid.ContainLabel = true
option.XAxis.Name = "amount"
option.YAxis.Type = "category"
option.VisualMap.Orient = "horizontal"
option.VisualMap.Left = "center"
option.VisualMap.Min = 10
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: "amount", Y: "product"}},
}
return title, option, nil
}
func (su *ServicesPiechart) GetPieChart(code string, id int) (string, Piechart, error) {
if code == "mcu001" {
return GetPieChartMcu001(code, id)
@@ -340,3 +460,14 @@ func (su *ServicesPiechart) GetPieChart(code string, id int) (string, Piechart,
return "", Piechart{}, fmt.Errorf("code " + code + " not found")
}
func (su *ServicesPiechart) GetBarChart(code string, id int) (string, Barchart, error) {
if code == "mcu004" {
return GetBarChartMcu004(code, id)
}
if code == "mcu005" {
return GetBarChartMcu005(code, id)
}
return "", Barchart{}, fmt.Errorf("code " + code + " not found")
}