update nomr patient
This commit is contained in:
No files matched your search
@@ -61,3 +61,8 @@ func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
res, err := u.Delete(dto)
|
res, err := u.Delete(dto)
|
||||||
rw.DataResponse(w, res, err)
|
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
|
package simgossynchandler
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
hc "simrs-vx/pkg/handler-crud-helper"
|
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/specialist", specialist.O)
|
||||||
hc.SyncCrud(r, prefix+"/v1/subspecialist", subspecialist.O)
|
hc.SyncCrud(r, prefix+"/v1/subspecialist", subspecialist.O)
|
||||||
hc.SyncCrud(r, prefix+"/v1/patient", patient.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))
|
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
|
inputSrc = &inputTemp.CreateDto
|
||||||
}
|
}
|
||||||
|
|
||||||
if data.Number == nil {
|
switch {
|
||||||
|
case inputSrc.Number == nil && data.Number == nil:
|
||||||
medRecNum, err := GenerateNextMedicalRecordNumber()
|
medRecNum, err := GenerateNextMedicalRecordNumber()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
data.Number = &medRecNum
|
data.Number = &medRecNum
|
||||||
|
case inputSrc.Number != nil:
|
||||||
|
data.Number = inputSrc.Number
|
||||||
}
|
}
|
||||||
|
|
||||||
data.Person_Id = inputSrc.Person_Id
|
data.Person_Id = inputSrc.Person_Id
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ func init() {
|
|||||||
|
|
||||||
deletePreMw = append(deletePreMw,
|
deletePreMw = append(deletePreMw,
|
||||||
deleteMw{Name: "sync-delete-patient", Func: plugin.Delete})
|
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 {
|
func checkVclaimMember(input *e.CreateDto, data *e.Patient, tx *gorm.DB) error {
|
||||||
|
|||||||
@@ -162,6 +162,46 @@ func Delete(input *e.DeleteDto) error {
|
|||||||
return nil
|
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 {
|
func getPrefixEndpoint() string {
|
||||||
return fmt.Sprintf("%s%s/v1/patient", sync.O.Host, sync.O.Prefix)
|
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{
|
event := pl.Event{
|
||||||
Feature: "Generate Nomr",
|
Feature: "Generate Nomr",
|
||||||
Source: source,
|
Source: source,
|
||||||
@@ -224,8 +224,8 @@ func Generate() (*d.Data, error) {
|
|||||||
"structure": "single-data",
|
"structure": "single-data",
|
||||||
"status": "created",
|
"status": "created",
|
||||||
},
|
},
|
||||||
Data:d.II{
|
Data: d.IS{
|
||||||
|
"nomr": norm,
|
||||||
}
|
},
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
@@ -43,6 +43,7 @@ func setDataSimgos(input *e.Patient) (data esimgos.MPasien) {
|
|||||||
|
|
||||||
data.Nip = input.RegisteredBy_User_Name
|
data.Nip = input.RegisteredBy_User_Name
|
||||||
data.Tgldaftar = input.RegisteredAt
|
data.Tgldaftar = input.RegisteredAt
|
||||||
|
data.Nomr = *input.Number
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,6 @@ func CreateSimgosData(input e.Patient, event *pl.Event, dbx ...*gorm.DB) (*esimg
|
|||||||
pl.SetLogInfo(event, nil, "started", "DBCreate")
|
pl.SetLogInfo(event, nil, "started", "DBCreate")
|
||||||
|
|
||||||
data := setDataSimgos(&input)
|
data := setDataSimgos(&input)
|
||||||
nomr, err := generateNomrPatient()
|
|
||||||
if err != nil {
|
|
||||||
return nil, plh.HandleCreateError(input, event, err)
|
|
||||||
}
|
|
||||||
data.Nomr = nomr
|
|
||||||
|
|
||||||
var tx *gorm.DB
|
var tx *gorm.DB
|
||||||
if len(dbx) > 0 {
|
if len(dbx) > 0 {
|
||||||
@@ -65,7 +60,6 @@ func UpdateSimgosData(input e.Patient, patientData *esimgos.MPasien, event *pl.E
|
|||||||
|
|
||||||
data := setDataSimgos(&input)
|
data := setDataSimgos(&input)
|
||||||
data.Id = patientData.Id
|
data.Id = patientData.Id
|
||||||
data.Nomr = patientData.Nomr
|
|
||||||
data.CreatedAt = patientData.CreatedAt
|
data.CreatedAt = patientData.CreatedAt
|
||||||
|
|
||||||
var tx *gorm.DB
|
var tx *gorm.DB
|
||||||
|
|||||||
Reference in New Issue
Block a user