b127cafb01
Two minimal additions for the upcoming v0.1.11 client work:
- /kb/search hits now include chunk_index, so the client can call
/source/{id}/chunks?around=N&ctx=K to fetch the matched chunk plus K
chunks before/after as context. Required by the new search-preview
layout for text sources, which until now duplicated the matched chunk
in both panes.
- /source/{id}/chunks accepts around (chunk_index) + ctx (window radius
clamped to 0..10). When around is given, returns only the windowed
range; otherwise unchanged (returns all chunks of the source).
Refs Task Master #1
119 lines
7.2 KiB
Markdown
119 lines
7.2 KiB
Markdown
---
|
|
name: medical-case-analysis
|
|
description: ניתוח מסמכים רפואיים בתיק וגיבוש סיפור מקרה מובנה שניתן להעביר ל-law-mate להכנת כתב תביעה או ערעור
|
|
version: 1.0.0
|
|
---
|
|
|
|
# ניתוח רפואי של תיק → סיפור מקרה ל-law-mate
|
|
|
|
## מתי להשתמש
|
|
|
|
- המשתמש מבקש לעבור על המסמכים הרפואיים בתיק.
|
|
- המשתמש אומר "תנתחי את התיק הרפואי", "תכיני לי סיפור מקרה", "תעבירי ל-law-mate", "תבדקי את הוועדות הרפואיות".
|
|
- מדובר בתיקי נכות, תאונות, ביטוח לאומי, ביטוח פרטי, רשלנות רפואית, או כל תיק שבו יש חוות דעת / ועדות / תיק רפואי.
|
|
|
|
**אין להפעיל את ה-skill הזה אוטומטית בכל שיחה על תיק** — רק כשהמשתמש מבקש במפורש.
|
|
|
|
## שלב 1 — גילוי המסמכים
|
|
|
|
הרץ `list_documents`.
|
|
|
|
- **אם יש מסמכים:** המשך לשלב 2.
|
|
- **אם אין מסמכים (totalFiles=0):** קרא את ה-`Diagnostic` בהודעה. אל תגיד למשתמש "אין מסמכים" מבלי לנסות לחפש.
|
|
1. הרץ `find_case_folder` עם שם איש הקשר הראשי (מה-context `contacts[0].name`) או עם מספר התיק.
|
|
2. אם יש התאמה אחת ברורה (score ≥ 80) — הצג אותה למשתמש ושאל "האם זו התיקייה של התיק?".
|
|
3. אם יש כמה התאמות — הצג טבלה קצרה ובקש לבחור.
|
|
4. אחרי אישור: `set_case_folder_path(path=...)` ואז `list_documents(refresh=true)`.
|
|
|
|
## שלב 2 — סינון המסמכים הרפואיים
|
|
|
|
עבור על רשימת המסמכים. סווג כ"רפואי" כל קובץ ששמו כולל אחד מהבאים (לא רגיש לאותיות, עברית/אנגלית):
|
|
|
|
| קטגוריה | מילות מפתח |
|
|
|---|---|
|
|
| ועדות רפואיות | ועדה, ועדת ערר, פרוטוקול ועדה, committee |
|
|
| חוות דעת רפואיות | חוות דעת, חו"ד, חו״ד, opinion |
|
|
| תיק קופ"ח / בי"ח | סיכום אשפוז, discharge, שחרור, תיק רפואי, קופ"ח, מאוחדת, כללית, מכבי, לאומית |
|
|
| בדיקות | בדיקה, MRI, CT, רנטגן, אולטרסאונד, ultrasound, EMG |
|
|
| ביטוח לאומי | ביטוח לאומי, בל"ל, החלטה, ועדה רפואית מל"ל |
|
|
| אחר רפואי | רופא, תעודה רפואית, דו"ח, אישור מחלה |
|
|
|
|
הצג למשתמש את הרשימה המסוננת וכמה מסמכים שאין בה, ובקש אישור לפני קריאה (כדי לא לחרוג ב-tokens).
|
|
|
|
## שלב 3 — קריאה וחילוץ
|
|
|
|
`read_multiple_documents(filePaths=[...])` על כל המסמכים הרפואיים שסווגו. אם הרשימה ארוכה מ-10 קבצים — חלק לבאטצ'ים של 5-7 ושמור סיכומי ביניים ב-`save_case_memory` עם `category="documents_notes"`.
|
|
|
|
לכל מסמך, חלץ ל-working notes:
|
|
|
|
- **תאריך המסמך** (מהמסמך עצמו; אם חסר — ציין "לא מצוין").
|
|
- **מקור** (שם בית חולים / קופ"ח / רופא / ועדה).
|
|
- **אבחנה/ממצא עיקרי** (במילים של המסמך, לא פרשנות שלך).
|
|
- **אחוזי נכות / אובדן כושר** אם מופיעים (כולל צירוף אחוזים, זמני/קבוע).
|
|
- **המלצות טיפוליות / פעולות שדורשות המשך** אם מופיעות.
|
|
- **ציטוט מפתח** אחד קצר (כדי שיהיה מה להצמיד לכתב התביעה).
|
|
|
|
## שלב 4 — שאלות מובנות למשתמש
|
|
|
|
לפני שכותבים סיפור מקרה, צריך מידע שלא נמצא במסמכים הרפואיים. שאל את המשתמש בסדר הזה, **שאלה אחת בכל פעם** (אל תציף):
|
|
|
|
1. **נסיבות:** "מה הנסיבות המדויקות של האירוע / התאונה / תחילת המצב הרפואי? תאריך, מקום, מי היה מעורב."
|
|
2. **תלונות סובייקטיביות:** "אילו כאבים / מגבלות / סימפטומים הלקוח מדווח עליהם היום?"
|
|
3. **השפעה תפקודית:** "איך זה משפיע על חיי היומיום? עבודה, שינה, טיפול עצמי, חיי משפחה."
|
|
4. **טיפול נוכחי:** "איזה טיפול רפואי הוא מקבל כרגע? תרופות, פיזיותרפיה, מעקב?"
|
|
5. **מצב קודם:** "האם היו מחלות / פציעות קודמות רלוונטיות לאותו אזור?"
|
|
6. **מסמכים חסרים:** הצג רשימת מסמכים שחסרים לפי מה שהיית מצפה לראות (לדוגמה: "לא מצאתי חוות דעת עדכנית מרופא אורתופד — יש כזו?").
|
|
|
|
אחרי כל תשובה — שמור דרך `save_case_memory(category="key_facts", ...)`.
|
|
|
|
## שלב 5 — סיפור מקרה (הפלט ל-law-mate)
|
|
|
|
אחרי השאלות, הצג למשתמש סיכום בפורמט הזה (markdown, בעברית, ישיר — זה הטקסט שיועתק ל-law-mate):
|
|
|
|
```markdown
|
|
# סיפור מקרה — [שם הלקוח] (תיק #[מספר])
|
|
|
|
## 1. נסיבות האירוע
|
|
[פסקה של 3-5 משפטים בהתבסס על תשובת המשתמש לשאלה 1]
|
|
|
|
## 2. ציר זמן רפואי
|
|
| תאריך | גורם | ממצא/אבחנה |
|
|
|---|---|---|
|
|
| ... | ... | ... |
|
|
|
|
## 3. ממצאים רפואיים מרכזיים
|
|
- [ממצא 1] — [מקור, ציטוט קצר]
|
|
- [ממצא 2] — ...
|
|
- [אחוזי נכות שנקבעו, אם יש]
|
|
|
|
## 4. תלונות סובייקטיביות והשפעה תפקודית
|
|
[3-4 שורות מתשובות המשתמש לשאלות 2-3]
|
|
|
|
## 5. טיפול נוכחי
|
|
[תשובת המשתמש לשאלה 4]
|
|
|
|
## 6. טענות משפטיות אפשריות (לבדיקה ב-law-mate)
|
|
- [שאלה משפטית 1 — לדוגמה: "האם מוצדק ערעור על 20% נכות?"]
|
|
- [שאלה משפטית 2]
|
|
|
|
## 7. מסמכים שעדיין חסרים
|
|
- [רשימה]
|
|
|
|
## 8. ציטוטים מרכזיים מהמסמכים הרפואיים
|
|
> "..."
|
|
> — [שם המסמך, תאריך]
|
|
```
|
|
|
|
אחרי הצגת הסיכום, שאל את המשתמש: "להעתיק ל-law-mate? או שיש משהו להוסיף/לתקן?"
|
|
|
|
## שלב 6 — שמירה לזיכרון התיק
|
|
|
|
בסוף, שמור את הסיפור כ-`save_case_memory(category="strategy", name="סיפור מקרה לניתוח ב-law-mate", content=<הסיפור המלא>, importance="high")` כדי שהשיחה הבאה תוכל להמשיך מאותה נקודה.
|
|
|
|
## כללים ואזהרות
|
|
|
|
- **אל תמציא ממצאים רפואיים**. אם משהו לא כתוב במסמכים — ציין "לא מצוין במסמכים" במקום לנחש.
|
|
- **אל תחרוג לפרשנות משפטית עצמאית** — מטרת ה-skill היא להכין את החומר ל-law-mate שיעשה את הניתוח.
|
|
- **אחוזי נכות** — הצג תמיד כפי שהם כתובים במסמך (למשל "20% נכות כללית זמנית עד 31/12/2026"), לא כמספר בודד.
|
|
- **שפה** — עברית בלבד בפלט ובשיחה עם המשתמש.
|