add vclaim sep control letter

This commit is contained in:
dpurbosakti
2025-11-19 14:27:56 +07:00
parent 0819d84d44
commit f00a39d1b0
9 changed files with 168 additions and 8 deletions
@@ -0,0 +1,61 @@
package vclaimsepcontrolletter
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type CreateDto struct {
VclaimSep_Number *string `json:"vclaimSep_number"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Sort string `json:"sort"`
Pagination ecore.Pagination
}
type FilterDto struct {
VclaimSep_Number *string `json:"vclaimSep_number"`
}
type ReadDetailDto struct {
Id uint `json:"id"`
}
type UpdateDto struct {
Id uint `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.Main
VclaimSep_Number *string `json:"vclaimSep_number"`
Counter *uint `json:"counter"`
}
func (d VclaimSepControlLetter) ToResponse() ResponseDto {
resp := ResponseDto{
VclaimSep_Number: d.VclaimSep_Number,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []VclaimSepControlLetter) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,13 @@
package vclaimsepcontrolletter
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type VclaimSepControlLetter struct {
ecore.Main
VclaimSep_Number *string `json:"vclaimSep_number"`
Number *string `json:"number" gorm:"unique;size:20"`
Value *string `json:"value"`
FileUrl *string `json:"fileUrl" gorm:"unique;size:1024"`
}
@@ -2,12 +2,10 @@ package vclaimsepprint
import (
ecore "simrs-vx/internal/domain/base-entities/core"
evs "simrs-vx/internal/domain/bpjs-entities/vclaim-sep"
)
type VclaimSepPrint struct {
ecore.Main
VclaimSep_Number *string `json:"vclaimSep_number"`
VclaimSep *evs.VclaimSep `json:"vclaimSep,omitempty" gorm:"foreignKey:VclaimSep_Number;references:Number"`
Counter *uint `json:"counter"`
VclaimSep_Number *string `json:"vclaimSep_number"`
Counter *uint `json:"counter"`
}
@@ -2,10 +2,14 @@ package vclaimsep
import (
ecore "simrs-vx/internal/domain/base-entities/core"
evscl "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-control-letter"
evsp "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-print"
)
type VclaimSep struct {
ecore.Main
Encounter_Id *uint `json:"encounter_id"`
Number *string `json:"number" gorm:"unique;size:19"`
Encounter_Id *uint `json:"encounter_id"`
Number *string `json:"number" gorm:"unique;size:19"`
Prints []*evsp.VclaimSepPrint `json:"prints,omitempty" gorm:"foreignKey:VclaimSep_Number;references:Number"`
ControlLetters []*evscl.VclaimSepControlLetter `json:"controlLetters,omitempty" gorm:"foreignKey:VclaimSep_Number;references:Number"`
}
@@ -103,6 +103,7 @@ import (
///BPJS
vclaimmember "simrs-vx/internal/domain/bpjs-entities/vclaim-member"
vclaimsep "simrs-vx/internal/domain/bpjs-entities/vclaim-sep"
vclaimsepcontrolletter "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-control-letter"
vclaimsephist "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-hist"
vclaimsepprint "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-print"
)
@@ -211,5 +212,6 @@ func getMainEntities() []any {
&rehab.Rehab{},
&chemoprotocol.ChemoProtocol{},
&fileattachemnt.EncounterDocument{},
&vclaimsepcontrolletter.VclaimSepControlLetter{},
}
}
@@ -0,0 +1,63 @@
package generatefile
import (
erc "simrs-vx/internal/domain/references/common"
ere "simrs-vx/internal/domain/references/encounter"
)
type GeneralConsentPDF struct {
Relatives []string `json:"relatives"`
Responsible string `json:"responsible"`
Informant string `json:"informant"`
Witness1 string `json:"witness1"`
Witness2 string `json:"witness2"`
Date string `json:"date"`
}
type GenerateDto struct {
EntityType_Code ere.EntityTypeCode `json:"entityType_code" validate:"required"`
Ref_Id *uint `json:"ref_id" validate:"required"`
Type_Code ere.DocTypeCode `json:"type_code" validate:"required"`
FormatType erc.DocFormatTypeCode `json:"formatType"`
TemplateName TemplateDocsName `json:"-"`
Encounter_Id *uint `json:"-"`
}
type VclaimControlLetter struct {
Number string `json:"noSuratKontrol"`
Date 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
PdfPath string
}
type ResponseDto struct {
FileUrl string `json:"fileUrl"`
}
type TemplateDocsName string
// TemplateDocsName is the name of the template file in the assets/docs folder
const (
TDNGC TemplateDocsName = "general-consent.html"
)