add helper for t_diagnosadanterapi
This commit is contained in:
@@ -325,8 +325,8 @@ type SoapiSrc struct {
|
||||
|
||||
type EarlyMedicValue struct {
|
||||
Vaccinated bool `json:"vaccinated,omitempty"`
|
||||
CaseStatus string `json:"case-status,omitempty"`
|
||||
EncounterStatus string `json:"encounter-status,omitempty"`
|
||||
CaseStatus int `json:"case-status,omitempty"`
|
||||
EncounterStatus int `json:"encounter-status,omitempty"`
|
||||
PrimaryComplain string `json:"pri-complain,omitempty"`
|
||||
CurrentDiseaseHistory string `json:"cur-disea-hist,omitempty"`
|
||||
SpO2 int `json:"spo2,omitempty"`
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
func SetConfig() {
|
||||
a.ParseSingleCfg(&O)
|
||||
|
||||
if O.Host == "" || O.Prefix == "" {
|
||||
if O.TargetHost == "" || O.Prefix == "" {
|
||||
panic("config sync host and prefix empty")
|
||||
}
|
||||
lo.I.Println("sync url config loaded, status: DONE!!")
|
||||
|
||||
@@ -3,7 +3,7 @@ package synccfg
|
||||
var O SyncUrlCfg = SyncUrlCfg{}
|
||||
|
||||
type SyncUrlCfg struct {
|
||||
Prefix string `yaml:"prefix"`
|
||||
Host string `yaml:"host"`
|
||||
Enable bool `yaml:"enable"`
|
||||
Prefix string `yaml:"prefix"`
|
||||
TargetHost string `yaml:"targetHost"`
|
||||
Enable bool `yaml:"enable"`
|
||||
}
|
||||
|
||||
@@ -163,5 +163,5 @@ func Delete(input *e.DeleteDto) error {
|
||||
}
|
||||
|
||||
func getPrefixEndpoint() string {
|
||||
return fmt.Sprintf("%s%s/v1/division", sync.O.Host, sync.O.Prefix)
|
||||
return fmt.Sprintf("%s%s/v1/division", sync.O.TargetHost, sync.O.Prefix)
|
||||
}
|
||||
|
||||
@@ -68,5 +68,5 @@ func CancelSwitchUnit(input *e.ApproveCancelUnitDto) error {
|
||||
}
|
||||
|
||||
func getPrefixEndpoint() string {
|
||||
return fmt.Sprintf("%s%s/v1/encounter", sync.O.Host, sync.O.Prefix)
|
||||
return fmt.Sprintf("%s%s/v1/encounter", sync.O.TargetHost, sync.O.Prefix)
|
||||
}
|
||||
|
||||
@@ -163,5 +163,5 @@ func Delete(input *e.DeleteDto) error {
|
||||
}
|
||||
|
||||
func getPrefixEndpoint() string {
|
||||
return fmt.Sprintf("%s%s/v1/installation", sync.O.Host, sync.O.Prefix)
|
||||
return fmt.Sprintf("%s%s/v1/installation", sync.O.TargetHost, sync.O.Prefix)
|
||||
}
|
||||
|
||||
@@ -203,5 +203,5 @@ func GenerateNomrPatient() (*string, error) {
|
||||
}
|
||||
|
||||
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.TargetHost, sync.O.Prefix)
|
||||
}
|
||||
|
||||
@@ -163,5 +163,5 @@ func Delete(input *e.DeleteDto) error {
|
||||
}
|
||||
|
||||
func getPrefixEndpoint() string {
|
||||
return fmt.Sprintf("%s%s/v1/specialist", sync.O.Host, sync.O.Prefix)
|
||||
return fmt.Sprintf("%s%s/v1/specialist", sync.O.TargetHost, sync.O.Prefix)
|
||||
}
|
||||
|
||||
@@ -163,5 +163,5 @@ func Delete(input *e.DeleteDto) error {
|
||||
}
|
||||
|
||||
func getPrefixEndpoint() string {
|
||||
return fmt.Sprintf("%s%s/v1/unit", sync.O.Host, sync.O.Prefix)
|
||||
return fmt.Sprintf("%s%s/v1/unit", sync.O.TargetHost, sync.O.Prefix)
|
||||
}
|
||||
|
||||
@@ -320,11 +320,14 @@ func UpdateStatus(input e.Encounter) (*d.Data, error) {
|
||||
|
||||
tx := db.NewTx()
|
||||
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
|
||||
// Step 2: Update Simgos
|
||||
// Step 2: Update TPendaftaran
|
||||
if err = UpdateTPendaftaranData(input, simgos, "update-status", &event, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Step 3: Update TDiagnosadanterapi
|
||||
// TODO: update diagnosadanterapi
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
elog "simrs-vx/internal/domain/sync-entities/log"
|
||||
)
|
||||
|
||||
const source = "division"
|
||||
const source = "soapi"
|
||||
|
||||
func Create(input e.CreateDto) (*d.Data, error) {
|
||||
var (
|
||||
|
||||
@@ -6,21 +6,88 @@ package soapi
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
erc "simrs-vx/internal/domain/references/common"
|
||||
"fmt"
|
||||
ere "simrs-vx/internal/domain/references/encounter"
|
||||
"strconv"
|
||||
|
||||
e "simrs-vx/internal/domain/main-entities/soapi"
|
||||
soapi "simrs-vx/internal/domain/references/clinical"
|
||||
ercl "simrs-vx/internal/domain/references/clinical"
|
||||
erc "simrs-vx/internal/domain/references/common"
|
||||
|
||||
es "simrs-vx/internal/domain/main-entities/soapi"
|
||||
|
||||
esimgos "simrs-vx/internal/domain/simgos-entities/t-diagnosadanterapi"
|
||||
esyncLog "simrs-vx/internal/domain/sync-entities/log"
|
||||
esync "simrs-vx/internal/domain/sync-entities/soapi"
|
||||
)
|
||||
|
||||
func setDataEarlyMedic(input e.Soapi) (data esimgos.DiagnosaDanTerapi) {
|
||||
value := soapi.EarlyMedicValue{}
|
||||
func setDataEarlyMedic(input es.Soapi) (data esimgos.DiagnosaDanTerapi) {
|
||||
value := ercl.EarlyMedicValue{}
|
||||
_ = json.Unmarshal([]byte(*input.Value), &value)
|
||||
|
||||
data.Idxdaftar = toPtr(uint(input.Employee_Id))
|
||||
data.Idxdaftar = *input.Encounter_Id
|
||||
data.TekananDarah = fmt.Sprintf("%v/%v", value.SystolicBloodPressure, value.DiastolicBloodPressure)
|
||||
|
||||
data.GolonganDarah = value.BloodType
|
||||
if value.BloodType == "" {
|
||||
data.GolonganDarah = "X"
|
||||
}
|
||||
|
||||
data.TinggiBadan = float64(value.Height)
|
||||
data.BeratBadan = float64(value.Weight)
|
||||
data.Diagnosa = value.EarlyMedicDiagnose
|
||||
data.Terapi = value.Therapy
|
||||
data.Anamnesa = value.PrimaryComplain
|
||||
|
||||
if e := input.Encounter; e != nil {
|
||||
if p := e.Patient; p != nil {
|
||||
data.Nomr = *p.Number
|
||||
}
|
||||
|
||||
data.Tanggal = e.VisitDate
|
||||
data.Kdpoly = stringtouint(*e.Unit_Code)
|
||||
data.Kddokter = stringtouint(*e.Appointment_Doctor_Code)
|
||||
|
||||
if e.Class_Code == ere.ECAmbulatory {
|
||||
data.Rajal = 1
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if e := input.Employee; e != nil {
|
||||
if u := e.User; u != nil {
|
||||
data.Nip = u.Name
|
||||
}
|
||||
}
|
||||
|
||||
// TODO : status, tindakan_mdeis (?)
|
||||
data.KunjunganBl = uint(value.EncounterStatus)
|
||||
data.KasusBl = uint(value.CaseStatus)
|
||||
|
||||
data.PemeriksaanFisik = value.PhysicalExamination
|
||||
data.RiwayatPasien = value.CurrentDiseaseHistory
|
||||
|
||||
if value.Vaccinated {
|
||||
data.SudahVaksin = "YA"
|
||||
} else {
|
||||
data.SudahVaksin = "TIDAK"
|
||||
}
|
||||
|
||||
data.DenyutJantung = strconv.Itoa(value.Pulse)
|
||||
data.Pernapasan = strconv.Itoa(value.RespiratoryRate)
|
||||
data.Suhu = strconv.Itoa(value.Temperature)
|
||||
data.Sp02 = strconv.Itoa(value.SpO2)
|
||||
|
||||
if o := value.ExpectedOutcome; len(o) > 0 {
|
||||
expectedOutput := []string{}
|
||||
|
||||
for _, v := range o {
|
||||
expectedOutput = append(expectedOutput, v.Name)
|
||||
}
|
||||
|
||||
jsonData, _ := json.MarshalIndent(value.ExpectedOutcome, "", " ")
|
||||
data.TargetCapaian = string(jsonData)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@@ -52,11 +119,7 @@ func setDataSimxLink(simxId, simgosId uint) (data esync.SoapiLink) {
|
||||
return
|
||||
}
|
||||
|
||||
func toPtr(v uint) *uint {
|
||||
return &v
|
||||
}
|
||||
func stringtouint(v string) *uint {
|
||||
func stringtouint(v string) uint {
|
||||
u, _ := strconv.Atoi(v)
|
||||
point := uint(u)
|
||||
return &point
|
||||
return uint(u)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user