penambahan All case Satu sehat

This commit is contained in:
meninjar
2026-05-04 03:48:43 +00:00
parent 135c631021
commit af32d9cfdd
127 changed files with 617690 additions and 1160 deletions

No files matched your search

@@ -25,7 +25,7 @@ func (h *CarePlanHandler) RegisterRoutes(router *gin.RouterGroup) {
func (h *CarePlanHandler) Create(c *gin.Context) {
var req careplan.CarePlanRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.ErrorWithLog(c, err, http.StatusBadRequest, "Invalid request", validator.TranslateError(err))
response.ErrorWithLog(c, err, http.StatusBadRequest, "Format permintaan tidak valid", validator.TranslateError(err))
return
}
res, err := h.service.Create(c.Request.Context(), req)
@@ -51,7 +51,7 @@ func (h *CarePlanHandler) Update(c *gin.Context) {
func (h *CarePlanHandler) Patch(c *gin.Context) {
var req careplan.CarePlanPatchRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.ErrorWithLog(c, err, http.StatusBadRequest, "Invalid patch", validator.TranslateError(err))
response.ErrorWithLog(c, err, http.StatusBadRequest, "Format permintaan patch tidak valid", validator.TranslateError(err))
return
}
res, err := h.service.Patch(c.Request.Context(), c.Param("id"), req)
@@ -27,7 +27,7 @@ func (h *DiagnosticReportHandler) RegisterRoutes(router *gin.RouterGroup) {
func (h *DiagnosticReportHandler) Create(c *gin.Context) {
var req diagnosticreport.DiagnosticReportRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.ErrorWithLog(c, err, http.StatusBadRequest, "Invalid request", validator.TranslateError(err))
response.ErrorWithLog(c, err, http.StatusBadRequest, "Format payload JSON tidak valid", validator.TranslateError(err))
return
}
res, err := h.service.Create(c.Request.Context(), req)
@@ -40,7 +40,7 @@ func (h *DiagnosticReportHandler) Create(c *gin.Context) {
func (h *DiagnosticReportHandler) Update(c *gin.Context) {
var req diagnosticreport.DiagnosticReportRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.ErrorWithLog(c, err, http.StatusBadRequest, "Invalid request", validator.TranslateError(err))
response.ErrorWithLog(c, err, http.StatusBadRequest, "Format payload JSON tidak valid", validator.TranslateError(err))
return
}
res, err := h.service.Update(c.Request.Context(), c.Param("id"), req)
@@ -53,7 +53,7 @@ func (h *DiagnosticReportHandler) Update(c *gin.Context) {
func (h *DiagnosticReportHandler) Patch(c *gin.Context) {
var req diagnosticreport.DiagnosticReportPatchRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.ErrorWithLog(c, err, http.StatusBadRequest, "Invalid patch", validator.TranslateError(err))
response.ErrorWithLog(c, err, http.StatusBadRequest, "Format patch payload tidak valid", validator.TranslateError(err))
return
}
res, err := h.service.Patch(c.Request.Context(), c.Param("id"), req)
@@ -0,0 +1,60 @@
package usecase
import (
"io"
"net/http"
"service/internal/satusehat/usecase/studies"
"service/pkg/response"
"github.com/gin-gonic/gin"
)
type DicomStudiesHandler struct {
service studies.Service
}
func NewDicomStudiesHandler(service studies.Service) *DicomStudiesHandler {
return &DicomStudiesHandler{
service: service,
}
}
func (h *DicomStudiesHandler) RegisterRoutes(router *gin.RouterGroup) {
// URL akan menjadi: POST /api/v1/satusehat/dicom/studies
group := router.Group("/satusehat/dicom/studies")
{
group.POST("", h.Upload)
}
}
func (h *DicomStudiesHandler) Upload(c *gin.Context) {
// Ambil file dari request FormData dengan key "file"
file, err := c.FormFile("file")
if err != nil {
response.Error(c, http.StatusBadRequest, "File DICOM tidak ditemukan pada form-data key 'file'", err.Error())
return
}
openedFile, err := file.Open()
if err != nil {
response.Error(c, http.StatusInternalServerError, "Gagal membuka file DICOM sementara", err.Error())
return
}
defer openedFile.Close()
dicomBytes, err := io.ReadAll(openedFile)
if err != nil {
response.Error(c, http.StatusInternalServerError, "Gagal membaca byte dari file DICOM", err.Error())
return
}
result, err := h.service.UploadDICOM(c.Request.Context(), dicomBytes)
if err != nil {
// Fungsi ini berasal dari encounter_handler.go di package yang sama
handleSatuSehatError(c, err)
return
}
response.Success(c, http.StatusOK, "Berhasil mengunggah file DICOM ke SatuSehat STOW-RS", result.FullResponse)
}
@@ -3,7 +3,6 @@ package usecase
import (
"errors"
"net/http"
"strconv"
"time"
"service/internal/interfaces/satusehat"
@@ -29,7 +28,7 @@ func (h *EncounterHandler) RegisterRoutes(router *gin.RouterGroup) {
group := router.Group("/satusehat/encounter")
{
group.POST("", h.Create)
group.POST("/sync/:idxdaftar", h.SyncFromSIMRS)
// group.POST("/sync/:idxdaftar", h.SyncFromSIMRS)
group.GET("", h.Search)
group.GET("/:id", h.GetByID)
group.PUT("/:id", h.Update)
@@ -132,18 +131,18 @@ func (h *EncounterHandler) Search(c *gin.Context) {
response.Success(c, http.StatusOK, "Successfully retrieved Encounters", result.FullResponse)
}
func (h *EncounterHandler) SyncFromSIMRS(c *gin.Context) {
idxdaftarStr := c.Param("idxdaftar")
idxdaftar, err := strconv.ParseInt(idxdaftarStr, 10, 64)
if err != nil {
response.ErrorWithLog(c, err, http.StatusBadRequest, "Format idxdaftar tidak valid", nil)
return
}
// func (h *EncounterHandler) SyncFromSIMRS(c *gin.Context) {
// idxdaftarStr := c.Param("idxdaftar")
// idxdaftar, err := strconv.ParseInt(idxdaftarStr, 10, 64)
// if err != nil {
// response.ErrorWithLog(c, err, http.StatusBadRequest, "Format idxdaftar tidak valid", nil)
// return
// }
result, err := h.service.SyncFromSIMRS(c.Request.Context(), idxdaftar)
if err != nil {
handleSatuSehatError(c, err)
return
}
response.Success(c, http.StatusOK, "Successfully synced Encounter from SIMRS", result.FullResponse)
}
// result, err := h.service.SyncFromSIMRS(c.Request.Context(), idxdaftar)
// if err != nil {
// handleSatuSehatError(c, err)
// return
// }
// response.Success(c, http.StatusOK, "Successfully synced Encounter from SIMRS", result.FullResponse)
// }