#!/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 <