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

@@ -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
}