Fix MCU dummy generation and participant dedup
This commit is contained in:
162
scripts/run_generate_kelainan_and_sync.sh
Executable file
162
scripts/run_generate_kelainan_and_sync.sh
Executable file
@@ -0,0 +1,162 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Usage examples:
|
||||
# 1) Single preregister:
|
||||
# ./scripts/run_generate_kelainan_and_sync.sh \
|
||||
# --preregister-id 77502 \
|
||||
# --token 'JWT_TOKEN' \
|
||||
# --cookie 'cpone_session=...; token=...'
|
||||
#
|
||||
# 2) Multi by MCU + date:
|
||||
# ./scripts/run_generate_kelainan_and_sync.sh \
|
||||
# --mcu-id 1583 --date 2026-05-05 \
|
||||
# --token 'JWT_TOKEN' \
|
||||
# --cookie 'cpone_session=...; token=...'
|
||||
#
|
||||
# Optional:
|
||||
# --base-url https://devcpone.aplikasi.web.id
|
||||
# --ssh-host one@devcpone.aplikasi.web.id
|
||||
|
||||
BASE_URL="https://devcpone.aplikasi.web.id"
|
||||
SSH_HOST="one@devcpone.aplikasi.web.id"
|
||||
PREREGISTER_ID=""
|
||||
MCU_ID=""
|
||||
SCHEDULE_DATE=""
|
||||
TOKEN=""
|
||||
COOKIE=""
|
||||
|
||||
KESIMPULAN=$'- Anemia\n- Peningkatan LED\n- Penurunan HDL Kolesterol\n- Presbiopia ODS\n'
|
||||
REKOMENDASI="Sedang"
|
||||
SARAN=$'1. Konsul ke dokter gigi untuk membersihkan karang gigi dan kemungkinan\n membuat gigi palsu\n2. Intake vitamin yang mengandung zat besi untuk memperbaiki kadar\n Hemoglobin dalam darah\n3. Ulang pemeriksaan LED, bila tidak ada perbaikan konsul ke dokter untuk\n mencari kemungkinan adanya fokus infeksi\n4. Lakukan olah raga secara teratur\n5. Sebaiknya hentikan kebiasaan merokok'
|
||||
CONCLUSION=$'- Anemia\n- Elevated of ESR\n- Decreased HDL Cholesterol level\n- Presbiopia ODS\n'
|
||||
RECOMENDATION="Fit with note"
|
||||
ADVICE=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--preregister-id) PREREGISTER_ID="${2:-}"; shift 2 ;;
|
||||
--mcu-id) MCU_ID="${2:-}"; shift 2 ;;
|
||||
--date) SCHEDULE_DATE="${2:-}"; shift 2 ;;
|
||||
--token) TOKEN="${2:-}"; shift 2 ;;
|
||||
--cookie) COOKIE="${2:-}"; shift 2 ;;
|
||||
--base-url) BASE_URL="${2:-}"; shift 2 ;;
|
||||
--ssh-host) SSH_HOST="${2:-}"; shift 2 ;;
|
||||
--kesimpulan) KESIMPULAN="${2:-}"; shift 2 ;;
|
||||
--rekomendasi) REKOMENDASI="${2:-}"; shift 2 ;;
|
||||
--saran) SARAN="${2:-}"; shift 2 ;;
|
||||
--conclusion) CONCLUSION="${2:-}"; shift 2 ;;
|
||||
--recomendation) RECOMENDATION="${2:-}"; shift 2 ;;
|
||||
--advice) ADVICE="${2:-}"; shift 2 ;;
|
||||
*) echo "Unknown arg: $1" >&2; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$TOKEN" || -z "$COOKIE" ]]; then
|
||||
echo "token dan cookie wajib diisi" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n "$PREREGISTER_ID" ]]; then
|
||||
MODE="single"
|
||||
elif [[ -n "$MCU_ID" && -n "$SCHEDULE_DATE" ]]; then
|
||||
MODE="multi"
|
||||
else
|
||||
echo "Gunakan --preregister-id ATAU --mcu-id + --date" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
get_order_ids_sql_single="
|
||||
SELECT DISTINCT pp.Mcu_PreregisterPatientsT_OrderHeaderID
|
||||
FROM cpone.mcu_preregister_patients pp
|
||||
WHERE pp.Mcu_PreregisterPatientsID = ${PREREGISTER_ID}
|
||||
AND pp.Mcu_PreregisterPatientsIsActive = 'Y'
|
||||
AND IFNULL(pp.Mcu_PreregisterPatientsT_OrderHeaderID,0) > 0;
|
||||
"
|
||||
|
||||
get_order_ids_sql_multi="
|
||||
SELECT DISTINCT pp.Mcu_PreregisterPatientsT_OrderHeaderID
|
||||
FROM cpone.mcu_preregister_patients pp
|
||||
JOIN cpone.mcu_preregister_date pd
|
||||
ON pd.Mcu_PreregisterDateMcu_PreregisterPatientsID = pp.Mcu_PreregisterPatientsID
|
||||
AND pd.Mcu_PreregisterDateIsActive = 'Y'
|
||||
JOIN cpone.t_orderheader oh
|
||||
ON oh.T_OrderHeaderID = pp.Mcu_PreregisterPatientsT_OrderHeaderID
|
||||
AND oh.T_OrderHeaderIsActive = 'Y'
|
||||
WHERE pp.Mcu_PreregisterPatientsMgm_McuID = ${MCU_ID}
|
||||
AND pd.Mcu_PreregisterDateCheckinSchedule = '${SCHEDULE_DATE}'
|
||||
AND pp.Mcu_PreregisterPatientsIsActive = 'Y'
|
||||
AND IFNULL(pp.Mcu_PreregisterPatientsT_OrderHeaderID,0) > 0;
|
||||
"
|
||||
|
||||
if [[ "$MODE" == "single" ]]; then
|
||||
SQL="$get_order_ids_sql_single"
|
||||
else
|
||||
SQL="$get_order_ids_sql_multi"
|
||||
fi
|
||||
|
||||
echo "Ambil orderid target..."
|
||||
ORDER_IDS="$(ssh -o BatchMode=yes "$SSH_HOST" "mysql -N -e \"$SQL\"")"
|
||||
|
||||
if [[ -z "$ORDER_IDS" ]]; then
|
||||
echo "Tidak ada orderid target yang ditemukan." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Order target:"
|
||||
echo "$ORDER_IDS" | sed 's/^/- /'
|
||||
|
||||
API_URL="${BASE_URL}/one-api/mockup/mcuoffline/Resumeindividucponev7/generateFitnessCategory"
|
||||
|
||||
SUCCESS=0
|
||||
FAILED=0
|
||||
|
||||
while IFS= read -r ORDER_ID; do
|
||||
[[ -z "$ORDER_ID" ]] && continue
|
||||
echo ""
|
||||
echo "Processing orderid=${ORDER_ID} ..."
|
||||
|
||||
PAYLOAD="$(cat <<JSON
|
||||
{"token":"${TOKEN}","orderid":"${ORDER_ID}","kesimpulan":"${KESIMPULAN}","rekomendasi":"${REKOMENDASI}","saran":"${SARAN}","conclusion":"${CONCLUSION}","recomendation":"${RECOMENDATION}","advice":"${ADVICE}"}
|
||||
JSON
|
||||
)"
|
||||
|
||||
RESP_FILE="$(mktemp)"
|
||||
HTTP_CODE="$(curl -sS -o "$RESP_FILE" -w "%{http_code}" "$API_URL" \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Content-Type: application/json;charset=UTF-8' \
|
||||
-H "Cookie: ${COOKIE}" \
|
||||
--data-raw "$PAYLOAD" || true)"
|
||||
|
||||
if [[ "$HTTP_CODE" != "200" ]]; then
|
||||
echo "ERR generateFitnessCategory orderid=${ORDER_ID}, http=${HTTP_CODE}"
|
||||
cat "$RESP_FILE"
|
||||
rm -f "$RESP_FILE"
|
||||
FAILED=$((FAILED + 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
if grep -qiE '"status"\s*:\s*"err"|invalid token|error' "$RESP_FILE"; then
|
||||
echo "ERR generateFitnessCategory orderid=${ORDER_ID}, response error:"
|
||||
cat "$RESP_FILE"
|
||||
rm -f "$RESP_FILE"
|
||||
FAILED=$((FAILED + 1))
|
||||
continue
|
||||
fi
|
||||
rm -f "$RESP_FILE"
|
||||
|
||||
echo "OK generateFitnessCategory orderid=${ORDER_ID}, lanjut sync kelainan dashboard..."
|
||||
if ssh -o BatchMode=yes "$SSH_HOST" "mysql -N -e \"CALL cpone.sp_sync_kelainan_details_by_orderheader(${ORDER_ID});\""; then
|
||||
echo "OK sync kelainan orderid=${ORDER_ID}"
|
||||
SUCCESS=$((SUCCESS + 1))
|
||||
else
|
||||
echo "ERR sync kelainan orderid=${ORDER_ID}"
|
||||
FAILED=$((FAILED + 1))
|
||||
fi
|
||||
done <<< "$ORDER_IDS"
|
||||
|
||||
echo ""
|
||||
echo "Selesai. success=${SUCCESS}, failed=${FAILED}"
|
||||
if [[ "$FAILED" -gt 0 ]]; then
|
||||
exit 2
|
||||
fi
|
||||
@@ -75,7 +75,7 @@ BEGIN
|
||||
Mcu_ParticipantDailyDetailsMcu_PatientID,
|
||||
Mcu_ParticipantDailyDetailsIsActive
|
||||
)
|
||||
SELECT
|
||||
SELECT DISTINCT
|
||||
v_participant_daily_id,
|
||||
mp.Mcu_PatientID,
|
||||
'Y'
|
||||
|
||||
1037
scripts/sql/2026-05-06_create_sp_dummy_mcu_transaction_generator.sql
Normal file
1037
scripts/sql/2026-05-06_create_sp_dummy_mcu_transaction_generator.sql
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user