edit query

This commit is contained in:
2024-07-10 14:04:46 +07:00
parent e4364f0c4f
commit 57d160b62a
9 changed files with 248 additions and 7 deletions

View File

@@ -14,6 +14,7 @@ import (
type TabDaftarPesertaServices interface {
GetListMcuDaftarPeserta(id string, currentpage int, rowperpage int) ([]models.ModelMcuDaftarPeserta, int, error)
GetReportMcu(orderheaderID string) ([]models.TabViewReportMcu, error)
GetListReportPeserta(orderheaderID string, host string) ([]models.TabViewReportMcu, error)
}
type TabDaftarPesertaHandlers struct {
@@ -170,13 +171,25 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
func (tdp *TabDaftarPesertaHandlers) HandleOpenReportDialog(c echo.Context) error {
logger, _ := zap.NewProduction()
host := c.Request().Host
idx := c.QueryParam("idx")
dialogReportID := c.QueryParam("dialogReportID")
dialogReportBodyID := c.QueryParam("dialogReportBodyID")
logger.Info("params", zap.Any("idx", idx))
tabData, err := tdp.TabDaftarPesertaServices.GetReportMcu(idx)
// tabData, err := tdp.TabDaftarPesertaServices.GetReportMcu(idx)
// if err != nil {
// tab := corporate_mcudetail.TabReportView([]models.TabViewReportMcu{})
// mod := corporate_mcudetail.ModalBody(
// dialogReportBodyID,
// tab,
// corporate_mcudetail.JsShowModal(""),
// )
// return utils.View(c, mod)
// }
newtabdata, err := tdp.TabDaftarPesertaServices.GetListReportPeserta(idx, host)
if err != nil {
tab := corporate_mcudetail.TabReportView([]models.TabViewReportMcu{})
mod := corporate_mcudetail.ModalBody(
@@ -187,7 +200,9 @@ func (tdp *TabDaftarPesertaHandlers) HandleOpenReportDialog(c echo.Context) erro
return utils.View(c, mod)
}
tabcomponent := corporate_mcudetail.TabReportView(tabData)
logger.Info("resp new data", zap.Any("data", newtabdata))
tabcomponent := corporate_mcudetail.TabReportView(newtabdata)
modalbody := corporate_mcudetail.ModalBody(
dialogReportBodyID,

View File

@@ -21,6 +21,7 @@ type PatientService interface {
GetListtingData(email string, currentpage int, rowperpage int) ([]models.DashboardPatient, int, error)
GetPatientData(email string) (string, error)
GetReportMcu(orderheaderID string) ([]models.TabViewReportMcu, error)
GetListReportPeserta(orderheaderID string, host string) ([]models.TabViewReportMcu, error)
}
func NewPatientHandler(us PatientService) *PatientHandler {
@@ -214,13 +215,25 @@ func (ph *PatientHandler) HandleChangePage(c echo.Context) error {
func (ph *PatientHandler) HandleOpenReport(c echo.Context) error {
logger, _ := zap.NewProduction()
host := c.Request().Host
id := c.QueryParam("id")
dialogID := c.QueryParam("dialogID")
dialogBodyID := c.QueryParam("dialogBodyID")
logger.Info("params", zap.Any("id", id))
tabData, err := ph.PatientService.GetReportMcu(id)
// tabData, err := ph.PatientService.GetReportMcu(id)
// if err != nil {
// tab := corporate_patient.TabReportView([]models.TabViewReportMcu{})
// mod := corporate_patient.ModalBody(
// dialogBodyID,
// tab,
// corporate_patient.JsShowModal(""),
// )
// return utils.View(c, mod)
// }
newtabdata, err := ph.PatientService.GetListReportPeserta(id, host)
if err != nil {
tab := corporate_patient.TabReportView([]models.TabViewReportMcu{})
mod := corporate_patient.ModalBody(
@@ -231,7 +244,7 @@ func (ph *PatientHandler) HandleOpenReport(c echo.Context) error {
return utils.View(c, mod)
}
tabcomponent := corporate_patient.TabReportView(tabData)
tabcomponent := corporate_patient.TabReportView(newtabdata)
modalBody := corporate_patient.ModalBody(
dialogBodyID,
tabcomponent,

View File

@@ -19,9 +19,21 @@ type ModelMcuPesertaReport struct {
So_ResultEntryT_OrderHeaderID int `db:"So_ResultEntryT_OrderHeaderID"`
So_ResultEntryNonlab_TemplateID int `db:"So_ResultEntryNonlab_TemplateID"`
So_ResultEntryNonlab_TemplateName string `db:"So_ResultEntryNonlab_TemplateName"`
Datetime string `db:"Datetime"`
}
type TabViewReportMcu struct {
Name string
Link string
}
type OrderReport struct {
M_OrderReportID int `db:"M_OrderReportID"`
M_OrderReportName string `db:"M_OrderReportName"`
M_OrderReportOrdering int `db:"M_OrderReportOrdering"`
M_OrderReportUrl string `db:"M_OrderReportUrl"`
M_OrderReportIsOrderHeader string `db:"M_OrderReportIsOrderHeader"`
M_OrderReportIsFisikUmum string `db:"M_OrderReportIsFisikUmum"`
M_OrderReportIsActive string `db:"M_OrderReportIsActive"`
Datetime string `db:"Datetime"`
}

View File

@@ -101,7 +101,7 @@ func (tdps *TabDaftarPesertaServices) GetReportMcu(orderheaderID string) ([]mode
ORDER BY So_ResultEntryNonlab_TemplateID
`
if err := dbx.Handlex.Select(&data, q, orderheaderID); err != nil {
return ret, err
return ret, fmt.Errorf("error get mcu report: %v", err)
}
// Lab
@@ -144,3 +144,98 @@ func (tdps *TabDaftarPesertaServices) GetReportMcu(orderheaderID string) ([]mode
return ret, nil
}
func (tdps *TabDaftarPesertaServices) GetListReportPeserta(orderheaderID string, host string) ([]models.TabViewReportMcu, error) {
var ret []models.TabViewReportMcu
var data []models.ModelMcuPesertaReport
q := `
SELECT
So_ResultEntryID,
So_ResultEntryT_OrderHeaderID,
So_ResultEntryNonlab_TemplateID,
So_ResultEntryNonlab_TemplateName,
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
FROM so_resultentry
WHERE So_ResultEntryT_OrderHeaderID = ?
AND So_ResultEntryIsActive = 'Y'
ORDER BY So_ResultEntryNonlab_TemplateID
`
if err := dbx.Handlex.Select(&data, q, orderheaderID); err != nil {
return ret, fmt.Errorf("error get mcu report : %v", err)
}
var tabdata []models.OrderReport
q = `
SELECT
M_OrderReportID,
M_OrderReportName,
M_OrderReportOrdering,
M_OrderReportUrl,
M_OrderReportIsOrderHeader,
M_OrderReportIsFisikUmum,
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
FROM m_order_report
WHERE
M_OrderReportIsActive = 'Y'
AND (
M_OrderReportName LIKE "%Hasil Laboratorium%"
OR
M_OrderReportName LIKE "%Resume Individu%"
`
temParam := map[string]int{}
for _, d := range data {
switch d.So_ResultEntryNonlab_TemplateName {
case "ECG":
q = q + `OR M_OrderReportName LIKE "%Elektromedis%"`
temParam["Elektromedis"] = d.So_ResultEntryID
case "Thorax PA":
q = q + `OR M_OrderReportName LIKE "%Radiologi%"`
temParam["Radiologi"] = d.So_ResultEntryID
case "Audiometri":
q = q + `OR M_OrderReportName LIKE "%Audiometri%"`
temParam["Audiometri"] = d.So_ResultEntryID
case "Spirometri":
q = q + `OR M_OrderReportName LIKE "%Spirometri%"`
temParam["Spirometri"] = d.So_ResultEntryID
case "Fisik Umum":
q = q + `OR M_OrderReportIsFisikUmum = 'Y'`
temParam["Fisik Umum"] = d.So_ResultEntryID
default:
q = q + `OR M_OrderReportName LIKE "%` + d.So_ResultEntryNonlab_TemplateName + `%"`
temParam[d.So_ResultEntryNonlab_TemplateName] = d.So_ResultEntryID
}
}
q = q + `) ORDER BY M_OrderReportOrdering ASC`
if err := dbx.Handlex.Select(&tabdata, q); err != nil {
return ret, fmt.Errorf("error get link mcu report: %v", err)
}
if host == "localhost:5000" {
host = "https://devcpone.aplikasi.web.id"
}
for _, t := range tabdata {
if t.M_OrderReportIsFisikUmum == "Y" {
id := strconv.Itoa(temParam["Fisik Umum"])
ret = append(ret, models.TabViewReportMcu{
Name: t.M_OrderReportName,
Link: host + t.M_OrderReportUrl + id + "&tm=" + t.Datetime,
})
} else if t.M_OrderReportIsOrderHeader != "Y" {
id := strconv.Itoa(temParam[t.M_OrderReportName])
ret = append(ret, models.TabViewReportMcu{
Name: t.M_OrderReportName,
Link: host + t.M_OrderReportUrl + id + "&tm=" + t.Datetime,
})
} else {
ret = append(ret, models.TabViewReportMcu{
Name: t.M_OrderReportName,
Link: host + t.M_OrderReportUrl + orderheaderID + "&tm=" + t.Datetime,
})
}
}
return ret, nil
}

View File

@@ -219,3 +219,98 @@ func (sp *PatientServices) GetReportMcu(orderheaderID string) ([]models.TabViewR
return ret, nil
}
func (tdps *PatientServices) GetListReportPeserta(orderheaderID string, host string) ([]models.TabViewReportMcu, error) {
var ret []models.TabViewReportMcu
var data []models.ModelMcuPesertaReport
q := `
SELECT
So_ResultEntryID,
So_ResultEntryT_OrderHeaderID,
So_ResultEntryNonlab_TemplateID,
So_ResultEntryNonlab_TemplateName,
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
FROM so_resultentry
WHERE So_ResultEntryT_OrderHeaderID = ?
AND So_ResultEntryIsActive = 'Y'
ORDER BY So_ResultEntryNonlab_TemplateID
`
if err := dbx.Handlex.Select(&data, q, orderheaderID); err != nil {
return ret, fmt.Errorf("error get mcu report : %v", err)
}
var tabdata []models.OrderReport
q = `
SELECT
M_OrderReportID,
M_OrderReportName,
M_OrderReportOrdering,
M_OrderReportUrl,
M_OrderReportIsOrderHeader,
M_OrderReportIsFisikUmum,
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
FROM m_order_report
WHERE
M_OrderReportIsActive = 'Y'
AND (
M_OrderReportName LIKE "%Hasil Laboratorium%"
OR
M_OrderReportName LIKE "%Resume Individu%"
`
temParam := map[string]int{}
for _, d := range data {
switch d.So_ResultEntryNonlab_TemplateName {
case "ECG":
q = q + `OR M_OrderReportName LIKE "%Elektromedis%"`
temParam["Elektromedis"] = d.So_ResultEntryID
case "Thorax PA":
q = q + `OR M_OrderReportName LIKE "%Radiologi%"`
temParam["Radiologi"] = d.So_ResultEntryID
case "Audiometri":
q = q + `OR M_OrderReportName LIKE "%Audiometri%"`
temParam["Audiometri"] = d.So_ResultEntryID
case "Spirometri":
q = q + `OR M_OrderReportName LIKE "%Spirometri%"`
temParam["Spirometri"] = d.So_ResultEntryID
case "Fisik Umum":
q = q + `OR M_OrderReportIsFisikUmum = 'Y'`
temParam["Fisik Umum"] = d.So_ResultEntryID
default:
q = q + `OR M_OrderReportName LIKE "%` + d.So_ResultEntryNonlab_TemplateName + `%"`
temParam[d.So_ResultEntryNonlab_TemplateName] = d.So_ResultEntryID
}
}
q = q + `) ORDER BY M_OrderReportOrdering ASC`
if err := dbx.Handlex.Select(&tabdata, q); err != nil {
return ret, fmt.Errorf("error get link mcu report: %v", err)
}
if host == "localhost:5000" {
host = "https://devcpone.aplikasi.web.id"
}
for _, t := range tabdata {
if t.M_OrderReportIsFisikUmum == "Y" {
id := strconv.Itoa(temParam["Fisik Umum"])
ret = append(ret, models.TabViewReportMcu{
Name: t.M_OrderReportName,
Link: host + t.M_OrderReportUrl + id + "&tm=" + t.Datetime,
})
} else if t.M_OrderReportIsOrderHeader != "Y" {
id := strconv.Itoa(temParam[t.M_OrderReportName])
ret = append(ret, models.TabViewReportMcu{
Name: t.M_OrderReportName,
Link: host + t.M_OrderReportUrl + id + "&tm=" + t.Datetime,
})
} else {
ret = append(ret, models.TabViewReportMcu{
Name: t.M_OrderReportName,
Link: host + t.M_OrderReportUrl + orderheaderID + "&tm=" + t.Datetime,
})
}
}
return ret, nil
}

View File

@@ -62,7 +62,7 @@ templ ModalClose(LinkClose string, hxTarget string, hxSwap string, modalID strin
templ TabReportView(
datamcu []models.TabViewReportMcu,
) {
<div>
<div class="container-rpt">
<ul class="nav nav-tabs nav-tabs-line">
for i, v := range datamcu {
if i == 0 {

View File

@@ -220,7 +220,7 @@ func TabReportView(
templ_7745c5c3_Var9 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div><ul class=\"nav nav-tabs nav-tabs-line\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"container-rpt\"><ul class=\"nav nav-tabs nav-tabs-line\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -46,6 +46,13 @@ templ TabDaftarPesertaScreen(
}
templ CSSTabDaftarPeserta() {
<style>
.container-rpt {
width: 100%;
overflow-x: auto;
white-space: nowrap;
}
</style>
}
templ JsTabDaftarPeserta() {

View File

@@ -102,6 +102,10 @@ func CSSTabDaftarPeserta() templ.Component {
templ_7745c5c3_Var2 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<style>\r\n .container-rpt {\r\n width: 100%;\r\n overflow-x: auto;\r\n white-space: nowrap;\r\n }\r\n </style>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}