med-exam
건강검진 및 생동성, 임상시험 피실험자에게 공개된 검사 데이터를 가공 후 시각화하고 AI들의 소견 출력
Categories:

GitHub repository
container 구성
.env
vi /opt/python/.env
PGSQL_HOST=host.docker.internal
PGSQL_PORT=5432
PGSQL_DB=dev
PGSQL_USER=dev
PGSQL_PASSWORD=y***************************************************************
PAWAN_API_KEY=p**************************************************
GROQ_API_KEY=g*******************************************************
GEMINI_API_KEY=A**************************************
DEEPL_API_KEY=9**************************************
XWDFELA2_BOT_KEY=7*********************************************
PROXY_HOST=2**.**.**.*
PROXY_PORT=6****
Dockerfile
vi /opt/python/Dockerfile
FROM python:3-slim
ENV TZ=Asia/Seoul
RUN apt-get update && \
apt-get install -y python3 && \
python -m pip install --no-cache-dir --upgrade pip \
pycryptodome \
psycopg2-binary \
requests bs4 lxml \
selenium \
deep-translator deepl \
python-telegram-bot \
g4f[all] openai groq google-generativeai && \
apt-get autoremove -y && \
apt-get clean autoclean && \
rm -rf /var/lib/apt/lists/*
docker build -t e7hnr8ov/python:3-slim /opt/python
med_exam.sh 1
vi ~/.local/bin/med_exam.sh
#!/bin/bash
# med_exam
source /home/dev/.bashrc
source /home/dev/.local/bin/utils.sh
container="py-med-exam"
docker ps -q --filter "name=$container" | xargs -r docker stop
sleep 1
docker run \
-i --rm --name="$container" --network=dev --user=0:0 \
--add-host=host.docker.internal:host-gateway \
--env-file=/opt/python/.env \
-v /home/dev/workspace/med_exam:/opt/python:rw \
e7hnr8ov/python:3-slim \
python /opt/python/med_exam.py "$@"
Jobs
| Command | Remarks |
|---|---|
| py_med_exam.sh -i RT51KR-PK01 | 기초 데이터 생성 |
| py_med_exam.sh -d 8************ | 기초 데이터 삭제 |
| py_med_exam.sh -a 8************ | 기초 데이터 생성 |
| py_med_exam.sh -u 8************ | 주민등록번호 암호화 |
| py_med_exam.sh -j 9********************== | 주민등록번호 복호화 |
| py_med_exam.sh -k 9********************== | 암호화 키 갱신 |
데모 페이지 2

Troubleshooting
python 패키지 g4f 프롬프트 1000자 제한 3
if(re.compile(r"^$|.*{\"code\":[0-9]{3}.*|.*message exceeds.*").match(res)): #빈값, raw값, 메시지 1000자 초과 재시도
python 패키지 google-trans-new 번역 불가
패키지 삭제
googletrans==4.0.0-rc1
10.38 The conflict is caused by:
10.38 googletrans 4.0.0rc1 depends on httpx==0.13.3
10.38 groq 0.11.0 depends on httpx<1 and >=0.23.0
python 패키지 googletrans, groq 의존성 충돌
TypeError: not all arguments converted during string formatting
python 패키지 psycopg2 execute 파라미터 마지막 “,” 추가
cur.execute("DELETE FROM dev.medi_exam WHERE user_id = %s", (row[j],))
SQL Error [0A000]: ERROR: cannot use column reference in DEFAULT expression
ERROR: cannot use column reference in DEFAULT expression
ERROR: cannot use column reference in DEFAULT expression
python 패키지 psycopg2 오류. db 컬럼 default값 ‘‘로 변경
grafana 절사 오류 (소수점 정밀도 3)
regexp_replace(trunc(extract(epoch FROM T1.exam_tm - drg_adm_tm) / (60 * 60), 1)::TEXT, '(^[0-9]+)(.0)', '\\1')
grafana table에서 다른 컬럼값 사용
${__data.fields["prod_link"]}
${__value.raw}