From df68c6b36d711f9f832a0d8a59c56563d28f4c77 Mon Sep 17 00:00:00 2001 From: Fahrian Afdholi <89321009+fchrgrib@users.noreply.github.com> Date: Sat, 4 May 2024 17:28:48 +0700 Subject: [PATCH] feat: add controller pemeriksaan dokter --- controller/pasien/pasien.go | 2 +- controller/pemeriksaan/dokter.go | 293 +++++++++++++++++- .../dokter/find_pemeriksaan_dokter.go | 2 +- .../dokter/patch_pemeriksaan_dokter.go | 10 +- 4 files changed, 299 insertions(+), 8 deletions(-) diff --git a/controller/pasien/pasien.go b/controller/pasien/pasien.go index 6ece81d..0cf7247 100644 --- a/controller/pasien/pasien.go +++ b/controller/pasien/pasien.go @@ -216,7 +216,7 @@ func UpdatePasien(c *gin.Context) { } func DeletePasien(c *gin.Context) { - updateBy := c.Query("update_by") + updateBy := c.Query("delete_by") target := c.Query("target") switch updateBy { diff --git a/controller/pemeriksaan/dokter.go b/controller/pemeriksaan/dokter.go index 5dd1746..8149241 100644 --- a/controller/pemeriksaan/dokter.go +++ b/controller/pemeriksaan/dokter.go @@ -1,5 +1,296 @@ package pemeriksaan -func AddPemeriksaanDokter() { +import ( + "github.com/gin-gonic/gin" + "net/http" + "seno-medika.com/model/common" + "seno-medika.com/model/station/doctorstation" + "seno-medika.com/query/pemeriksaan/dokter" +) +func AddPemeriksaanDokter(c *gin.Context) { + var ( + pemeriksaan doctorstation.PemeriksaanDokter + ) + + if err := c.ShouldBindJSON(&pemeriksaan); err != nil { + c.JSON(http.StatusBadRequest, common.Response{ + Message: err.Error(), + Status: "Bad Request", + StatusCode: http.StatusBadRequest, + Data: nil, + }) + return + } + + if err := dokter.AddPemeriksaanDokterDefault(pemeriksaan); err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusCreated, common.Response{ + Message: "Successfully add pemeriksaan dokter", + Status: "ok", + StatusCode: http.StatusCreated, + Data: nil, + }) + return +} + +func DeletePemeriksaanDokter(c *gin.Context) { + deleteBy := c.Query("delete_by") + target := c.Query("target") + + switch deleteBy { + case "id": + if err := dokter.DeletePemeriksaanDokter(target); err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusOK, common.Response{ + Message: "Successfully delete pemeriksaan dokter", + Status: "ok", + StatusCode: http.StatusOK, + Data: nil, + }) + return + } +} + +func PatchPemeriksaanDokter(c *gin.Context) { + updateBy := c.Query("update_by") + updateType := c.Query("update_type") + target := c.Query("target") + + switch updateBy { + case "antrian_id": + switch updateType { + case "riwayat_pemeriksaan": + var ( + riwayatPemeriksaan doctorstation.RiwayatPemeriksaan + ) + + if err := c.ShouldBindJSON(&riwayatPemeriksaan); err != nil { + c.JSON(http.StatusBadRequest, common.Response{ + Message: err.Error(), + Status: "Bad Request", + StatusCode: http.StatusBadRequest, + Data: nil, + }) + return + } + + if err := dokter.PatchRiwayatPemeriksaan(target, riwayatPemeriksaan); err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusOK, common.Response{ + Message: "Successfully update riwayat pemeriksaan", + Status: "ok", + StatusCode: http.StatusOK, + Data: nil, + }) + return + + case "keadaan_fisik": + var ( + keadaanFisik doctorstation.KeadaanFisik + ) + + if err := c.ShouldBindJSON(&keadaanFisik); err != nil { + c.JSON(http.StatusBadRequest, common.Response{ + Message: err.Error(), + Status: "Bad Request", + StatusCode: http.StatusBadRequest, + Data: nil, + }) + return + } + + if err := dokter.PatchKeadaanFisik(target, keadaanFisik); err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusOK, common.Response{ + Message: "Successfully update keadaan fisik", + Status: "ok", + StatusCode: http.StatusOK, + Data: nil, + }) + return + + case "diagnosa": + var ( + diagnosa doctorstation.Diagnosa + ) + + if err := c.ShouldBindJSON(&diagnosa); err != nil { + c.JSON(http.StatusBadRequest, common.Response{ + Message: err.Error(), + Status: "Bad Request", + StatusCode: http.StatusBadRequest, + Data: nil, + }) + return + } + + if err := dokter.PatchDiagnosa(target, diagnosa); err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusOK, common.Response{ + Message: "Successfully update diagnosa", + Status: "ok", + StatusCode: http.StatusOK, + Data: nil, + }) + return + + case "anatomi": + var ( + anatomi doctorstation.Anatomi + ) + + if err := c.ShouldBindJSON(&anatomi); err != nil { + c.JSON(http.StatusBadRequest, common.Response{ + Message: err.Error(), + Status: "Bad Request", + StatusCode: http.StatusBadRequest, + Data: nil, + }) + return + } + + if err := dokter.PatchAnatomi(target, anatomi); err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusOK, common.Response{ + Message: "Successfully update anatomi", + Status: "ok", + StatusCode: http.StatusOK, + Data: nil, + }) + return + + case "pemeriksaan_fisik": + var ( + pemeriksaanFisik doctorstation.PemeriksaanFisik + ) + + if err := c.ShouldBindJSON(&pemeriksaanFisik); err != nil { + c.JSON(http.StatusBadRequest, common.Response{ + Message: err.Error(), + Status: "Bad Request", + StatusCode: http.StatusBadRequest, + Data: nil, + }) + return + } + + if err := dokter.PatchPemeriksaanFisik(target, pemeriksaanFisik); err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusOK, common.Response{ + Message: "Successfully update pemeriksaan fisik", + Status: "ok", + StatusCode: http.StatusOK, + Data: nil, + }) + return + + } + } +} + +func GetPemeriksaanDokter(c *gin.Context) { + findBy := c.Query("find_by") + target := c.Query("target") + + switch findBy { + case "id": + data, err := dokter.FindPemeriksaanDokterById(target) + + if err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusOK, common.Response{ + Message: "Successfully get pemeriksaan dokter", + Status: "ok", + StatusCode: http.StatusOK, + Data: data, + }) + return + + case "antrian_id": + data, err := dokter.FindPemeriksaanDokterByAntrianId(target) + + if err != nil { + c.JSON(http.StatusInternalServerError, common.Response{ + Message: err.Error(), + Status: "Internal Server Error", + StatusCode: http.StatusInternalServerError, + Data: nil, + }) + return + } + + c.JSON(http.StatusOK, common.Response{ + Message: "Successfully get pemeriksaan dokter", + Status: "ok", + StatusCode: http.StatusOK, + Data: data, + }) + + return + } } diff --git a/query/pemeriksaan/dokter/find_pemeriksaan_dokter.go b/query/pemeriksaan/dokter/find_pemeriksaan_dokter.go index 542c164..1d0e8d9 100644 --- a/query/pemeriksaan/dokter/find_pemeriksaan_dokter.go +++ b/query/pemeriksaan/dokter/find_pemeriksaan_dokter.go @@ -75,7 +75,7 @@ func FindPemeriksaanDokterById(pemeriksaanId string) (doctorstation.PemeriksaanD return pemeriksaan, nil } -func FindPemeriksaanDokterByAntrianId(antrianId int) (doctorstation.PemeriksaanDokterMerge, error) { +func FindPemeriksaanDokterByAntrianId(antrianId string) (doctorstation.PemeriksaanDokterMerge, error) { var ( pemeriksaanId string pemeriksaan doctorstation.PemeriksaanDokterMerge diff --git a/query/pemeriksaan/dokter/patch_pemeriksaan_dokter.go b/query/pemeriksaan/dokter/patch_pemeriksaan_dokter.go index 13a718c..6bdf734 100644 --- a/query/pemeriksaan/dokter/patch_pemeriksaan_dokter.go +++ b/query/pemeriksaan/dokter/patch_pemeriksaan_dokter.go @@ -6,7 +6,7 @@ import ( "time" ) -func PatchPemeriksaanFisik(antrianId int, pemeriksaanFisik doctorstation.PemeriksaanFisik) error { +func PatchPemeriksaanFisik(antrianId string, pemeriksaanFisik doctorstation.PemeriksaanFisik) error { var ( pemeriksaanDokterId int ) @@ -23,7 +23,7 @@ func PatchPemeriksaanFisik(antrianId int, pemeriksaanFisik doctorstation.Pemerik return nil } -func PatchRiwayatPemeriksaan(antrianId int, riwayatPemeriksaan doctorstation.RiwayatPemeriksaan) error { +func PatchRiwayatPemeriksaan(antrianId string, riwayatPemeriksaan doctorstation.RiwayatPemeriksaan) error { var ( pemeriksaanDokterId int ) @@ -40,7 +40,7 @@ func PatchRiwayatPemeriksaan(antrianId int, riwayatPemeriksaan doctorstation.Riw return nil } -func PatchKeadaanFisik(antrianId int, keadaanFisik doctorstation.KeadaanFisik) error { +func PatchKeadaanFisik(antrianId string, keadaanFisik doctorstation.KeadaanFisik) error { var ( pemeriksaanDokterId int ) @@ -57,7 +57,7 @@ func PatchKeadaanFisik(antrianId int, keadaanFisik doctorstation.KeadaanFisik) e return nil } -func PatchDiagnosa(antrianId int, diagnosa doctorstation.Diagnosa) error { +func PatchDiagnosa(antrianId string, diagnosa doctorstation.Diagnosa) error { var ( pemeriksaanDokterId int ) @@ -75,7 +75,7 @@ func PatchDiagnosa(antrianId int, diagnosa doctorstation.Diagnosa) error { } -func PatchAnatomi(antrianId int, anatomi doctorstation.Anatomi) error { +func PatchAnatomi(antrianId string, anatomi doctorstation.Anatomi) error { var ( pemeriksaanDokterId int ) -- GitLab