add detail pemeriksaan

This commit is contained in:
2024-08-14 13:59:15 +07:00
parent 35dd1b18fc
commit 72c7e714f5
14 changed files with 732 additions and 201 deletions

View File

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