add vclaim sep control letter
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
-- Modify "VclaimSepPrint" table
|
||||||
|
ALTER TABLE "public"."VclaimSepPrint" DROP CONSTRAINT "fk_VclaimSepPrint_VclaimSep", ADD CONSTRAINT "fk_VclaimSep_Prints" FOREIGN KEY ("VclaimSep_Number") REFERENCES "public"."VclaimSep" ("Number") ON UPDATE NO ACTION ON DELETE NO ACTION;
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
-- Create "VclaimSepControlLetter" table
|
||||||
|
CREATE TABLE "public"."VclaimSepControlLetter" (
|
||||||
|
"Id" bigserial NOT NULL,
|
||||||
|
"CreatedAt" timestamptz NULL,
|
||||||
|
"UpdatedAt" timestamptz NULL,
|
||||||
|
"DeletedAt" timestamptz NULL,
|
||||||
|
"VclaimSep_Number" character varying(19) NULL,
|
||||||
|
"Number" character varying(20) NULL,
|
||||||
|
"Value" text NULL,
|
||||||
|
"FileUrl" character varying(1024) NULL,
|
||||||
|
PRIMARY KEY ("Id"),
|
||||||
|
CONSTRAINT "uni_VclaimSepControlLetter_FileUrl" UNIQUE ("FileUrl"),
|
||||||
|
CONSTRAINT "uni_VclaimSepControlLetter_Number" UNIQUE ("Number"),
|
||||||
|
CONSTRAINT "fk_VclaimSep_ControlLetters" FOREIGN KEY ("VclaimSep_Number") REFERENCES "public"."VclaimSep" ("Number") ON UPDATE NO ACTION ON DELETE NO ACTION
|
||||||
|
);
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
h1:FJ97x7mv6aBxLgnUAvO7/mGPnvoi+qZNnd1APvyv4yA=
|
h1:8gw1BB9DWz+cNATJjG1oMXA+QAF1HrIw47xjbI33aC4=
|
||||||
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
|
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
|
||||||
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
|
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
|
||||||
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
|
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
|
||||||
@@ -122,4 +122,6 @@ h1:FJ97x7mv6aBxLgnUAvO7/mGPnvoi+qZNnd1APvyv4yA=
|
|||||||
20251117075427.sql h1:TqU9VKZa3I8YNXUGQWY3WVBYN+1FvyyaKy0hB1jgAho=
|
20251117075427.sql h1:TqU9VKZa3I8YNXUGQWY3WVBYN+1FvyyaKy0hB1jgAho=
|
||||||
20251118074929.sql h1:p1KsWqCuR1JXA/jVO5BmOhCcaQ8clT7t0YRszAhPFbg=
|
20251118074929.sql h1:p1KsWqCuR1JXA/jVO5BmOhCcaQ8clT7t0YRszAhPFbg=
|
||||||
20251119063438.sql h1:NVGM0X/LHD37EaPl8SNzkNiZDJ7AB1QR+LLwLh6WRdg=
|
20251119063438.sql h1:NVGM0X/LHD37EaPl8SNzkNiZDJ7AB1QR+LLwLh6WRdg=
|
||||||
20251119065730.sql h1:dPEFgPyVuuJpWp84xqyZlXeSTK8BMYWNQfklQavOpA0=
|
20251119065730.sql h1:U5lzk1WvMB0bw3kwckou7jkEt4bwdYItwHr2Vxqe7w4=
|
||||||
|
20251119072302.sql h1:8L+NsXPFXGZDQZIOhShvuBM9aLwU3h95tXnz6jxHhlA=
|
||||||
|
20251119072450.sql h1:ksTc8ljaHFrBo1/HiHtcnT+iJ7kPS93KgetFTf3p4Qc=
|
||||||
|
|||||||
@@ -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 (
|
import (
|
||||||
ecore "simrs-vx/internal/domain/base-entities/core"
|
ecore "simrs-vx/internal/domain/base-entities/core"
|
||||||
evs "simrs-vx/internal/domain/bpjs-entities/vclaim-sep"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type VclaimSepPrint struct {
|
type VclaimSepPrint struct {
|
||||||
ecore.Main
|
ecore.Main
|
||||||
VclaimSep_Number *string `json:"vclaimSep_number"`
|
VclaimSep_Number *string `json:"vclaimSep_number"`
|
||||||
VclaimSep *evs.VclaimSep `json:"vclaimSep,omitempty" gorm:"foreignKey:VclaimSep_Number;references:Number"`
|
Counter *uint `json:"counter"`
|
||||||
Counter *uint `json:"counter"`
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,14 @@ package vclaimsep
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
ecore "simrs-vx/internal/domain/base-entities/core"
|
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 {
|
type VclaimSep struct {
|
||||||
ecore.Main
|
ecore.Main
|
||||||
Encounter_Id *uint `json:"encounter_id"`
|
Encounter_Id *uint `json:"encounter_id"`
|
||||||
Number *string `json:"number" gorm:"unique;size:19"`
|
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
|
///BPJS
|
||||||
vclaimmember "simrs-vx/internal/domain/bpjs-entities/vclaim-member"
|
vclaimmember "simrs-vx/internal/domain/bpjs-entities/vclaim-member"
|
||||||
vclaimsep "simrs-vx/internal/domain/bpjs-entities/vclaim-sep"
|
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"
|
vclaimsephist "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-hist"
|
||||||
vclaimsepprint "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-print"
|
vclaimsepprint "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-print"
|
||||||
)
|
)
|
||||||
@@ -211,5 +212,6 @@ func getMainEntities() []any {
|
|||||||
&rehab.Rehab{},
|
&rehab.Rehab{},
|
||||||
&chemoprotocol.ChemoProtocol{},
|
&chemoprotocol.ChemoProtocol{},
|
||||||
&fileattachemnt.EncounterDocument{},
|
&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"
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user