adj checkout

This commit is contained in:
vanilia
2025-11-26 13:28:20 +07:00
13 changed files with 142 additions and 152 deletions

No files matched your search

@@ -292,7 +292,7 @@ func CheckOut(input e.Encounter) (*d.Data, error) {
}, nil
}
func Cancel(input e.Encounter) (*d.Data, error) {
func UpdateStatus(input e.Encounter) (*d.Data, error) {
event := pl.Event{
Feature: "Cancel",
Source: source,
@@ -114,16 +114,30 @@ func setDataTPendaftaran(input *e.Encounter, data *etp.TPendaftaran) {
return
}
func setDataUpdateStatus(input e.Encounter, data *etp.TPendaftaran) {
switch input.Status_Code {
case erc.DSCProcess:
data.Masukpoly = &now
}
if input.Status_Code == erc.DSCCancel {
data.Status = 11
}
}
func setDataCheckIn(input e.Encounter, data *etp.TPendaftaran) {
// set kddokter
kddokter, _ := strconv.Atoi(*input.Responsible_Doctor_Code)
data.Kddokter = uint(kddokter)
// set petugas_klinik
if data.PetugasKlinik != "" {
if a := input.Adm_Employee; a != nil {
if u := a.User; u != nil {
data.PetugasKlinik = u.Name
// only update once
if data.PetugasKlinik == "" {
if n := input.Responsible_Nurse; n != nil {
if emp := n.Employee; emp != nil {
if u := emp.User; u != nil {
data.PetugasKlinik = u.Name
}
}
}
}
@@ -132,6 +146,44 @@ func setDataCheckIn(input e.Encounter, data *etp.TPendaftaran) {
return
}
func setDataCheckOut(input e.Encounter, data *etp.TPendaftaran) {
data.Keluarpoly = input.FinishedAt
// set status
setStatus(input.Discharge_Method_Code, data)
if data.Status == 8 || data.Status == 3 {
if dc := input.DeathCause; dc != nil {
var dcSrc []DeathCauseSrc
_ = json.Unmarshal([]byte(*dc.Value), &dcSrc)
for i, v := range dcSrc {
switch i {
case 0:
data.SebabMati1 = &v.Name
data.IcdMati1 = &v.Code
case 1:
data.SebabMati2 = &v.Name
data.IcdMati2 = &v.Code
case 2:
data.SebabMati3 = &v.Name
data.IcdMati3 = &v.Code
default:
break
}
}
}
death := uint(1)
data.StMeninggal = &death
data.DtMeninggal = data.Keluarpoly
}
setPelayanan := uint(1)
data.StPelayanan = &setPelayanan
return
}
func setDataRequestSwitchUnit(input e.Encounter, data *etp.TPendaftaran) (hist []etph.TPemeriksaanHist) {
if enc := input.InternalReferences; enc != nil {
for i, ref := range *enc {
@@ -158,30 +210,6 @@ func setDataRequestSwitchUnit(input e.Encounter, data *etp.TPendaftaran) (hist [
return
}
func setDataCheckOut(input e.Encounter, data *etp.TPendaftaran) {
data.Keluarpoly = input.Discharge_Date
// set status
setStatus(input.Discharge_Method_Code, data)
if data.Status == 8 || data.Status == 3 {
if dc := input.DeathCause; dc != nil {
data.SebabMati1 = dc.Value
}
}
setPelayanan := uint(1)
data.StPelayanan = &setPelayanan
return
}
func setDataUpdateStatus(input e.Encounter, data *etp.TPendaftaran) {
if input.Status_Code == erc.DSCCancel {
data.Status = 11
}
}
func setKdrujuk(input *ere.RefTypeCode, data *etp.TPendaftaran) {
switch *input {
case ere.RTCGov:
@@ -42,3 +42,10 @@ var updatePreMw []readDetailMw
var updatePostMw []readDetailMw
var deletePreMw []readDetailMw
var deletePostMw []readDetailMw
type DeathCauseSrc struct {
Id uint `json:"id"`
Code string `json:"code"`
Name string `json:"name"`
IndName string `json:"indName"`
}