Merge branch 'dev' of https://github.com/dikstub-rssa/simrs-be into feat/sync-vanili

This commit is contained in:
vanilia
2025-12-11 01:36:29 +07:00
13 changed files with 388 additions and 79 deletions

No files matched your search

@@ -183,9 +183,9 @@ func generateCL(input GenerateDto, event pl.Event, tx *gorm.DB) (*ResponseDto, e
}
// map template data
clData := VclaimControlLetter{}
if input.Data != nil {
err := json.Unmarshal([]byte(*input.Data), &clData)
clData := evscl.ResponseForPDF{}
if cl.Value != nil {
err := json.Unmarshal([]byte(*cl.Value), &clData)
if err != nil {
event.ErrInfo = pl.ErrorInfo{
Code: "data-unmarshal-fail",
@@ -195,22 +195,11 @@ func generateCL(input GenerateDto, event pl.Event, tx *gorm.DB) (*ResponseDto, e
return nil, err
}
} else {
return nil, errors.New("there is no data to be used")
return nil, errors.New("there is no value to be used")
}
if cl == nil {
createCL := evscl.CreateDto{
VclaimSep_Number: &clData.VclaimSep.Number,
Number: &clData.Number,
Value: input.Data,
}
if cl, err = uvscl.CreateData(createCL, &event, tx); err != nil {
return nil, err
}
}
// get encounter id by vclaim sep number
vs, err := uvs.ReadDetailData(evs.ReadDetailDto{Number: &clData.VclaimSep.Number}, &event)
vs, err := uvs.ReadDetailData(evs.ReadDetailDto{Number: cl.VclaimSep_Number}, &event)
if err != nil {
return nil, err
}
@@ -220,7 +209,7 @@ func generateCL(input GenerateDto, event pl.Event, tx *gorm.DB) (*ResponseDto, e
input.Encounter_Id = vs.Encounter_Id
input.UseA5Lanscape = true
templateData := clData.generateTemplateData()
templateData := generateTemplateData(clData)
// generate file
urlPub, err := generateFile(input, templateData)
if err != nil {
@@ -1,15 +1,11 @@
package generatefile
import (
"fmt"
"time"
evscl "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-control-letter"
erc "simrs-vx/internal/domain/references/common"
ere "simrs-vx/internal/domain/references/encounter"
er "simrs-vx/internal/domain/main-entities/resume"
pu "simrs-vx/pkg/use-case-helper"
)
type GeneralConsentPDF struct {
@@ -105,28 +101,6 @@ type GenerateDto struct {
Data *string `json:"data"`
}
type VclaimControlLetter struct {
Number string `json:"noSuratKontrol"`
PlannedControlDate string `json:"tglRencanaKontrol"`
Doctor_Name string `json:"namaDokter"`
DstUnit_Name string `json:"namaPoliTujuan"`
ResponsibleDoctor_Name string `json:"namaDokterPembuat"`
VclaimSep VclaimSep `json:"sep"`
}
type VclaimSep struct {
VclaimMember VclaimMember `json:"peserta"`
Diagnose string `json:"diagnosa"`
Number string `json:"noSep"`
}
type VclaimMember struct {
CardNumber string `json:"noKartu"`
Name string `json:"nama"`
BirthDate string `json:"tglLahir"`
Gender string `json:"kelamin"`
}
type GeneratePDFdto struct {
TemplatePath string
TemplateData any
@@ -149,37 +123,17 @@ const (
TDNSB TemplateDocsName = "screening-form-b.html"
)
func (v VclaimControlLetter) generateTemplateData() ControlLetterPDF {
func generateTemplateData(v evscl.ResponseForPDF) ControlLetterPDF {
return ControlLetterPDF{
Number: v.Number,
Doctor_Name: v.Doctor_Name,
DstUnit_Name: v.DstUnit_Name,
CardNumber: v.VclaimSep.VclaimMember.CardNumber,
Name: v.generateNameWithGender(),
BirthDate: v.generateBirthDate(),
Name: v.GenerateNameWithGender(),
BirthDate: v.GenerateBirthDate(),
Diagnose: v.VclaimSep.Diagnose,
PlanDate: v.PlannedControlDate,
ResponsibleDoctor_Name: v.ResponsibleDoctor_Name,
PrintDate: generatePrintDate(),
PrintDate: v.IssuedDate,
}
}
func (v VclaimControlLetter) generateNameWithGender() string {
gender := "Perempuan"
if v.VclaimSep.VclaimMember.Gender == "L" {
gender = "Laki-Laki"
}
return fmt.Sprintf("%s (%s)", v.VclaimSep.VclaimMember.Name, gender)
}
func (v VclaimControlLetter) generateBirthDate() string {
t, _ := time.Parse("2006-01-02", v.VclaimSep.VclaimMember.BirthDate)
return pu.FormatIndonesianDate(t)
}
func generatePrintDate() string {
now := time.Now()
return now.Format("2006/01/02")
}