Initial commit
Some checks failed
Go-test / build (push) Has been cancelled

This commit is contained in:
2025-12-01 09:15:48 +07:00
parent d4638dddc8
commit 3a53de2ae1
23 changed files with 3177 additions and 22135 deletions

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,160 +0,0 @@
global:
module_name: "api-service"
output_dir: "internal/handlers"
enable_swagger: true
enable_logging: true
services:
vclaim:
name: "VClaim"
category: "vclaim"
package: "vclaim"
description: "BPJS VClaim service for eligibility and SEP management"
base_url: "https://apijkn.bpjs-kesehatan.go.id/vclaim-rest"
timeout: 30
retry_count: 3
endpoints:
peserta:
description: "Participant eligibility information"
handler_folder: "peserta"
handler_file: "peserta.go"
handler_name: "Peserta"
functions:
bynokartu:
methods: ["GET"]
path: "/peserta/:nokartu"
get_routes: "/nokartu/:nokartu"
# post_routes: "/Peserta/nokartu/:nokartu"
# put_routes: "/Peserta/nokartu/:nokartu"
# delete_routes: "/Peserta/nokartu/:nokartu"
get_path: "/Peserta/nokartu/:nokartu/tglSEP/:tglSEP"
# post_path: "/peserta"
# put_path: "/peserta/:nokartu"
# delete_path: "/peserta/:nokartu"
model: "PesertaRequest"
response_model: "PesertaResponse"
request_model: "RujukanRequest"
description: "Get participant eligibility information by card number"
summary: "Get Participant Info by No Kartu"
tags: ["Peserta"]
require_auth: true
cache_enabled: true
cache_ttl: 300
bynik:
methods: ["GET"]
path: "/peserta/nik/:nik"
get_routes: "/nik/:nik"
# post_routes: "/Peserta/nik/:nik"
# put_routes: "/Peserta/nik/:nik"
# delete_routes: "/Peserta/nik/:nik"
get_path: "/Peserta/nik/:nik/tglSEP/:tglSEP"
# post_path: "/peserta"
# put_path: "/peserta/nik/:nik"
# delete_path: "/peserta/nik/:nik"
model: "PesertaRequest"
response_model: "PesertaResponse"
request_model: "PesertaRequest"
description: "Get participant eligibility information by NIK"
summary: "Get Participant Info by NIK"
tags: ["Peserta"]
require_auth: true
cache_enabled: true
cache_ttl: 300
rujukan:
description: "Rujukan management endpoints"
handler_folder: "rujukan"
handler_file: "rujukan.go"
handler_name: "Rujukan"
functions:
rujukan:
methods: ["POST", "PUT", "DELETE"]
path: "/Rujukan"
# get_routes: "/Rujukan/:norujukan"
post_routes: "/Rujukan/:norujukan"
put_routes: "/Rujukan/:norujukan"
delete_routes: "/Rujukan/:norujukan"
# get_path: "/Rujukan/:norujukan"
post_path: "/Rujukan"
put_path: "/Rujukan/:norujukan"
delete_path: "/Rujukan/:norujukan"
model: "RujukanRequest"
response_model: "RujukanResponse"
request_model: "RujukanRequest"
description: "Manage rujukan"
summary: "Rujukan Management"
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
cache_ttl: 180
rujukanbalik:
methods: ["POST", "PUT", "DELETE"]
path: "/Rujukanbalik"
# get_routes: "/Rujukanbalik/:norujukan"
post_routes: "/Rujukanbalik/:norujukan"
put_routes: "/Rujukanbalik/:norujukan"
delete_routes: "/Rujukanbalik/:norujukan"
# get_path: "/Rujukanbalik/:norujukan"
post_path: "/Rujukanbalik"
put_path: "/Rujukanbalik/:norujukan"
delete_path: "/Rujukanbalik/:norujukan"
model: "RujukanRequest"
response_model: "RujukanResponse"
request_model: "RujukanRequest"
description: "Manage rujukan"
summary: "Rujukan Management"
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
cache_ttl: 180
search:
description: "Search for rujukan endpoints"
handler_folder: "rujukan"
handler_file: "search.go"
handler_name: "Search"
functions:
bynorujukan:
methods: ["GET"]
path: "/Rujukan/:norujukan"
get_routes: "/bynorujukan/:norujukan"
# post_routes: "/bynorujukan/:norujukan"
# put_routes: "/bynorujukan/:norujukan"
# delete_routes: "/bynorujukan/:norujukan"
get_path: "/Rujukan/:norujukan"
# post_path: "/Rujukan"
# put_path: "/Rujukan/:norujukan"
# delete_path: "/Rujukan/:norujukan"
model: "RujukanRequest"
response_model: "RujukanResponse"
request_model: "RujukanRequest"
description: "Get rujukan by nomor rujukan"
summary: "Rujukan Management"
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
cache_ttl: 300
bynokartu:
methods: ["GET"]
path: "/Rujukan/:nokartu"
get_routes: "/bynokartu/:nokartu"
# post_routes: "/bynokartu/:nokartu"
# put_routes: "/bynokartu/:nokartu"
# delete_routes: "/bynokartu/:nokartu"
get_path: "/Rujukan/:nokartu"
# post_path: "/Rujukan"
# put_path: "/Rujukan/:nokartu"
# delete_path: "/Rujukan/:nokartu"
model: "RujukanRequest"
response_model: "RujukanResponse"
request_model: "RujukanRequest"
description: "Get rujukan by card number"
summary: "Rujukan Management"
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
cache_ttl: 300

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,199 +0,0 @@
# Satu Sehat FHIR Services Configuration
global:
module_name: "api-service"
output_dir: "internal/handlers"
enable_swagger: true
enable_logging: true
enable_metrics: true
enable_auth: true
base_url: "https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1"
version: "1.0.0"
environment: "staging"
fhir_version: "FHIR R4"
profile_url: "https://fhir.kemkes.go.id/r4/StructureDefinition"
services:
patient:
name: "Patient"
category: "patient"
package: "patient"
description: "FHIR Patient resource management for Satu Sehat ecosystem"
base_url: "https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1"
timeout: 30
retry_count: 3
fhir_resource: "Patient"
validation:
enable_fhir_validation: true
required_fields: ["resourceType", "identifier"]
custom_validators: ["validateNIK", "validateKTP"]
authentication:
type: "oauth2"
token_url: "https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken"
scopes: ["patient.read", "patient.write"]
endpoints:
patient:
basic:
methods: ["GET", "POST", "PUT", "PATCH", "DELETE", "SEARCH"]
get_path: "/:id"
post_path: ""
put_path: "/:id"
patch_path: "/:id"
delete_path: "/:id"
search_path: ""
model: "PatientCreateRequest"
response_model: "PatientResponse"
description: "Manage FHIR Patient resources"
summary: "Patient Resource Management"
tags: ["Patient", "FHIR"]
require_auth: true
cache_enabled: true
cache_ttl: 300
fhir_profiles: ["https://fhir.kemkes.go.id/r4/StructureDefinition/Patient"]
search_params: ["identifier", "name", "gender", "birthdate", "address"]
organization:
name: "Organization"
category: "organization"
package: "organization"
description: "FHIR Organization resource management for Satu Sehat ecosystem"
base_url: "https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1"
timeout: 30
retry_count: 3
fhir_resource: "Organization"
validation:
enable_fhir_validation: true
required_fields: ["resourceType", "name"]
authentication:
type: "oauth2"
token_url: "https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken"
scopes: ["organization.read", "organization.write"]
endpoints:
organization:
basic:
methods: ["GET", "POST", "PUT", "PATCH", "DELETE", "SEARCH"]
get_path: "/:id"
post_path: ""
put_path: "/:id"
patch_path: "/:id"
delete_path: "/:id"
search_path: ""
model: "OrganizationCreateRequest"
response_model: "OrganizationResponse"
description: "Manage FHIR Organization resources"
summary: "Organization Resource Management"
tags: ["Organization", "FHIR"]
require_auth: true
cache_enabled: true
cache_ttl: 600
fhir_profiles: ["https://fhir.kemkes.go.id/r4/StructureDefinition/Organization"]
search_params: ["identifier", "name", "type", "address"]
practitioner:
name: "Practitioner"
category: "practitioner"
package: "practitioner"
description: "FHIR Practitioner resource management for Satu Sehat ecosystem"
base_url: "https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1"
timeout: 30
retry_count: 3
fhir_resource: "Practitioner"
validation:
enable_fhir_validation: true
required_fields: ["resourceType", "name"]
authentication:
type: "oauth2"
token_url: "https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken"
scopes: ["practitioner.read", "practitioner.write"]
endpoints:
practitioner:
basic:
methods: ["GET", "POST", "PUT", "PATCH", "DELETE", "SEARCH"]
get_path: "/:id"
post_path: ""
put_path: "/:id"
patch_path: "/:id"
delete_path: "/:id"
search_path: ""
model: "PractitionerCreateRequest"
response_model: "PractitionerResponse"
description: "Manage FHIR Practitioner resources"
summary: "Practitioner Resource Management"
tags: ["Practitioner", "FHIR"]
require_auth: true
cache_enabled: true
cache_ttl: 600
fhir_profiles: ["https://fhir.kemkes.go.id/r4/StructureDefinition/Practitioner"]
search_params: ["identifier", "name", "qualification"]
encounter:
name: "Encounter"
category: "encounter"
package: "encounter"
description: "FHIR Encounter resource management for Satu Sehat ecosystem"
base_url: "https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1"
timeout: 45
retry_count: 3
fhir_resource: "Encounter"
validation:
enable_fhir_validation: true
required_fields: ["resourceType", "status", "subject"]
authentication:
type: "oauth2"
token_url: "https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken"
scopes: ["encounter.read", "encounter.write"]
endpoints:
encounter:
basic:
methods: ["GET", "POST", "PUT", "PATCH", "DELETE", "SEARCH"]
get_path: "/:id"
post_path: ""
put_path: "/:id"
patch_path: "/:id"
delete_path: "/:id"
search_path: ""
model: "EncounterCreateRequest"
response_model: "EncounterResponse"
description: "Manage FHIR Encounter resources"
summary: "Encounter Resource Management"
tags: ["Encounter", "FHIR"]
require_auth: true
cache_enabled: false
fhir_profiles: ["https://fhir.kemkes.go.id/r4/StructureDefinition/Encounter"]
search_params: ["patient", "subject", "status", "date", "practitioner"]
observation:
name: "Observation"
category: "observation"
package: "observation"
description: "FHIR Observation resource management for Satu Sehat ecosystem"
base_url: "https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1"
timeout: 30
retry_count: 3
fhir_resource: "Observation"
validation:
enable_fhir_validation: true
required_fields: ["resourceType", "status", "code", "subject"]
authentication:
type: "oauth2"
token_url: "https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken"
scopes: ["observation.read", "observation.write"]
endpoints:
observation:
basic:
methods: ["GET", "POST", "PUT", "PATCH", "DELETE", "SEARCH"]
get_path: "/:id"
post_path: ""
put_path: "/:id"
patch_path: "/:id"
delete_path: "/:id"
search_path: ""
model: "ObservationCreateRequest"
response_model: "ObservationResponse"
description: "Manage FHIR Observation resources"
summary: "Observation Resource Management"
tags: ["Observation", "FHIR"]
require_auth: true
cache_enabled: true
cache_ttl: 180
fhir_profiles: ["https://fhir.kemkes.go.id/r4/StructureDefinition/Observation"]
search_params: ["patient", "subject", "code", "date", "category"]