api list tindakan
This commit is contained in:
No files matched your search
@@ -353,6 +353,39 @@ const docTemplate = `{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"/reference/tindakan/": {
|
||||||
|
"get": {
|
||||||
|
"tags": [
|
||||||
|
"Reference"
|
||||||
|
],
|
||||||
|
"summary": "Get List Tindakan",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "Search keyword",
|
||||||
|
"name": "search",
|
||||||
|
"in": "query"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/tindakan.TindakanModel"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/shared.BaseErrorResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"definitions": {
|
"definitions": {
|
||||||
@@ -753,6 +786,17 @@ const docTemplate = `{
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"tindakan.TindakanModel": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"KodeTindakan": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"Tindakan": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}`
|
}`
|
||||||
|
|||||||
@@ -347,6 +347,39 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"/reference/tindakan/": {
|
||||||
|
"get": {
|
||||||
|
"tags": [
|
||||||
|
"Reference"
|
||||||
|
],
|
||||||
|
"summary": "Get List Tindakan",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "Search keyword",
|
||||||
|
"name": "search",
|
||||||
|
"in": "query"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/tindakan.TindakanModel"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/shared.BaseErrorResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"definitions": {
|
"definitions": {
|
||||||
@@ -747,6 +780,17 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"tindakan.TindakanModel": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"KodeTindakan": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"Tindakan": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -263,6 +263,13 @@ definitions:
|
|||||||
sub_spesialis:
|
sub_spesialis:
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
tindakan.TindakanModel:
|
||||||
|
properties:
|
||||||
|
KodeTindakan:
|
||||||
|
type: string
|
||||||
|
Tindakan:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
host: localhost:8080
|
host: localhost:8080
|
||||||
info:
|
info:
|
||||||
contact: {}
|
contact: {}
|
||||||
@@ -489,4 +496,25 @@ paths:
|
|||||||
summary: Get List Sub Spesialis
|
summary: Get List Sub Spesialis
|
||||||
tags:
|
tags:
|
||||||
- Reference
|
- Reference
|
||||||
|
/reference/tindakan/:
|
||||||
|
get:
|
||||||
|
parameters:
|
||||||
|
- description: Search keyword
|
||||||
|
in: query
|
||||||
|
name: search
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/tindakan.TindakanModel'
|
||||||
|
type: array
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/shared.BaseErrorResponse'
|
||||||
|
summary: Get List Tindakan
|
||||||
|
tags:
|
||||||
|
- Reference
|
||||||
swagger: "2.0"
|
swagger: "2.0"
|
||||||
@@ -10,8 +10,8 @@ func RegisterRoutes(r *gin.RouterGroup, dbService database.Service) {
|
|||||||
diagnosaRepo := NewRepository(dbService)
|
diagnosaRepo := NewRepository(dbService)
|
||||||
DiagnosaHandler := NewDiagnosaHandler(diagnosaRepo)
|
DiagnosaHandler := NewDiagnosaHandler(diagnosaRepo)
|
||||||
|
|
||||||
kategori := r.Group("/diagnosa")
|
diagnosa := r.Group("/diagnosa")
|
||||||
{
|
{
|
||||||
kategori.GET("", DiagnosaHandler.ListDiagnosa)
|
diagnosa.GET("", DiagnosaHandler.ListDiagnosa)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package tindakan
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
baseResponse "antrian-operasi/internal/shared"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
type TindakanHandler struct {
|
||||||
|
repo ITindakanRepository
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewTindakanHandler(repo ITindakanRepository) TindakanHandler {
|
||||||
|
return TindakanHandler{repo}
|
||||||
|
}
|
||||||
|
|
||||||
|
// List Tindakan godoc
|
||||||
|
// @Summary Get List Tindakan
|
||||||
|
// @Tags Reference
|
||||||
|
// @Param search query string false "Search keyword"
|
||||||
|
// @Success 200 {object} []TindakanModel
|
||||||
|
// @Failure 500 {object} shared.BaseErrorResponse
|
||||||
|
// @Router /reference/tindakan/ [get]
|
||||||
|
func (h TindakanHandler) ListDiagnosa(c *gin.Context) {
|
||||||
|
list, err := h.repo.SearchableListTindakan(c)
|
||||||
|
if err != nil {
|
||||||
|
errorResponse := baseResponse.BaseErrorResponse{
|
||||||
|
Success: false,
|
||||||
|
Code: 500,
|
||||||
|
Message: err.Error(),
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusInternalServerError, errorResponse)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
response := baseResponse.ToBaseResponse(list, true, 200, "success get diagnosa")
|
||||||
|
|
||||||
|
c.JSON(http.StatusOK, response)
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package tindakan
|
||||||
|
|
||||||
|
type TindakanModel struct {
|
||||||
|
KodeTindakan string `db:"kode" json:"KodeTindakan"`
|
||||||
|
Keterangan string `db:"keterangan" json:"Tindakan"`
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package tindakan
|
||||||
|
|
||||||
|
import (
|
||||||
|
"antrian-operasi/internal/database"
|
||||||
|
|
||||||
|
queryUtils "antrian-operasi/internal/utils/query"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
const DB_NAME = "db_simrs"
|
||||||
|
const TBL_NAME = "icd_cm"
|
||||||
|
|
||||||
|
type ITindakanRepository interface {
|
||||||
|
SearchableListTindakan(c *gin.Context) ([]TindakanModel, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
type diagnosaRepo struct {
|
||||||
|
queryBuilder *queryUtils.QueryBuilder
|
||||||
|
db database.Service
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewRepository(dbService database.Service) ITindakanRepository {
|
||||||
|
queryBuilder := queryUtils.NewQueryBuilder(queryUtils.DBTypePostgreSQL).
|
||||||
|
SetAllowedColumns([]string{
|
||||||
|
"kode", "keterangan",
|
||||||
|
}).
|
||||||
|
SetSecurityOptions(false, 100)
|
||||||
|
|
||||||
|
return diagnosaRepo{
|
||||||
|
queryBuilder: queryBuilder,
|
||||||
|
db: dbService,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r diagnosaRepo) SearchableListTindakan(c *gin.Context) ([]TindakanModel, error) {
|
||||||
|
var result []TindakanModel
|
||||||
|
search := c.Query("search")
|
||||||
|
|
||||||
|
query := queryUtils.DynamicQuery{
|
||||||
|
From: TBL_NAME,
|
||||||
|
Fields: []queryUtils.SelectField{
|
||||||
|
{Expression: "kode"},
|
||||||
|
{Expression: "keterangan"},
|
||||||
|
},
|
||||||
|
Limit: 10,
|
||||||
|
}
|
||||||
|
|
||||||
|
if search != "" {
|
||||||
|
searchFilters := []queryUtils.DynamicFilter{
|
||||||
|
{Column: "kode", Operator: queryUtils.OpILike, Value: "%" + search + "%"},
|
||||||
|
{Column: "keterangan", Operator: queryUtils.OpILike, Value: "%" + search + "%"},
|
||||||
|
}
|
||||||
|
query.Filters = append(query.Filters, queryUtils.FilterGroup{Filters: searchFilters, LogicOp: "OR"})
|
||||||
|
}
|
||||||
|
|
||||||
|
dbconn, err := r.db.GetSQLXDB(DB_NAME)
|
||||||
|
if err != nil {
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = r.queryBuilder.ExecuteQuery(
|
||||||
|
c, dbconn, query, &result)
|
||||||
|
if err != nil {
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package tindakan
|
||||||
|
|
||||||
|
import (
|
||||||
|
"antrian-operasi/internal/database"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
func RegisterRoutes(r *gin.RouterGroup, dbService database.Service) {
|
||||||
|
tindakanRepo := NewRepository(dbService)
|
||||||
|
tindakanHandler := NewTindakanHandler(tindakanRepo)
|
||||||
|
|
||||||
|
tindakan := r.Group("/tindakan")
|
||||||
|
{
|
||||||
|
tindakan.GET("", tindakanHandler.ListDiagnosa)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ import (
|
|||||||
"antrian-operasi/internal/domain/reference/kategori"
|
"antrian-operasi/internal/domain/reference/kategori"
|
||||||
"antrian-operasi/internal/domain/reference/pasien"
|
"antrian-operasi/internal/domain/reference/pasien"
|
||||||
"antrian-operasi/internal/domain/reference/spesialis"
|
"antrian-operasi/internal/domain/reference/spesialis"
|
||||||
|
"antrian-operasi/internal/domain/reference/tindakan"
|
||||||
"antrian-operasi/internal/middleware"
|
"antrian-operasi/internal/middleware"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
@@ -44,6 +45,7 @@ func RegisterRoutes(cfg *config.Config, dbService database.Service) *gin.Engine
|
|||||||
dokter.RegisterRoutes(reference, dbService)
|
dokter.RegisterRoutes(reference, dbService)
|
||||||
pasien.RegisterRoutes(reference, dbService)
|
pasien.RegisterRoutes(reference, dbService)
|
||||||
diagnosa.RegisterRoutes(reference, dbService)
|
diagnosa.RegisterRoutes(reference, dbService)
|
||||||
|
tindakan.RegisterRoutes(reference, dbService)
|
||||||
}
|
}
|
||||||
dboard := api.Group("dashboard")
|
dboard := api.Group("dashboard")
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user