פיתוח מערכת AI לחיזוי עומס אשפוז

עומס שיא במחלקות משבש טיפול מתוכנן, וחישוב «בעין» אינו משאיר זמן לתמרון. אנו מפתחים מערכות לחיזוי עומס אשפוז במסלול מלא: מהכנת נתונים ועד העברת המודל לצוות שלכם. הפער בין תוכנית לביצוע מצטמצם פי כמה, והחלטות על מיטות וסדרי עבודה מתקבלות מראש.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

חיזוי עומס בבית החולים: היכן נשבר החישוב הנוכחי

תוכנית האשפוזים נבנית לרוב על ערכים ממוצעים מתקופות קודמות: לוקחים את תפוסת מיטות האשפוז לחודש או לרבעון ומעבירים אותה לתקופה הבאה. חישוב כזה מחזיק מעמד כל עוד הזרימה אחידה.

ברגע שמבנה ההגעות משתנה — אשפוזים מתוכננים נדחים, מגיע גל של אשפוזי חירום — הממוצע מפסיק לתאר את המציאות, והפער בין התוכנית למעשה גדל.

נקודת הכשל השנייה — ההשהיה בהפקות הנתונים. הנתונים מגיעים מתת-מערכות שונות בקצבים שונים: מחלקת הקבלה רושמת את ההגעה ברגע הרישום, ואילו תנועת המיטות והשחרורים נכנסים לדיווח מאוחר יותר, לעיתים פעם ביממה. חישוב שנבנה על חתך כזה רואה את תמונת האתמול ואינו מגיב לזינוק של היום.

עונתיות ההגעות בדרך כלל אינה נלקחת בחשבון כלל. גלי מחלות נשימה, הירידה העונתית באשפוזים המתוכננים בתקופת החופשות, ותקופות החגים יוצרים פרופיל שחוזר על עצמו לפי שבועות וחודשים, אך בתוך הממוצע לתקופה הוא נטשטש.

בעיה נפרדת היא הזרימות המתוכננות: היקפי הניתוחים והאשפוזים הידועים מראש אינם מוזנים לקלט כאות נפרד, אף שדווקא הם קובעים כמה מיטות יישארו לאשפוזי חירום.

בסך הכול מתקבל חיזוי שסוטה מהמצוי ככל שהעומס גבוה יותר — כלומר בדיוק כאשר ההחלטה על חלוקה מחדש של מיטות היא קריטית. אנחנו מפרקים כיצד זה נסגר: מאין מגיעים הנתונים, מה נכנס לקלט החישוב, וכיצד נבנה חיזוי עומס בית החולים שאפשר לסמוך עליו במשמרת של עומס שיא.

חיזוי שוטף של זרימת המטופלים: אפקט מדיד

חישוב שוטף משנה את ההיגיון של העבודה עצמה: החיזוי לכל מחלקה מחושב מחדש מדי לילה, ובהגעת נתונים חדשים — גם מחוץ ללוח הזמנים, ולכן ההחלטות מתקבלות לא לפי מצב התפוסה בפועל, אלא כמה ימים לפני השיא.

הנתונים נמשכים ממערכת הרישום לפי תקן החלפה ענפי HL7 FHIR, בלי הפקות ידניות ובלי "תיאומים בצ׳אט".

  • סירובים לאשפוז מתוכנן. חיזוי ל-7–14 ימים קדימה מצביע על עומס יתר מראש — תאריך האשפוז נדחה לפני הגעת המטופל, ולא ביום הרישום. מהזרימה נעלם סוג הסירובים היקר ביותר: אלה שפוגעים במוניטין ומחייבים קביעת תור מחדש.
  • עומס המחלקות. רואים את חוסר האיזון בין המחלקות 3–5 ימים לפני השיא, ונוצר זמן להעברת מטופלים מתאימים ולחלוקה מחדש של מלאי המיטות. הפיזור בעומס בין המחלקות מצטמצם, ו"תורנויות על הקצה" הופכות לחריג.
  • חלוקה מחדש של משמרות. חיזוי הזרימה לפי ימי השבוע ושעות חדר הקבלה נותן בסיס לתגבור בפרק זמן מסוים, במקום להחזיק סגל מלא "ליתר ביטחון". המשמרות מתוכננות לפי העומס הצפוי, ושעות נוספות עוברות למצב מבוקר.
  • אופק התכנון. שלושה קצבים: יממה — תגובה תפעולית, שבוע — משמרות, חודש — מתכלים, תרופות והיקפים מתוכננים. כל אופק נסגר בחתך חיזוי משלו, ולא במספר כללי אחד.
  • סוג הסירובים. בנפרד אנחנו מחשבים כמה סירובים הצלחנו להמיר לדחייה מתוכננת. זהו האפקט המדיד: מעבר מסוג בלתי נשלט לסוג נשלט, ולא רק "נהיה שקט יותר".

האפקט מחזיק מעמד רק עם בקרת דיוק: אנחנו מחשבים את הסטייה של המצוי מהחיזוי בכל מחלקה, ובחריגה מתמשכת מעבר לסף המודל מאומן מחדש על נתונים עדכניים. חיזוי חד-פעמי לא פותר דבר — עובד מחזור שוטף עם משוב.

גישות למודל החישוב: כללים, סטטיסטיקה, למידה מהנתונים

מודל החישוב הוא לא רק אלגוריתם, אלא גם אילו נתונים נכנסים אליו, באיזה אופק הוא מתעדכן וכיצד הוא נבדק.

אנחנו מחזיקים כמה אפשרויות חלופיות באותה רמה ובוחרים לפי המשימה: במקומות מסוימים די בכללים ובמקדמים עונתיים, באחרים נדרש מודל סטטיסטי, ובאחרים — למידה מהנתונים עם בדיקה על חתכים היסטוריים.

הקריטריון הוא אחד: האפשרות צריכה לנצח כלל פשוט על ההיסטוריה שלכם, ולא על נתוני הדגמה. אם אין יתרון — לחישוב נכנס הכלל, הוא שקוף יותר.

אפשרויות וגבולות התחולה שלהן

אפשרות מתי מתאימה מגבלות
כללים נוקשים זרימות יציבות עם מסלול מטופל צפוי, נדרשת יכולת הסבר לכל מספר אינם מגיבים לזינוקות ולשינוי בפרופיל המחלקות, מתוקנים ידנית
מקדמים עונתיים עליות וירידות חוזרות משנה לשנה: אשפוז מתוכנן, עונת המחלות, חופשות יוצרים שגיאה שיטתית באופק שבועי
מודל סטטיסטי נדרש חיזוי לכמה שבועות והערכת פיזור בהיסטוריה קצרה רגיש לערכי קיצון, מתקשה לזהות שינוי בהתנהגות הזרימה
למידה מהנתונים קיימים כמה שנות חתכים לפי מחלקות, ימי שבוע וערוצי הגעה מחייבת בדיקה חוזרת שוטפת, אחרת הפער מהמציאות גדל
אנסמבל מודלים מודל בודד טועה באופן שונה במחלקות שונות מורכב יותר לתחזוקה: ניהול גרסאות ובקרה של כל רכיב

בפועל עובד לרוב היברידי: הכללים קובעים את המסגרת ומסננים ערכים בלתי אפשריים, הלמידה מהנתונים מדייקת את החיזוי בתוך המסגרת הזו, והמקדמים העונתיים מחליקים את השיאים הידועים.

שלבי ההטמעה: מביקורת נתונים ועד מסירת המודל

סדר השלבים אינו מקרי: כל עוד לא נבדקה שלמות ההפקות, כל מדד איכות של החיזוי חסר משמעות. את העבודה אנחנו מובילים לפי תקן ענפי לניהול פרויקטים CRISP-DM — עם קריטריוני מוכנות מוגדרים בכל שלב.

  1. ביקורת מקורות. אנחנו מפרקים את ההפקות של מחלקת הקבלה, האשפוז המתוכנן ומלאי המיטות: פערים, כפילויות, שינוי בכללי הרישום. בתפוקה — מפת נתונים ורשימת מקומות שבהם אי אפשר בלי הנחות.
  2. סכמת מאפיינים. מהאירועים הגולמיים אנחנו מרכיבים את מה שבאמת מסביר את העומס: יום בשבוע ועונתיות, פרופיל המחלקה, שיעור הגעות החירום, רשימות המתנה, גלי מגפה.
  3. הגדרת החישוב. קובעים את האופק — יממה, שלוש יממות, שבוע — ואת ההגדרה של עומס יתר. המודל מחזיר לא מספר אחד, אלא טווח וסף שממנו מופעלת התראה.
  4. בדיקה על תקופות היסטוריות. מריצים את החישוב על מקטעים מהעבר, כולל חגים וזינוקות בתחלואה. בודקים את הסטייה בתפוסת המיטות ואת שיעור הפגיעות בתוך הטווח.
  5. קבלת המודל. את הקריטריונים מתאמים מראש: דיוק בתקופות ביקורת, עמידות לערכי קיצון, סיבה מובנת לסירוב לחזות. הגרסה הקודמת נשמרת לצורך חזרה לגרסה קודמת.
  6. מסירת הפתרון. פורסים את החישוב בצד שלכם, מוסרים תיעוד ותקנון אימון מחדש, ועוברים על הקוד עם הצוות שלכם. מכאן ואילך את המודל מתחזקים המהנדסים שלכם.

סכמות נתונים, תקנון אימון מחדש, בקרת איכות

חיזוי העומס חי לא בתוך המודל, אלא במסמכים שנשארים בידי צוות בית החולים. כעבור חצי שנה משתנה מסלול המטופלים או מגיע אנליסט חדש — את המערכת אפשר להרים, לבדוק ולאמן מחדש רק לפי הערכה הזו. לכן אנחנו מוסרים לא "קופסה שחורה", אלא סט של ארטיפקטים.

  • סכמת נתונים: מקורות (מחלקת קבלה, רישום מתוכנן, היסטוריית אשפוזים, העברות בין מחלקות), תדירות ההפקה, השהיות אופייניות בהגעת הנתונים והאחראי על כל זרימה.
  • תיאור המאפיינים: מה מוזן לקלט — פרופיל ותפוסת המחלקה, יום בשבוע ועונתיות, קבוצת גיל, משך שהייה ממוצע, היקף ההגעות המתוכננות; עבור כל מאפיין מצוינים המקור, הסוג וההתנהגות במקרה של ערך חסר.
  • כללי ההכנה: כיצד מטופלים ביטולים, אשפוזים חוזרים וחתכים חסרים, כדי שהחיזוי לא יסתור במעברי משמרות ובתקופות חג.
  • תקנון אימון מחדש: טריגרים (שינוי בזרימת המטופלים, פרופיל מחלקה חדש, מחזוריות מתוכננת), אורך תקופת הביקורת, מי מפעיל ומי מאשר את התוצאה.
  • בקרת איכות החיזוי: מדדים לכל מחלקה ולכל אופק, ספי כשירות והתראה כאשר השגיאה חורגת מהם.
  • נוהל בחינת פערים: השוואת המצוי לחיזוי לפי מרווחים, סיווג הסיבות (שינוי במסלול, הסגר, התפרצות תחלואה), ורישום ביומן.
  • יומן גרסאות וחזרה לאחור: איזו גרסה פעלה באיזו תקופה ועל אילו נתונים אומנה, וכיצד לחזור לקודמת בלי לאבד את ההיסטוריה שנצברה.

מקרה בוחן: הפער בין התוכנית למעשה הצטמצם פי שלושה

בית חולים רב-תחומי עם זרימה של אשפוזים מתוכננים ואשפוזי חירום תיכנן את העומס לפי ממוצעים מהתקופה הקודמת: המחלקות אספו את המספרים ידנית פעם בשבוע.

באופק של שבעה ימים השגיאה הגיעה לרבע מהמיטות — חלק מהמיטות עמדו ריקות, חלק מהמשמרות נסגרו בשעות נוספות, ואשפוזים מתוכננים נדחו ביום ההגעה.

מעגל התכנון נבנה מחדש: המודל מקבל היסטוריית אשפוזים וניתוחים מכמה שנים, לוח שנה של התערבויות מתוכננות, עונתיות של מחלות נשימה חריפות, ימי שבוע וחגים, והגעות חירום טריות.

את החיזוי מחשבים לכל מחלקה ל-1, 7 ו-14 ימים קדימה; בליבתו — אנסמבל עצים Gradient Boosting עם רווחי סמך, ולכן המתכנן רואה לא מספר אחד, אלא טווח והסתברות לחרוג ממנו. החישוב מחדש מתבצע מדי יממה ובאופן חריג כאשר המצוי סוטה מהחיזוי.

כעבור שלושה חודשי הפעלה שגיאת החיזוי של עומס המיטות באופק שבועי הצטמצמה מ-23% ל-7%, והפער בין התוכנית למעשה — פי שלושה. שיעור המיטות הריקות שלא מתוכנן ירד בערך בחצי, וסירובים לאשפוז מתוכנן בגלל היעדר מקום כמעט נעלמו מהדיווח. משמרות הסגל הרפואי נקבעות לפי החיזוי ולא לפי המצוי: השעות הנוספות הצטמצמו ברבע.

ההחלטה נשארת בידי האדם: המודל מראה היכן קיים סיכון לחרוג מהטווח, מנהל המחלקה מתקן את התוכנית, והמערכת מחשבת מחדש את החיזוי בהתחשב בתיקון.

מה עושים אם הנתונים נאספים ידנית ובאיחור?

אפשר לבנות חיזוי גם על נתונים מאחרים — השאלה אינה השלמות, אלא יכולת החיזוי של ההשהיה. אם ההפקה מגיעה כל בוקר באותה שעה, מאמנים את המודל על חתך "נתונים בזמן החיזוי" ולא מערבבים פנימה את העתיד. אם ההשהיה נעה בין שעה ליומיים, האיכות יורדת בלי שמשים לב: השדות נראים טריים, אבל בפועל הם מיושנים.

הפקות ידניות ממערכת הרישום סוגרות את המקרה הראשון: מקורות הנתונים נאספים במקום אחד, ההיקף קטן, והרכב השדות יציב. בוחרים בהן כאשר הדיווח על מיטות, הגעות והעברות יוצא לפי לוח זמנים. המגבלות צפויות — ימים חסרים, כפילויות ופערים בין מפרטי המחלקות.

אפשרות מתי מתאימה מגבלות
הפקות ידניות לפי לוח זמנים היקף קטן, שדות יציבים, אחראי אחד על הדיווח ההשהיה משתנה, ימים חסרים, כפילויות ופערים בין מפרטים
חילופי נתונים עם מערכת הרישום לפי לוח זמנים נדרשת השהיה של עד שעה, יש גישה ומזהים יציבים תיאומים, פיתוחים נוספים בצד המערכת, פערים בין מפרטים
העברת אירועים בזרימה טריות קריטית: חיזוי למשמרת הנוכחית דרישות נוקשות לאיכות הנתונים, תחזוקה עתירת מאמץ

נתונים חסרים אנחנו מכסים במאפיינים, ולא בניחושים: למודל נכנסים הזמן מאז הרשומה האחרונה, שיעור השדות הריקים ותג המקור. החיזוי אז מחזיר טווח ומרחיב אותו ביושר בימים שבהם הנתונים הגיעו מאוחר מהרגיל, במקום לטעות בשקט.

חילופי נתונים אוטומטיים מחברים בשלב השני — כאשר המעגל הידני מספק סכמת נתונים מובנת ורואים אילו שדות משפיעים על החיזוי.

שאלות טכניות לפני תחילת הפרויקט

לפני ההתחלה בודקים בדרך כלל שלושה דברים: האם יש מספיק נתונים שנצברו, כיצד המערכת תתנהג בהגעה המונית, ומי אחראי לאיכות החיזוי לאחר המסירה. אנחנו מפרקים כל סעיף לגופו, בלי הבטחות "בממוצע על פני כל בית החולים".

אנחנו מתחילים בפיילוט במחלקה אחת: המודל אומן על ההיסטוריה שלה, החיזוי מושווה מדי יום למצוי — ורק לאחר סטייה יציבה בגבולות המותרים הפתרון מורחב לשאר הבניינים. הפיילוט נותן בסיס מדיד: דיוק במחלקה מסוימת במקום הבטחה לדיוק בכלל.

יש לנו כמה חודשי היסטוריה — החיזוי יעבוד?

היסטוריה קצרה מגבילה לא את המודל, אלא את סט המאפיינים. אנחנו נשענים על מה שחוזר על עצמו: יום בשבוע, חגים וחופשות, עונתיות האשפוזים, הפניות מתוכננות, פרופילי המיטות. בסדרה של 3–4 חודשים הדיוק של חיזוי ל-1–3 יממות קדימה נכנס לטווח עבודה, ועם הצטברות הנתונים אנחנו מרחיבים את החלון.

מה יקרה בהגעה המונית?

זינוק המודל לא יחזות — הוא מגיע מבחוץ: תאונה, התפרצות, הגעה המונית. לכן אנחנו מקצים הזנה ידנית של אירועים וסף סטייה: אם המצוי חרג מהחיזוי מעבר למוגדר, התורן מקבל התראה ורואה אילו מחלקות נמצאות בסיכון. התיקון מוזן בפעולה אחת ונלקח בחשבון בחישובים הבאים.

מי אחראי לאיכות החיזוי לאחר המסירה?

בלי בקרה הדיוק יורד: פרופילים משתנים, הזרימות משתנות, סדר האשפוז משתנה. אנחנו מגדירים מדד איכות, מוסרים תקנון אימון מחדש ולוח פערים, ומלמדים את הצוות שלכם להפעיל את המחזור בעצמו. את העדכונים הראשונים עוברים יחד — כך נשארת פרוצדורה מובנת במקום "קופסה שחורה".

נדון במשימה ונחזור עם הערכה ותוכנית

לצורך ההתחלה איננו זקוקים לגישה לכל הסביבה התוכנית של המרפאה — די בהרכב נתונים ראשוני ובהבנה אילו החלטות יישענו על החיזוי. זה מספיק כדי לחזור עם הערכת עבודה ותוכנית הטמעה, ולא עם מצגות כלליות.

  • הרכב נתונים ראשוני: היסטוריית אשפוזים והעברות בין מחלקות, משך שהייה, סירובים בקבלה, זינוקות עונתיים — על פני כמה מחזורים שלמים יחד עם עונת המחלות.
  • נקודות אינטגרציה: מאין נמשכים הנתונים כעת — מודול סטטיסטיקה רפואית, מחלקת קבלה, חדר ניתוח — ובאיזה אופן זמינות ההפקות: קובץ, תצוגה בבסיס הנתונים או שירות עם שאילתות.
  • אופק התכנון וההחלטה שנשענת עליו: שיבוץ משמרות, רזרבת מיטות או תוכנית אשפוז מתוכנן. חיזוי ליממה ולשבועיים — אלה מודלים שונים ותדירות חישוב שונה.
  • ההקשר החיצוני של הזרימה: לוח הניתוחים המתוכננים, חגים וחופשות, לוח חופשות הרופאים, מגבלות לפי פרופילי מיטות.
  • כללי קבלת ההחלטה: אילו ספים נחשבים קריטיים, מי ובאיזו תדירות מסתכל על החיזוי, ומה קורה בחריגה.
  • הרשאות וסביבה: מעגל בדיקות, נוהל אנונימיזציה של ההפקות, ומי מטעם המרפאה מאשר את נכונות הנתונים ההיסטוריים.

לאחר הדיון במשימה אנחנו חוזרים עם הערכת עבודה ותוכנית הטמעה: סדר השלבים, מה בודקים על הנתונים ההיסטוריים, היכן הגבול בין פיילוט במחלקה אחת למעגל מלא, ובאילו מחלקות אנחנו מחשיבים את המודל לעובד. אם חלק מהנתונים עדיין אין — גם זה חלק מהשיחה: נסביר מה נאסף תוך כדי וכיצד זה משפיע על לוחות הזמנים.