add detail pemeriksaan
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"io"
|
||||
"math"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@@ -42,34 +43,39 @@ func (tdps *TabDaftarPesertaServices) GetListDaftarPesertaMCU(id string, current
|
||||
}
|
||||
|
||||
query := `
|
||||
SELECT
|
||||
T_OrderHeaderID,
|
||||
T_OrderHeaderDate,
|
||||
IFNULL(T_OrderHeaderLabNumber, 0) AS T_OrderHeaderLabNumber,
|
||||
T_OrderHeaderM_PatientAge,
|
||||
M_PatientID,
|
||||
M_PatientNoReg,
|
||||
M_PatientName,
|
||||
M_PatientGender,
|
||||
CASE
|
||||
WHEN M_PatientGender = 'male' THEN 'Laki - Laki'
|
||||
WHEN M_PatientGender = 'female' THEN 'Perempuan'
|
||||
SELECT *,
|
||||
GROUP_CONCAT(test_paket) as list_paket
|
||||
FROM (
|
||||
SELECT
|
||||
T_OrderHeaderID,
|
||||
T_OrderHeaderDate,
|
||||
IFNULL(T_OrderHeaderLabNumber, 0) AS T_OrderHeaderLabNumber,
|
||||
T_OrderHeaderM_PatientAge,
|
||||
M_PatientID,
|
||||
M_PatientNoReg,
|
||||
M_PatientName,
|
||||
M_PatientGender,
|
||||
CASE
|
||||
WHEN M_PatientGender = 'male' THEN 'Laki - Laki'
|
||||
WHEN M_PatientGender = 'female' THEN 'Perempuan'
|
||||
ELSE ' '
|
||||
END AS jenisKelamin,
|
||||
M_PatientDOB,
|
||||
FLOOR(DATEDIFF(CURDATE(), M_PatientDOB)/ 365.25) AS age,
|
||||
IFNULL(authPatientEmail, "none") AS authPatientEmail,
|
||||
IFNULL(authPatientIsActive, "N") AS authPatientIsActive,
|
||||
CASE
|
||||
WHEN T_OrderDetailOrderIsPacket = 'Y' THEN T_OrderDetailOrderT_PacketName
|
||||
ELSE T_OrderDetailOrderT_TestName
|
||||
END AS nama_paket
|
||||
FROM t_orderheader
|
||||
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
||||
JOIN t_orderdetailorder ON T_OrderDetailOrderT_OrderHeaderID = T_OrderHeaderID
|
||||
AND T_OrderDetailOrderIsActive = 'Y'
|
||||
LEFT JOIN auth_patient ON M_PatientID = authPatientM_PatientID AND authPatientIsActive = 'Y'
|
||||
WHERE T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderMgm_McuID = ?
|
||||
END AS jenisKelamin,
|
||||
M_PatientDOB,
|
||||
FLOOR(DATEDIFF(CURDATE(), M_PatientDOB)/ 365.25) AS age,
|
||||
IFNULL(authPatientEmail, "none") AS authPatientEmail,
|
||||
IFNULL(authPatientIsActive, "N") AS authPatientIsActive,
|
||||
CASE
|
||||
WHEN T_OrderDetailOrderIsPacket = 'Y' THEN T_OrderDetailOrderT_PacketName
|
||||
ELSE T_OrderDetailOrderT_TestName
|
||||
END AS test_paket
|
||||
FROM t_orderheader
|
||||
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
||||
JOIN t_orderdetailorder ON T_OrderDetailOrderT_OrderHeaderID = T_OrderHeaderID
|
||||
AND T_OrderDetailOrderIsActive = 'Y'
|
||||
LEFT JOIN auth_patient ON M_PatientID = authPatientM_PatientID AND authPatientIsActive = 'Y'
|
||||
WHERE T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderMgm_McuID = ?
|
||||
) x
|
||||
GROUP BY T_OrderHeaderID
|
||||
ORDER BY T_OrderHeaderLabNumber ASC
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
@@ -82,6 +88,62 @@ func (tdps *TabDaftarPesertaServices) GetListDaftarPesertaMCU(id string, current
|
||||
return listDaftarPeserta, totalPage, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) DetailTestdanPaket(orderheaderID string) ([]models.TableTestPaket, error) {
|
||||
var listPaket []models.DetailPaketMCU
|
||||
var listTest []models.DetailTestMCU
|
||||
var ret []models.TableTestPaket
|
||||
|
||||
// get list test name
|
||||
qr := `
|
||||
SELECT
|
||||
T_OrderDetailOrderT_TestID,
|
||||
T_OrderDetailOrderT_TestName
|
||||
FROM t_orderdetailorder
|
||||
WHERE T_OrderDetailOrderT_OrderHeaderID = ?
|
||||
AND T_OrderDetailOrderIsActive = 'Y'
|
||||
AND T_OrderDetailOrderIsPacket = 'N'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&listTest, qr, orderheaderID); err != nil {
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// get detail paket
|
||||
q := `
|
||||
SELECT
|
||||
T_OrderDetailOrderT_PacketID,
|
||||
T_OrderDetailOrderT_PacketName,
|
||||
T_TestName
|
||||
FROM t_orderdetailorder
|
||||
JOIN t_packetdetail ON T_PacketDetailT_PacketID = T_OrderDetailOrderT_PacketID AND T_PacketDetailIsActive = 'Y'
|
||||
JOIN t_test ON T_TestName = T_PacketDetailT_TestID AND T_TestIsActive = 'Y'
|
||||
WHERE T_OrderDetailOrderT_OrderHeaderID = ? AND T_OrderDetailOrderIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&listPaket, q, orderheaderID); err != nil {
|
||||
return ret, err
|
||||
}
|
||||
|
||||
nomor := 1
|
||||
for _, d := range listTest {
|
||||
ret = append(ret, models.TableTestPaket{
|
||||
Nomor: nomor,
|
||||
NamaTest: d.T_OrderDetailOrderT_TestName,
|
||||
NamaPaket: d.T_OrderDetailOrderT_TestName,
|
||||
})
|
||||
nomor++
|
||||
}
|
||||
|
||||
for _, d := range listPaket {
|
||||
ret = append(ret, models.TableTestPaket{
|
||||
Nomor: nomor,
|
||||
NamaTest: d.T_TestName,
|
||||
NamaPaket: d.T_OrderDetailOrderT_PacketName,
|
||||
})
|
||||
nomor++
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GenerataPasswordMCU(mgmMCUID string, host string) (models.GeneratePasswordResponse, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret models.GeneratePasswordResponse
|
||||
@@ -109,7 +171,7 @@ func (tdps *TabDaftarPesertaServices) GenerataPasswordMCU(mgmMCUID string, host
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GetAkunPeserta(patientID string) (models.AuthPatient, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
// logger, _ := zap.NewProduction()
|
||||
var ret models.AuthPatient
|
||||
|
||||
q := `
|
||||
@@ -126,7 +188,49 @@ func (tdps *TabDaftarPesertaServices) GetAkunPeserta(patientID string) (models.A
|
||||
if err := dbx.Handlex.Get(&ret, q, patientID); err != nil {
|
||||
return ret, fmt.Errorf("error get akun peserta")
|
||||
}
|
||||
logger.Info("response", zap.Any("data", ret))
|
||||
// logger.Info("response", zap.Any("data", ret))
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) ResetPasswordPeserta(token string, newPassword string, email string, authuserid string) (models.ResponseStatus, error) {
|
||||
var ret models.ResponseStatus
|
||||
|
||||
uri := "https://" + config.Data.Get("servername") + "/one-api/mockup/system/menu/reset_password_pat"
|
||||
|
||||
params := url.Values{}
|
||||
params.Add("new", newPassword)
|
||||
params.Add("email", email)
|
||||
params.Add("authuserid", authuserid)
|
||||
params.Add("token", token)
|
||||
|
||||
req, err := http.PostForm(uri, params)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error request change password",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
defer req.Body.Close()
|
||||
|
||||
resp, err := io.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error read response",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &ret)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error unmarshal response",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user