Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ข้อ 8 การเตือน cluster โรคในคน (ฝั่ง server side) #33

Open
pphetra opened this issue Dec 25, 2023 · 10 comments
Assignees
Labels

Comments

@pphetra
Copy link
Contributor

pphetra commented Dec 25, 2023

เป็นการเขียนเงื่อนไขโปรแกรม เพื่อแจ้งเป็นรายงาน Cluster โรคในคน

Image

แนวทาง

  • ต้องมีการสร้างประเภทรายงานแจ้งเตือน
  • ต้อง research ใช้ CEP ได้หรือไม่ (ขึ้นกับนิยามพื้นที่เดียวกันด้วย)

คำถาม

  • นิยามคำว่า "ในสถานที่เดียวกัน" คืออะไร เช่น อปท.เดียวกัน หรือ พิกัดที่ share location ถ้าพิกัดที่ share location รัศมีกี่กิโล จึงจะนับเป็นสถานที่เดียวกัน
@pphetra pphetra self-assigned this Dec 25, 2023
@pphetra
Copy link
Contributor Author

pphetra commented Jan 4, 2024

create report type

name: แจ้งเตือน cluster โรคในคน
code: human_disease_cluster_warning
category: คน
authority: สาธารณสุข
form definition:

  • symptomGroup (กลุ่มอาการ)
    Django template:
  • พบผู้ป่วย 2 รายขึ้นไปใน 1 สัปดาห์ในสถานที่เดียวกัน มีอาการตามกลุ่มอาการ {{ symptom_group }}
    summary template:
{
    "id": { "field": "pk", "weight": 100}, 
    "สถานะ": { "field": "stateName", "weight": 60}, 
    "วันที่": { "field": "date", "weight": 40}, 
    "พื้นที่": { "field": "area", "weight": 30},  
    "ประเภทรายงาน": { "field": "typeName", "weight": 29}, 
    "กลุ่มอาการ": {"field": "formData.symptomGroup", "weight": 10}
}   

is_system: true
followable: no
notification_type "based on admin_area"

Image

@pphetra
Copy link
Contributor Author

pphetra commented Jan 4, 2024

deleted

@pphetra
Copy link
Contributor Author

pphetra commented Jan 4, 2024

เนื่องจากการ clustering จะต้องใช้ package sklearn ซึ่งมีเฉพาะ python3 ดังนั้น ตัว app จะทำเป็น standalone app ที่คอย periodic scan reports เมื่อพบว่ามี cluster ก็จะทำการยิง api เข้ามาที่ podd-api

app ใหม่ -> https://github.com/openpodd/pond-human-cluster

ทางเข้าที่มีอยู่แล้ว

note: ทางเข้านี้มีปัญหาที่ จะสร้างได้เฉพาะ report type ชนิดเดียวกันกับที่ related เท่านั้น
endpoint

report/protect-create-with-state/(?P<key>[.\w-]+)/(?P<state>[\w-]+)/(?P<case>[\w-]+)/

parameter ที่สำคัญคือ

  • related_ids เป็น array ของ report ที่อยู่ใน cluster

solution

ให้ทำทางเข้าใหม่ ที่เลียนแบบทางเข้าเดิม แต่เพิ่มให้สร้างระบุ report_type เข้ามาด้วย

@rachumala
Copy link

@pphetra [รับจากคุณน้อย 5 มค 67] คุณน้อยสอบถามหมอบิวมาให้เพิ่มเติม ดังนี้

Image

@pphetra
Copy link
Contributor Author

pphetra commented Jan 18, 2024

e1a2e5102ef5545c3b81c85303045f5302eeb1d5

ปัญหาที่เจอคือไม่สามารถ related report ได้ เพราะโครงสร้างการ link report ของเก่ามันเป็นทิศทางเดียว กรณีนี้เป็นการ link กลับด้านกัน

@rachumala
Copy link

rachumala commented Jan 19, 2024

19 มค 67

  1. เพิ่ม report type ที่ api ของ admin-demo [note : ถ้าไม่มีอะไรแก้ จึงจะ config report type ที่ api ของ admin-template]

Image

  1. ใช้ podd line report รายงาน โรคในคน @pphetra

Image

Image

Image

note : เมื่อมีการรายงานโรคในคนที่เข้าข่าย cluster แล้ว นับถัดไปอีก 2 วัน ระบบจะทำรายงานการแจ้งเตือนขึ้นที่ dashboard เช่น
มีการรายงานวันที่ 2 กพ 67 หลังจากนั้นวันที่ 4 กพ 67 จะมีรายงานแจ้งเตือน ตย.ดังรูป

Image

@pphetra
Copy link
Contributor Author

pphetra commented Jan 25, 2024

image อยู่ที่ https://hub.docker.com/repository/docker/pphetra/podd-human-cluster/general

docker build --platform linux/amd64  -t 'pphetra/podd-human-cluster:1.0' .
docker push pphetra/podd-human-cluster:1.0

@pphetra
Copy link
Contributor Author

pphetra commented Feb 1, 2024

docker image จะถูก build โดย GitHub action และ push เข้า docker hub
ตัว docker container run อยู่ที่เครื่อง analytic ใหม่

CONTAINER ID   IMAGE                            COMMAND                  CREATED        STATUS                    PORTS                    NAMES
27cee336816d   pphetra/podd-human-cluster:1.0   "sh /app/entrypoint.…"   6 days ago     Up 6 days                 80/tcp                   dreamy_chandrasekhar
e0dccb189a68   apache/superset:2.1.0            "/app/docker/docker-…"   4 months ago   Up 4 months               8088/tcp                 superset_worker_beat
ceee5497eb38   apache/superset:2.1.0            "/app/docker/docker-…"   4 months ago   Up 4 months (healthy)     0.0.0.0:8088->8088/tcp   superset_app
4d0f6765b127   apache/superset:2.1.0            "/app/docker/docker-…"   4 months ago   Up 4 months (unhealthy)   8088/tcp                 superset_worker
d533ecf6029e   redis:7                          "docker-entrypoint.s…"   4 months ago   Up 4 months               6379/tcp                 superset_cache

@rachumala
Copy link

1 กพ 67 >> ที่ admin-demo มีการเปลี่ยน config. ที่ Django template

Image

ปรับแก้ config. Django template ที่ api ของ admin-template ตาม admin-demo

@rachumala
Copy link

rachumala commented Mar 1, 2024

1 มีค 67 @pphetra คุณน้อยสอบถามเพิ่มเติม พิกัด ในตัวรายงาน cluster อันนี้อ้างอิง พิกัด อย่างไรครับ ตาม อปท. หรือ พิกัดของรายงานครับ

Image

พี่ป๊อกแจ้ง ตัว cluster เราไม่ได้ส่งพิกัดเข้าไป พิกัดที่เห็นน่าจะเป็น default ที่แสดงขึ้นมาโดย คิดว่ามาจาก administrationarea_id

จิ๋ว แจ้ง คุณน้อย ตามที่พี่ป๊อกแจ้ง

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants