diff --git a/controller/pasien/pasien.go b/controller/pasien/pasien.go
index 6ece81d4a477bfd910acfd3004dcc84f70d7303f..0cf7247e21f2c24658b01aa33289c5c98a31ff37 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 5dd17464f3c49d918abe1388bf08ab57f5981264..8149241c9c1f49357cedc5f2e577e49f6a2a5ddf 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 542c1646856dc3d73b078d9e1dd6adc3c3f47f90..1d0e8d9094cda8ca2c4aa85e7893582c5cbd8656 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 13a718c1ba9ed309b9594e14a9921d9f38329f8e..6bdf734e4e14847e3a4493078692f64ab639de3a 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
 	)