update nomr patient
This commit is contained in:
@@ -61,3 +61,8 @@ func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
res, err := u.Delete(dto)
|
||||
rw.DataResponse(w, res, err)
|
||||
}
|
||||
|
||||
func (obj myBase) GenerateNomr(w http.ResponseWriter, r *http.Request) {
|
||||
res, err := u.GenerateNomr()
|
||||
rw.DataResponse(w, res, err)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package simgossynchandler
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
hc "simrs-vx/pkg/handler-crud-helper"
|
||||
|
||||
@@ -45,6 +46,7 @@ func SetRoutes() http.Handler {
|
||||
hc.SyncCrud(r, prefix+"/v1/specialist", specialist.O)
|
||||
hc.SyncCrud(r, prefix+"/v1/subspecialist", subspecialist.O)
|
||||
hc.SyncCrud(r, prefix+"/v1/patient", patient.O)
|
||||
r.HandleFunc(fmt.Sprintf("GET %s/v1/patient-nomr-generator", prefix), patient.O.GenerateNomr)
|
||||
|
||||
return cmw.SetCors(handlerlogger.SetLog(r))
|
||||
}
|
||||
|
||||
@@ -24,12 +24,15 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Patient) error {
|
||||
inputSrc = &inputTemp.CreateDto
|
||||
}
|
||||
|
||||
if data.Number == nil {
|
||||
switch {
|
||||
case inputSrc.Number == nil && data.Number == nil:
|
||||
medRecNum, err := GenerateNextMedicalRecordNumber()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
data.Number = &medRecNum
|
||||
case inputSrc.Number != nil:
|
||||
data.Number = inputSrc.Number
|
||||
}
|
||||
|
||||
data.Person_Id = inputSrc.Person_Id
|
||||
|
||||
@@ -29,6 +29,8 @@ func init() {
|
||||
|
||||
deletePreMw = append(deletePreMw,
|
||||
deleteMw{Name: "sync-delete-patient", Func: plugin.Delete})
|
||||
|
||||
generatePatientNumber = generateNumberMw{Name: "generate-nomr-patient", Func: plugin.GenerateNomrPatient}
|
||||
}
|
||||
|
||||
func checkVclaimMember(input *e.CreateDto, data *e.Patient, tx *gorm.DB) error {
|
||||
|
||||
@@ -162,6 +162,46 @@ func Delete(input *e.DeleteDto) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func GenerateNomrPatient() (*string, error) {
|
||||
prefixEndpoint := getPrefixEndpoint()
|
||||
endpoint := fmt.Sprintf("%s-nomr-generator", prefixEndpoint)
|
||||
|
||||
req, err := http.NewRequest("GET", endpoint, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
bodyBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
errors := d.FieldError{}
|
||||
_ = json.Unmarshal(bodyBytes, &errors)
|
||||
|
||||
return nil, fmt.Errorf(errors.Message)
|
||||
}
|
||||
|
||||
var result map[string]any
|
||||
if err = json.Unmarshal(bodyBytes, &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
dataMap := result["data"].(map[string]any)
|
||||
nomr := dataMap["nomr"].(string)
|
||||
|
||||
return &nomr, nil
|
||||
}
|
||||
|
||||
func getPrefixEndpoint() string {
|
||||
return fmt.Sprintf("%s%s/v1/patient", sync.O.Host, sync.O.Prefix)
|
||||
}
|
||||
|
||||
@@ -202,7 +202,7 @@ func Delete(input e.DeleteDto) (*d.Data, error) {
|
||||
|
||||
}
|
||||
|
||||
func Generate() (*d.Data, error) {
|
||||
func GenerateNomr() (*d.Data, error) {
|
||||
event := pl.Event{
|
||||
Feature: "Generate Nomr",
|
||||
Source: source,
|
||||
@@ -224,8 +224,8 @@ func Generate() (*d.Data, error) {
|
||||
"structure": "single-data",
|
||||
"status": "created",
|
||||
},
|
||||
Data:d.II{
|
||||
|
||||
}
|
||||
Data: d.IS{
|
||||
"nomr": norm,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ func setDataSimgos(input *e.Patient) (data esimgos.MPasien) {
|
||||
|
||||
data.Nip = input.RegisteredBy_User_Name
|
||||
data.Tgldaftar = input.RegisteredAt
|
||||
data.Nomr = *input.Number
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@@ -21,11 +21,6 @@ func CreateSimgosData(input e.Patient, event *pl.Event, dbx ...*gorm.DB) (*esimg
|
||||
pl.SetLogInfo(event, nil, "started", "DBCreate")
|
||||
|
||||
data := setDataSimgos(&input)
|
||||
nomr, err := generateNomrPatient()
|
||||
if err != nil {
|
||||
return nil, plh.HandleCreateError(input, event, err)
|
||||
}
|
||||
data.Nomr = nomr
|
||||
|
||||
var tx *gorm.DB
|
||||
if len(dbx) > 0 {
|
||||
@@ -65,7 +60,6 @@ func UpdateSimgosData(input e.Patient, patientData *esimgos.MPasien, event *pl.E
|
||||
|
||||
data := setDataSimgos(&input)
|
||||
data.Id = patientData.Id
|
||||
data.Nomr = patientData.Nomr
|
||||
data.CreatedAt = patientData.CreatedAt
|
||||
|
||||
var tx *gorm.DB
|
||||
|
||||
Reference in New Issue
Block a user