penambahan ekstrak hasil
This commit is contained in:
@@ -40,7 +40,7 @@ func SendDataLISMikro(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
//log.Println("REQUEST dari frontend:", req)
|
||||
log.Println("REQUEST dari frontend:", req)
|
||||
|
||||
dataMikro, errData := simrsDB.GetDataMikroBiologiByNoMR(req)
|
||||
if errData != nil {
|
||||
@@ -178,7 +178,7 @@ func SendDataLISMikro(c *gin.Context) {
|
||||
NamaSpesimen: value.JenisKelompok,
|
||||
Pengambilan: "",
|
||||
}
|
||||
//log.Println("Sebelum masuk LIS", dataLisMikro)
|
||||
log.Println("Sebelum masuk LIS", dataLisMikro)
|
||||
resMikro, errMikro := SendLisMikro(dataLisMikro)
|
||||
if errMikro != nil {
|
||||
log.Println(errMikro)
|
||||
@@ -188,7 +188,15 @@ func SendDataLISMikro(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
//log.Println(resMikro)
|
||||
if resMikro.Status == "203" {
|
||||
log.Println(resMikro)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": resMikro.Message,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
log.Println(resMikro)
|
||||
|
||||
reqUpdate := &mikrobiologi.ReqUpdateLisMikro{
|
||||
IdxOrderMikro: value.IdxOrderMikro,
|
||||
@@ -212,6 +220,31 @@ func SendDataLISMikro(c *gin.Context) {
|
||||
})
|
||||
}
|
||||
}
|
||||
//log.Println("RESPONSE", responseMikro)
|
||||
log.Println("RESPONSE", responseMikro)
|
||||
c.JSON(http.StatusOK, responseMikro)
|
||||
}
|
||||
|
||||
func EkstrakHasil(c *gin.Context) {
|
||||
var req mikrobiologi.RequestEkstrakhasil
|
||||
|
||||
err := c.Bind(&req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
log.Println("REQUEST dari frontend:", req)
|
||||
resEkstrakHasil, errMikro := EkstrakHasilLis(req)
|
||||
if errMikro != nil {
|
||||
log.Println("ini error:", errMikro)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": errMikro.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
log.Println(resEkstrakHasil)
|
||||
c.JSON(http.StatusOK, resEkstrakHasil)
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ func SendLisMikro(request *mikrobiologi.RequestLISMikro) (*mikrobiologi.Response
|
||||
baseUrl := os.Getenv("LIS_MIKROBIOLOGI_URL")
|
||||
endpoint := os.Getenv("LIS_REGISTERPASIEN")
|
||||
url := baseUrl + endpoint
|
||||
//log.Println("URL", url)
|
||||
log.Println("URL", url)
|
||||
|
||||
reqMarshall, err := json.Marshal(request)
|
||||
if err != nil {
|
||||
@@ -26,7 +26,7 @@ func SendLisMikro(request *mikrobiologi.RequestLISMikro) (*mikrobiologi.Response
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
//log.Println("REQUEST: ", string(reqMarshall))
|
||||
log.Println("REQUEST: ", string(reqMarshall))
|
||||
|
||||
req, err := http.NewRequest("POST", url, bytes.NewReader(reqMarshall))
|
||||
if err != nil {
|
||||
@@ -46,7 +46,82 @@ func SendLisMikro(request *mikrobiologi.RequestLISMikro) (*mikrobiologi.Response
|
||||
return nil, err
|
||||
}
|
||||
|
||||
//log.Println("dari LIS", response)
|
||||
log.Println("dari LIS", response.StatusCode)
|
||||
|
||||
res, err := io.ReadAll(response.Body)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
//log.Println("code:", response.StatusCode)
|
||||
if response.StatusCode != 201 && response.StatusCode != 504 {
|
||||
var responseError *mikrobiologi.ResponseError
|
||||
err = json.Unmarshal(res, &responseError)
|
||||
if err != nil {
|
||||
log.Printf("Error unmarshalling response: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
log.Println("MASUK SINI?")
|
||||
log.Println(responseError.Error)
|
||||
return nil, fmt.Errorf(responseError.Error)
|
||||
}
|
||||
|
||||
var responses *mikrobiologi.Response
|
||||
|
||||
log.Println("RESPONSE: ", string(res))
|
||||
|
||||
if response.StatusCode == 504 {
|
||||
responses.Status = "203"
|
||||
responses.Message = "Server LIS error"
|
||||
return responses, nil
|
||||
}
|
||||
|
||||
err = json.Unmarshal(res, &responses)
|
||||
if err != nil {
|
||||
log.Printf("Error unmarshalling response: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return responses, nil
|
||||
}
|
||||
|
||||
func EkstrakHasilLis(request mikrobiologi.RequestEkstrakhasil) ([]*mikrobiologi.RawDataEkstrakHasil, error) {
|
||||
baseUrl := os.Getenv("LIS_MIKROBIOLOGI_URL")
|
||||
endpoint := os.Getenv("LIS_EKSTRAKHASIL")
|
||||
|
||||
url := baseUrl + endpoint
|
||||
log.Println("URL", url)
|
||||
|
||||
reqMarshall, err := json.Marshal(request)
|
||||
if err != nil {
|
||||
log.Printf("Error json marshal: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
headers := map[string]string{
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
log.Println("REQUEST: ", string(reqMarshall))
|
||||
|
||||
req, err := http.NewRequest("POST", url, bytes.NewReader(reqMarshall))
|
||||
if err != nil {
|
||||
log.Printf("Error creating request: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for key, value := range headers {
|
||||
req.Header.Set(key, value)
|
||||
}
|
||||
|
||||
client := http.Client{}
|
||||
|
||||
response, err := client.Do(req)
|
||||
if err != nil {
|
||||
log.Printf("Error making external API request: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
log.Println("dari LIS", response.StatusCode)
|
||||
|
||||
res, err := io.ReadAll(response.Body)
|
||||
if err != nil {
|
||||
@@ -66,14 +141,23 @@ func SendLisMikro(request *mikrobiologi.RequestLISMikro) (*mikrobiologi.Response
|
||||
return nil, fmt.Errorf(responseError.Error)
|
||||
}
|
||||
|
||||
var responses *mikrobiologi.Response
|
||||
var responses mikrobiologi.ResponseEkstrak
|
||||
|
||||
log.Println("RESPONSE: ", string(res))
|
||||
|
||||
//log.Println("RESPONSE: ", string(res))
|
||||
err = json.Unmarshal(res, &responses)
|
||||
if err != nil {
|
||||
log.Printf("Error unmarshalling response: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
log.Println("RESPONSE: ", responses)
|
||||
var rawData []*mikrobiologi.RawDataEkstrakHasil
|
||||
err = json.Unmarshal([]byte(responses.RawData), &rawData)
|
||||
if err != nil {
|
||||
log.Printf("Error unmarshalling response rawdata: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return responses, nil
|
||||
log.Println("RESPONSE ekstrak hasil: ", rawData)
|
||||
return rawData, nil
|
||||
}
|
||||
|
||||
@@ -163,3 +163,28 @@ type RequestBatalMikro struct {
|
||||
NoLokal string `json:"no_lokal"`
|
||||
Alasan string `json:"alasan"`
|
||||
}
|
||||
|
||||
type RequestEkstrakhasil struct {
|
||||
Nolab string `json:"nolab"`
|
||||
}
|
||||
|
||||
type ResponseEkstrak struct {
|
||||
HtmlLink string `json:"htmllink"`
|
||||
Html string `json:"html"`
|
||||
RawData string `json:"rawdata"`
|
||||
}
|
||||
type RawDataEkstrakHasil struct {
|
||||
ID int `json:"id"`
|
||||
AccNumber string `json:"accnumber"`
|
||||
Template string `json:"template"`
|
||||
Komponen string `json:"komponen"`
|
||||
IsiData string `json:"isidata"`
|
||||
CreatedBy string `json:"created_by"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
UpdatedAt string `json:"updated_at"`
|
||||
}
|
||||
|
||||
type EkstrakHasil struct {
|
||||
HtmlLink string `json:"htmllink"`
|
||||
RawData []*RawDataEkstrakHasil `json:"rawdata"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user