update insert and get surat kontrol

This commit is contained in:
2025-01-31 09:50:38 +07:00
parent a5d96f0894
commit de58c78a25
9 changed files with 155 additions and 138 deletions

No files matched your search

+8
View File
@@ -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
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="Go" enabled="true">
<buildTags>
<option name="os" value="linux" />
</buildTags>
</component>
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/api-bpjs-surkon.iml" filepath="$PROJECT_DIR$/.idea/api-bpjs-surkon.iml" />
</modules>
</component>
</project>
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
+3 -27
View File
@@ -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/
@@ -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")
+6 -2
View File
@@ -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{
+105 -105
View File
@@ -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)
}
}
@@ -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 {