diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..a9778b5
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/api-bpjs-surkon.iml b/.idea/api-bpjs-surkon.iml
new file mode 100644
index 0000000..31cd4c7
--- /dev/null
+++ b/.idea/api-bpjs-surkon.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..e38219a
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..3b02f46
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index bf630e1..acd5bfb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,46 +1,22 @@
FROM golang:1.23-alpine AS builder
-# Install tzdata dan dependencies build
-#RUN apk add --no-cache tzdata build-base
-
-# Set timezone ke Asia/Jakarta
-#ENV TZ=Asia/Jakarta
-
-# Install tzdata package for timezone data
-RUN apk add --no-cache tzdata
-
-# Set the timezone to Asia/Jakarta
-RUN cp /usr/share/zoneinfo/Asia/Jakarta /etc/localtime && echo "Asia/Jakarta" > /etc/timezone
-
-# Verify the timezone is set
-RUN date
-
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod tidy
-# Set timezone ke Asia/Jakarta
-#ENV TZ="Asia/Jakarta"
-
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .
# RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM alpine:latest
-RUN apk --no-cache add ca-certificates
-# Install tzdata package for timezone data
-RUN apk add --no-cache tzdata
-
-# Set the timezone to Asia/Jakarta
-RUN cp /usr/share/zoneinfo/Asia/Jakarta /etc/localtime && echo "Asia/Jakarta" > /etc/timezone
-
-# Verify the timezone is set
-RUN date
+# Set timezone ke Asia/Jakarta
+ENV TZ=Asia/Jakarta
+RUN apk --no-cache add ca-certificates tzdata
WORKDIR /root/
diff --git a/database/satu_data/surat_kontrol/surat_kontrol.go b/database/satu_data/surat_kontrol/surat_kontrol.go
index 2095d00..5af5d12 100644
--- a/database/satu_data/surat_kontrol/surat_kontrol.go
+++ b/database/satu_data/surat_kontrol/surat_kontrol.go
@@ -56,8 +56,8 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
log.Println("Req Insert Database : ", reqInsert)
insertQuery := `insert into "data_surat_kontrol" ("id", "date_created", "Tanggal_cetak_surat_kontrol", "Tanggal_rencana_kontrol",
"Nomor_surat_kontrol", "Kunjungan_pasien", "Ruangan_surat_kontrol", "DPJP_surat_kontrol", "Status_surat_kontrol",
- "User_created_surat_kontrol", "Tipe_surat_kontrol", "User_updated_surat_kontrol")
- values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
+ "User_created_surat_kontrol", "Tipe_surat_kontrol", "User_updated_surat_kontrol", "Tipe_rawat")
+ values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
err := config.SatuDataDB.Exec(insertQuery,
reqInsert.ID,
reqInsert.DateCreated,
@@ -71,6 +71,7 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
reqInsert.UserCreatedSurKon,
reqInsert.TipeSurKon,
reqInsert.UserUpdatedSurKon,
+ reqInsert.TipeRawat,
).Error
if err != nil {
log.Println(err)
@@ -126,7 +127,7 @@ func GetDataSuratKontrol(offset, limit string) ([]*suratkontrol.GetDataSuratKont
return dataSurKon, nil
}
-func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontrol, error) {
+func GetDataSuratKontrolByID(idxdaftar string, tipe string) (*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon *suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
dsk."Nomor_surat_kontrol",
@@ -163,7 +164,7 @@ func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontro
left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id"
left join data_ktp dk on dp."KTP" = dk. "id"
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
- where dsk."Status_surat_kontrol" = '1' and dkp2."IDXDAFTAR" = ?`, idxdaftar).First(&dataSurKon).Error
+ where dsk."Status_surat_kontrol" = '1' and dkp2."IDXDAFTAR" = ? and dsk."Tipe_rawat" = ?`, idxdaftar, tipe).First(&dataSurKon).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("DPJP anda belum ada subspesialis")
diff --git a/handlers/bpjs/surat_kontrol/surat_kontrol.go b/handlers/bpjs/surat_kontrol/surat_kontrol.go
index 72f5793..04999c3 100644
--- a/handlers/bpjs/surat_kontrol/surat_kontrol.go
+++ b/handlers/bpjs/surat_kontrol/surat_kontrol.go
@@ -169,6 +169,7 @@ func InsertSuratKontrol(c *gin.Context) {
StatusSurKon: 1, // First Insert status always set to 1
UserCreatedSurKon: req.User,
TipeSurKon: req.TipeSurKon,
+ TipeRawat: req.TipeRawat,
}
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
if err != nil {
@@ -285,6 +286,7 @@ func InsertSuratKontrol(c *gin.Context) {
StatusSurKon: 1, // First Insert status always set to 1
UserCreatedSurKon: req.User,
TipeSurKon: "1",
+ TipeRawat: req.TipeRawat,
}
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
@@ -946,7 +948,8 @@ func GetDataSurKon(c *gin.Context) {
func GetDataSurKonByID(c *gin.Context) {
id := c.Param("idxdaftar")
- data, err := suratkontrol.GetDataSuratKontrolByID(id)
+ tipe := c.Param("tiperawat")
+ data, err := suratkontrol.GetDataSuratKontrolByID(id, tipe)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
@@ -994,7 +997,8 @@ func GetDataSurKonByID(c *gin.Context) {
func PrintSurKon(c *gin.Context) {
id := c.Param("idxdaftar")
- data, err := suratkontrol.GetDataSuratKontrolByID(id)
+ tipe := c.Param("tiperawat")
+ data, err := suratkontrol.GetDataSuratKontrolByID(id, tipe)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
diff --git a/main.go b/main.go
index 68624e7..4498451 100644
--- a/main.go
+++ b/main.go
@@ -1,105 +1,105 @@
-package main
-
-import (
- "bridging-rssa/config"
- "bridging-rssa/handlers/bpjs"
- icare "bridging-rssa/handlers/bpjs/i_care"
- "bridging-rssa/handlers/bpjs/jadwal_dokter"
- suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol"
- "log"
-
- _ "bridging-rssa/docs"
-
- "github.com/gin-contrib/cors"
- "github.com/gin-gonic/gin"
- "github.com/joho/godotenv"
- cron "github.com/robfig/cron/v3"
- swaggerFiles "github.com/swaggo/files"
- ginSwagger "github.com/swaggo/gin-swagger"
-)
-
-// @title Crud User
-// @version 1
-// @Description Rest API CRUD User
-
-// @host localhost:8080
-
-func main() {
- err := godotenv.Load()
- if err != nil {
- log.Fatal("Error loading .env file")
- }
-
- config.ConnectDB()
-
- r := gin.Default()
-
- scheduler := cron.New()
-
- defer scheduler.Stop()
-
- scheduler.AddFunc("0 2 * * *", func() {
- log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER ===")
- for {
- success := jadwal_dokter.GetJadwalDokter()
- if success {
- log.Println("=== SCHEDULE GET JADWAL DOKTER DONE ===")
- break
- }
- }
- })
-
- go scheduler.Start()
-
- v1 := r.Group("/api")
-
- subspesialis := v1.Group("/subspesialis")
- {
- subspesialis.GET("/", bpjs.GetAllSubspesialis)
- }
-
- jadwalDokter := v1.Group("/jadwaldokter")
- {
- // jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
- jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP)
- // jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
- jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetJadwalSubspesialisByDate)
- jadwalDokter.GET("/tanggal/:tanggal/spesialis/:spesialis", jadwal_dokter.GetDokterBySpesialis)
- jadwalDokter.GET("/tanggal/:tanggal/subspesialis/:subspesialis", jadwal_dokter.GetDokterBySubspesialis)
- }
-
- suratKontrol := v1.Group("/suratkontrol")
- {
- suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon)
- suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID)
- suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
- suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
- suratKontrol.GET("/printSurKon/:idxdaftar", suratkontrol.PrintSurKon)
- suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
- suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
- suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
- suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
- }
-
- iCare := v1.Group("/icare")
- {
- iCare.POST("/rs/validate", icare.GetFKRTL)
- iCare.POST("/pcare/validate", icare.GetFKTP)
- }
- r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
- r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
- r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
- r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
- r.Use(cors.New(cors.Config{
- AllowOrigins: []string{"*"}, // or specific domains like "http://example.com"
- AllowMethods: []string{"GET", "POST", "PUT", "DELETE"},
- AllowHeaders: []string{"Origin", "Content-Type"},
- AllowCredentials: true,
- }))
-
- log.Println("JALAN DI PORT : 8080")
- err = r.Run(":8080")
- if err != nil {
- log.Fatal(err)
- }
-}
+package main
+
+import (
+ "bridging-rssa/config"
+ "bridging-rssa/handlers/bpjs"
+ icare "bridging-rssa/handlers/bpjs/i_care"
+ "bridging-rssa/handlers/bpjs/jadwal_dokter"
+ suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol"
+ "log"
+
+ _ "bridging-rssa/docs"
+
+ "github.com/gin-contrib/cors"
+ "github.com/gin-gonic/gin"
+ "github.com/joho/godotenv"
+ cron "github.com/robfig/cron/v3"
+ swaggerFiles "github.com/swaggo/files"
+ ginSwagger "github.com/swaggo/gin-swagger"
+)
+
+// @title Crud User
+// @version 1
+// @Description Rest API CRUD User
+
+// @host localhost:8080
+
+func main() {
+ err := godotenv.Load()
+ if err != nil {
+ log.Fatal("Error loading .env file")
+ }
+
+ config.ConnectDB()
+
+ r := gin.Default()
+
+ scheduler := cron.New()
+
+ defer scheduler.Stop()
+
+ //scheduler.AddFunc("0 2 * * *", func() {
+ // log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER ===")
+ // for {
+ // success := jadwal_dokter.GetJadwalDokter()
+ // if success {
+ // log.Println("=== SCHEDULE GET JADWAL DOKTER DONE ===")
+ // break
+ // }
+ // }
+ //})
+
+ go scheduler.Start()
+
+ v1 := r.Group("/api")
+
+ subspesialis := v1.Group("/subspesialis")
+ {
+ subspesialis.GET("/", bpjs.GetAllSubspesialis)
+ }
+
+ jadwalDokter := v1.Group("/jadwaldokter")
+ {
+ // jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
+ jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP)
+ // jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
+ jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetJadwalSubspesialisByDate)
+ jadwalDokter.GET("/tanggal/:tanggal/spesialis/:spesialis", jadwal_dokter.GetDokterBySpesialis)
+ jadwalDokter.GET("/tanggal/:tanggal/subspesialis/:subspesialis", jadwal_dokter.GetDokterBySubspesialis)
+ }
+
+ suratKontrol := v1.Group("/suratkontrol")
+ {
+ suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon)
+ suratKontrol.GET("/idxdaftar/:idxdaftar/tiperawat/:tiperawat", suratkontrol.GetDataSurKonByID)
+ suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
+ suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
+ suratKontrol.GET("/printSurKon/:idxdaftar/tiperawat/:tiperawat", suratkontrol.PrintSurKon)
+ suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
+ suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
+ suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
+ suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
+ }
+
+ iCare := v1.Group("/icare")
+ {
+ iCare.POST("/rs/validate", icare.GetFKRTL)
+ iCare.POST("/pcare/validate", icare.GetFKTP)
+ }
+ r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
+ r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
+ r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
+ r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
+ r.Use(cors.New(cors.Config{
+ AllowOrigins: []string{"*"}, // or specific domains like "http://example.com"
+ AllowMethods: []string{"GET", "POST", "PUT", "DELETE"},
+ AllowHeaders: []string{"Origin", "Content-Type"},
+ AllowCredentials: true,
+ }))
+
+ log.Println("JALAN DI PORT : 8081")
+ err = r.Run(":8081")
+ if err != nil {
+ log.Fatal(err)
+ }
+}
diff --git a/models/bpjs/surat_kontrol/surat_kontrol.go b/models/bpjs/surat_kontrol/surat_kontrol.go
index 4587ba9..72e9a8f 100644
--- a/models/bpjs/surat_kontrol/surat_kontrol.go
+++ b/models/bpjs/surat_kontrol/surat_kontrol.go
@@ -217,6 +217,7 @@ type DataSuratKontrol struct {
UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_surat_kontrol"`
TipeSurKon string `gorm:"column:Tipe_surat_kontrol" json:"Tipe_surat_kontrol"`
UserUpdatedSurKon string `gorm:"column:User_updated_surat_kontrol" json:"User_updated_surat_kontrol"`
+ TipeRawat string `gorm:"column:Tipe_rawat" json:"Tipe_rawat"`
}
type ResponseSuratKontrolBySEP struct {