add helper for t_diagnosadanterapi
This commit is contained in:
No files matched your search
@@ -325,8 +325,8 @@ type SoapiSrc struct {
|
|||||||
|
|
||||||
type EarlyMedicValue struct {
|
type EarlyMedicValue struct {
|
||||||
Vaccinated bool `json:"vaccinated,omitempty"`
|
Vaccinated bool `json:"vaccinated,omitempty"`
|
||||||
CaseStatus string `json:"case-status,omitempty"`
|
CaseStatus int `json:"case-status,omitempty"`
|
||||||
EncounterStatus string `json:"encounter-status,omitempty"`
|
EncounterStatus int `json:"encounter-status,omitempty"`
|
||||||
PrimaryComplain string `json:"pri-complain,omitempty"`
|
PrimaryComplain string `json:"pri-complain,omitempty"`
|
||||||
CurrentDiseaseHistory string `json:"cur-disea-hist,omitempty"`
|
CurrentDiseaseHistory string `json:"cur-disea-hist,omitempty"`
|
||||||
SpO2 int `json:"spo2,omitempty"`
|
SpO2 int `json:"spo2,omitempty"`
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
func SetConfig() {
|
func SetConfig() {
|
||||||
a.ParseSingleCfg(&O)
|
a.ParseSingleCfg(&O)
|
||||||
|
|
||||||
if O.Host == "" || O.Prefix == "" {
|
if O.TargetHost == "" || O.Prefix == "" {
|
||||||
panic("config sync host and prefix empty")
|
panic("config sync host and prefix empty")
|
||||||
}
|
}
|
||||||
lo.I.Println("sync url config loaded, status: DONE!!")
|
lo.I.Println("sync url config loaded, status: DONE!!")
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package synccfg
|
|||||||
var O SyncUrlCfg = SyncUrlCfg{}
|
var O SyncUrlCfg = SyncUrlCfg{}
|
||||||
|
|
||||||
type SyncUrlCfg struct {
|
type SyncUrlCfg struct {
|
||||||
Prefix string `yaml:"prefix"`
|
Prefix string `yaml:"prefix"`
|
||||||
Host string `yaml:"host"`
|
TargetHost string `yaml:"targetHost"`
|
||||||
Enable bool `yaml:"enable"`
|
Enable bool `yaml:"enable"`
|
||||||
}
|
}
|
||||||
@@ -163,5 +163,5 @@ func Delete(input *e.DeleteDto) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getPrefixEndpoint() string {
|
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 {
|
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 {
|
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 {
|
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 {
|
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 {
|
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()
|
tx := db.NewTx()
|
||||||
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
|
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 {
|
if err = UpdateTPendaftaranData(input, simgos, "update-status", &event, tx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Step 3: Update TDiagnosadanterapi
|
||||||
|
// TODO: update diagnosadanterapi
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
elog "simrs-vx/internal/domain/sync-entities/log"
|
elog "simrs-vx/internal/domain/sync-entities/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
const source = "division"
|
const source = "soapi"
|
||||||
|
|
||||||
func Create(input e.CreateDto) (*d.Data, error) {
|
func Create(input e.CreateDto) (*d.Data, error) {
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -6,21 +6,88 @@ package soapi
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
erc "simrs-vx/internal/domain/references/common"
|
"fmt"
|
||||||
|
ere "simrs-vx/internal/domain/references/encounter"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
e "simrs-vx/internal/domain/main-entities/soapi"
|
ercl "simrs-vx/internal/domain/references/clinical"
|
||||||
soapi "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"
|
esimgos "simrs-vx/internal/domain/simgos-entities/t-diagnosadanterapi"
|
||||||
esyncLog "simrs-vx/internal/domain/sync-entities/log"
|
esyncLog "simrs-vx/internal/domain/sync-entities/log"
|
||||||
esync "simrs-vx/internal/domain/sync-entities/soapi"
|
esync "simrs-vx/internal/domain/sync-entities/soapi"
|
||||||
)
|
)
|
||||||
|
|
||||||
func setDataEarlyMedic(input e.Soapi) (data esimgos.DiagnosaDanTerapi) {
|
func setDataEarlyMedic(input es.Soapi) (data esimgos.DiagnosaDanTerapi) {
|
||||||
value := soapi.EarlyMedicValue{}
|
value := ercl.EarlyMedicValue{}
|
||||||
_ = json.Unmarshal([]byte(*input.Value), &value)
|
_ = 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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,11 +119,7 @@ func setDataSimxLink(simxId, simgosId uint) (data esync.SoapiLink) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func toPtr(v uint) *uint {
|
func stringtouint(v string) uint {
|
||||||
return &v
|
|
||||||
}
|
|
||||||
func stringtouint(v string) *uint {
|
|
||||||
u, _ := strconv.Atoi(v)
|
u, _ := strconv.Atoi(v)
|
||||||
point := uint(u)
|
return uint(u)
|
||||||
return &point
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user