מערכת SmartER ו־TMR
נכתב בידי עוזר AI שעובד עם יוסף, מתוך תיעוד העבודה במרכז, כרקע לפגישה ב־20.10.
מה זה, ומי בנה את זה
מערכת SmartER היא המסך שבו רופאים ואחיות בשיבא עובדים על מחלקה שלמה ולא רק על מטופל אחד: מי נמצא במחלקה, מה חדש, מה כבר נוצר ומה מחכה לפעולה. אצל מטופל יחיד היא מרכזת את המידע הקליני ומייצרת ממנו סיכום לפני רופא, סיכום בדיקות עזר ומכתבי קבלה ושחרור, כשכל משפט מחזיק אסמכתא חזרה למקור. היא מקליטה את המפגש דרך Scribe, ומשאירה לרופא לערוך ולאשר לפני שמשהו נשמר או נשלח. היא עלתה במיון ב־5 בינואר 2026, עברה למיון ילדים, להמטו־אונקולוגיה, לפנימיות ולקרדיולוגיה, ובאמצע ספטמבר 2026 הוכרזה פריסה לכל בית החולים.
מתחת לשם הזה יש מערכת אחרת, TMR, קיצור של true-medical-report. זה השירות ובסיס הקוד שבתוכו SmartER חי: סנכרון מטופלים, עיבוד מקדים של הנתונים, תצוגות מחלקה ומטופל, הפעלת התהליכים שמייצרים מכתבים, הרשאות ושליחה. מבחינה טכנית SmartER הוא מצב תצוגה בתוך TMR ולא מערכת נפרדת, ולכן בשיחות במרכז שני השמות מתערבבים. כשמישהו אומר ״תמר״ הוא בדרך כלל מתכוון לתשתית, וכשהוא אומר SmartER הוא מתכוון למוצר שהרופא רואה.
הבעלות מפוזרת, וכדאי להכיר אותה לפי תפקיד. גיא דולינסקי הוא האדריכל: ההחלטה להכניס את כל הקוד לתוך TMR היא שלו, וכך גם הפירוק של TMR לתצורה לפי מחלקה, ה־psync, החלטות התכנון הגדולות, ובשבועות האחרונים הובלת החיבור לקמיליון. טהר אברג׳ל בנה את תצוגת המחלקות, את ה־wizard להקמת מחלקה, את אליס בתוך SmartER ואת רוב מימוש החיבור לקמיליון. רפאל אשורוב מחזיק את שרשרת המיזוגים, את בדיקות הבטא ואת הדחיפות לפרוד, ומריץ בדיקות אימות לפני שחרור. שי גנכיל בנה את WSP, תשתית המשימות שכל זה רץ עליה, את מנגנון ההרשאות ואת מנוע AI Flows, ומאז יוני 2026 הוא האחראי הרשמי על TMR. שחר מהמוצר מחזיק את ההיקף, את הדרישות, את מועדי הפריסה ואת הקשר עם הרצפה, ואוהד אביטל מוביל את המוצר מול ההנהלה ומול גורמים בחוץ. יערה כץ מנהלת את הפיתוח ומחזיקה את שער השחרור מבטא לפרוד. צוות הדאטה סיינס, רחל ויטיס, אילן בואניש, עומר, סיגל סינה, אסתי כהנוביץ ומאור שגיא, כותבים את הפרומפטים, את ה־guardrails ואת ההערכה, ויכולים לעצור דחיפה. נועה ורסנו מחזיקה את ספק ה־Scribe בתוך בית החולים, שני עושה אימות קליני לפני שחרור ומשמשת נקודת המגע בין הרצפה לפיתוח, והדבאופס, יאיר גינת, קווין צימרמן וסלע ענבר, מחזיקים את הסביבות, את הזהויות ואת בוט התקלות.
החלק שבלעדיו אין מוצר הוא המובילים הקליניים. ד״ר חגי עדן, המוביל הקליני של המיון, פתח בעצמו את קבוצת הרופאים בבוקר ההשקה, קבע את סדר הפריסה בתוך המיון והגדיר תבנית תיעוד אחת לרפואה דחופה; השימוש שלו במוצר היה בפועל מבחן הקבלה. לצדו מנהלי המחלקות והרופאים שהסכימו לעבוד עם המערכת ולהגיד מה לא עובד.
לפי התיעוד, החלק של יוסף בן יהודה הוא השכבה שמתחת. הוא כתב את הגשר בין TMR לבין ה־managers, הקוד שהופך את נתוני המטופל בתמר לקלט של מנגנוני היצירה, ואת התצורה שלהם; את העיבוד המקדים של נתוני קמיליון לפורמט שהדאטה סיינס עבדו איתו; את סכמת המכתב המובנה עם האסמכתאות; ואת המוסכמה לטיפול בשגיאות בין רכיבים. בסתיו 2025 בנה עם גיא את הזרימה של SmartER. מתחת לכל זה יש גם רכיבים משותפים שכתב: רוזטה, שדרכה עוברים הנתונים הקליניים, הקריאה המשותפת למודל וספריית הטרייסינג. מאוגוסט 2026 שמו אינו מופיע בחלוקת העבודה השוטפת של הסקווד; הוא נכנס בנקודות שבהן נתון קליני עובר בין מערכות, כמו מיפוי השדות של קמיליון באוקטובר.
מאיפה זה בא: TMR, פרויקט K, והחלטה אחת בספטמבר 2025
לסיפור יש שני מקורות שנפגשו. הראשון הוא TMR. הוא לא נכתב בשיבא: לפי גיא הוא פותח ב־8200 עבור בתי החולים, וב־28 בפברואר 2024 נרשם בלוחות המרכז כפרויקט טאבלטים לחדרי הטראומה, עם גיא כמנהל הפרויקט. במרץ 2025 הוא נבנה מחדש בלוחות, בידי אורי מנור, יוליאנה וגיא. חשוב להבין שהוא התחיל כדשבורד לצפייה בלבד, שבנוי לכך שהמידע יתרענן מעצמו ולא לכך שיקלידו לתוכו. גיא הצביע על כך ביוני 2026 כשורש של בעיית העריכה בתוך המסך, שעדיין נאבקת ברענון. ב־12 ביוני 2025 גיא החליף את Redis ב־RabbitMQ ב־psync וב־WSP, כי Redis Sentinel לא הסתדר עם Kubernetes, ומחק את כל קוד החיבור מחדש שנכתב בבית.
המקור השני הוא שושלת K. קודם היה כלי התמלול החי שגיא בנה לכנס ARC, ממנו נולד Project K: מערכת אנמנזה למיון שחברה חיצונית בנתה לשיבא בענן של מייקרוסופט, ושהמרכז ירש ונאלץ להחזיק. בספטמבר 2024 צוות הפרויקט מהמיון ביקש להיפגש עם יוסף, והוא בנה ממנו גרסה ראשונה שעברה אחר כך לקבוצת הדאטה סיינס. ניסיון לבנות את K מחדש באביב 2025 נעצר אחרי זמן קצר. בפברואר 2025 נולד גם WSP, במקור כרכיב התחברות אחד לתשע אפליקציות, ועד מאי הוא כבר היה מתזמן משימות ועובדים עם לוח בקרה. ב־8 במאי 2025 רחל פתחה את ה־guardrail הראשון, שבודק תוכן סובייקטיבי בסיכום.
המוצר שקיים היום מתחיל בניסיון השני. ב־20 ביולי 2025 אביעד בוסקילה פתח את חדר הסקווד בשם K 2.0, וכבר ביום הראשון אנשים בחדר תיארו אותו כהמשך של K. ב־6 באוגוסט הפיתוח דרש דרישות MVP כולל ממשק לפני תכנון, ובאותו יום נסגרו עם חגי ואוהד שתי החלטות היקף: אין ממשק אחיות בשלב הראשון, ומטופלים נשלפים בשני טריגרים, אוטומטי וידני. ב־7 באוגוסט שם הפרויקט שונה ל־ED GenAI, יערה מונתה להובלה בצד הפיתוח ורחל בצד הדאטה סיינס. ב־13 באוגוסט נקבע שאישור עלייה לפרוד עובר דרך שחר מהמוצר, ובין 14 ל־18 באוגוסט יוסף איחד בחזרה את שני קווי הקוד, של הדאטה סיינס ושל המפתחים.
ההחלטה שהפכה את זה למערכת התקבלה ב־7 בספטמבר 2025: לפי שי, גיא דחף להכניס את כל הקוד לתוך TMR. מכאן והלאה הכול נבנה בתוך תמר. ב־10 בספטמבר המוצר נקרא לראשונה SmartER, והדיון עבר לשני ערוצי Teams עם טבלת רכיבים שלכל אחד מהם בעלים. ב־18 בספטמבר הצטרף טהר. ב־21–22 באוקטובר סוכם מבנה המכתבים: הסיכום לפני רופא כולל רקע, תרופות קבועות, רגישויות, תלונה עיקרית ואנמנזה, ודימות ומעבדה עוברים למכתב בדיקות עזר נפרד. לפי רשימה שרחל פרסמה ב־22 באוקטובר, ה־manager של הסיכום לפני רופא היה הראשון וחסם את השאר: אילן כתב את בקשת המיזוג, מאור ויערה סקרו, ומאור עבד על מכתב השחרור. ב־27 באוקטובר סלע ייחס את ה־WSP החדש לטהר.
מהזרימה הראשונה ועד ההשקה: נובמבר 2025 – ינואר 2026
ב־4 בנובמבר גיא סיים ריפקטור שנתן לכל מחלקה digest ו־ingest משלה והפריד בין הלוגיקה של סוג המחלקה לבין המחלקה עצמה. ב־6 בנובמבר, בהנחיית יערה, גיא ויוסף ישבו יחד על הזרימה של SmartER. ב־10 בנובמבר יערה דיווחה בערוץ ששי פתר את רוב הבעיות מול ספק ה־Scribe ושיוסף סגר רבים מה־managers. ב־16 בנובמבר ה־manager הראשון התחבר לכפתור במסך; כשהתבקש לתת קרדיט, יוסף ייחס את רוב העבודה על החיבור לגיא. באותו שבוע התחיל סבב האימות הראשון מול הדאטה סיינס: רחל בנתה גיליון בדיקה, וקבעה שגם הפרומפט וגם המודל נקבעים לפי מספרי הערכה. עומר, מאור ואילן השלימו את הסבב, שמצא חוסרים בדימות ובביקורי מרפאות וגם פער בהרשאות התצוגה, שחגי קבע שחייב להיסגר.
בסוף נובמבר המערכת רצה במיון על המטופלים הנוכחיים אבל הוחזקה עצורה בגלל העלות, ויוסף טען אז שתכנון הטריגרים יקר מדי. יערה ריכזה את שלושת הפריטים הפתוחים: חיבור ה־Ada מהשרת, חומת האש של ספק ה־Scribe, והעלות והזמן של הזרימה כולה. ב־30 בנובמבר גיא הפך את psync לבטוח לריצה מקבילית והעביר את משימות עדכון המטופל לתהליכון משלהן. ב־1 בדצמבר גיא ויוסף קבעו את סדר הזרימה שעדיין מחזיק: סיכום לפני רופא אחרי שיש הפניה ותיאור אחות, סיכום בדיקות עזר אחרי שהבדיקות חוזרות, Scribe כשהרופא מבקש, ומכתב שחרור בלחיצה אחרי שלושתם. ב־2 בדצמבר הייתה הדגמה חיה במיון, ו־TMR עלה לפרוד באותו יום. ב־9 בדצמבר גיא הודיע ש־SmartER בבטא, כולל Scribe, תמלול ותצוגת ההפניות.
ב־15 בדצמבר 2025 המטופל האמיתי הראשון עבר את כל המסלול, כולל מכתב שחרור, ושי ישב במיון ליד הרופא והביא משם את רשימת הליקויים הראשונה. באותו יום נקבע שרק אביעד או יערה מאשרים משתמש חדש. ב־16 בדצמבר אוהד הכריז על הקפאת שינויים. ב־17 בדצמבר הוצגה המערכת למנכ״ל בית החולים, ולפי אלון אגמון המנכ״ל קבע שמ־5 בינואר 2026 המיון ההולכים עובד רק עם SmartER, בפרודקשן. התאריך לא נקבע בתוך הצוות, וכל השבועיים שאחריו נגזרו ממנו. ב־18 בדצמבר הוכנסו לפרוד שני שינויים בלבד, הפרומפט החדש של ה־OCR ומודל מכתב השחרור, ורחל הקפיאה את הפרוד עד אחרי ההצגה במיון. ב־22 בדצמבר חגי דיווח לנועה שה־Scribe עובד טוב יותר באתר של הספק מאשר דרך SmartER, ממצא שחזר בחודש שאחריו.
בסוף דצמבר התגבש חוזה הנתונים בין הפיתוח לדאטה סיינס. ב־30 בדצמבר רחל פרסמה רשימת דרישות למבנה הקלט: ביקורים הופכים ל־encounters, אבחנות שחרור בלבד, בדיקות הביקור הנוכחי מופרדות מההיסטוריה. לפי גיא, העיבוד המקדים היה אצל יוסף וחסם את הדאטה סיינס; יוסף מסר את הגרסה השנייה של ה־JSON הקליני עם קובץ הסבר ב־14 בינואר, ורחל אישרה ב־25 בינואר שכמעט כל הרשימה תוקנה. באותם ימים גיא הפנה עמית ליוסף כבעל המוסכמה לטיפול בשגיאות בין רכיבים.
ב־1 בינואר 2026 החסם האחרון לפני פרוד היה השירות שמושך הפניות סרוקות מ־Ada; יוסף טיפל בו, ויערה ייחסה לו באותו ערב את מציאת הבעיה בקובץ התצורה של ה־manager. ב־2 בינואר הגירה בכל בית החולים למערכות דימות ומעבדה חדשות השאירה את כל המטופלים בלי תוצאות לכמה שעות, וחגי קבע שנלחמים על קישור הדימות כי בלעדיו אין מוצר. באותו יום יוסף העביר את המשך הבנייה לגיא. ב־4 בינואר שחר כתב את סדר הכוחות ליום ההשקה ואת כללי ההתנהגות ברצפה, ורחל דיווחה שהיא ויוסף החזירו את האנמנזה.
ההשקה ב־5 בינואר הצליחה. חגי פתח בבוקר את קבוצת הרופאים כמקום לדווח על תקלות והצעות, ארבעה רופאים השתתפו ביום הראשון, ותיקונים עלו לפרוד באותו ערב. יוסף ישב שעה עם רופאה אחת וכתב את מחקר המשתמש הראשון של החדר, ובו העלה ספק אם המערכת באמת חוסכת לה זמן; השאלה הזו עדיין לא נמדדה. ב־7 בינואר המנכ״ל ביקר במחלקה, וביומן היום השלישי חזרו שני ממצאים מהרופאים: הם חזרו לטפל פנים אל פנים במקום מול המסך, ועומק התיעוד עלה. ב־14 בינואר חגי קבע את סדר הפריסה: כל רופאי המיון ההולכים לאורך כל היממה, אחר כך המיון השוכבים, ומחלקות אחרות במקביל. ב־19 בינואר היו כבר ארבע מאות הקלטות, וב־21 בינואר נוסף מיון הילדים בבטא. ב־28–29 בינואר איכות ה־Scribe קרסה עם תקלה אצל הספק; נועה החליפה מודל באמצע משמרת, וחגי הפסיק זמנית להשתמש, מה שהוביל להסלמה מול הנהלת הספק. מדידת זמנים שיוסף הריץ איתרה את העיכוב, ועד הערב חגי אישר מהאתר של הספק שהתקלה רק ברכיב המוטמע.
החצי הראשון של 2026: מחלקות, מלחמה, ייצוב
פברואר היה חודש של פרוד בתנאי אמת. ב־3 בפברואר צוות טלוויזיה צילם את המערכת במיון בזמן שהפרוד החזיר שגיאות, ואלון העביר את הרופא לבטא. ב־4 בפברואר חסימה של אבטחת מידע מנעה קידום מבטא לפרוד, והתיקון נעשה בפרוד עצמו. ב־18 בפברואר שינוי תשתית שלא תואם ניתק את ההתחברות ל־Scribe, ואלון קבע שכל פנייה לאבטחת מידע עוברת מעתה רק דרך הדבאופס של המרכז. ב־22–24 בפברואר שי התקין את SmartER לילדים במיון הילדים בפרוד, וב־24 בפברואר חגי הגדיר תבנית תיעוד אחת לרפואה דחופה לכל רופאי המיון אצל הספק. ב־28 בפברואר, עם המלחמה, המיון ירד לחניון. הצוות עבד לילה שלם עד שהסיכומים והתמלול רצו על טאבלטים; התקלה הייתה חוסר תמיכה במגע אצל הספק, וגיא ניסח את ההסלמה מאתר תת־קרקעי.
ב־2 במרץ מצב הטאבלטים עלה לפרוד, והמערכת עברה את האלף מטופלים. באותו יום יוסף הרחיב את הסיכום לפני רופא גם למיון השוכבים, וחגי ציין שעיצוב מסך המחלקה כבר קיים עם המוצר ורק המימוש חסר. ב־6 במרץ הופיעו בבטא לראשונה מטופלים ממחלקת אשפוז. ב־8 במרץ נפתח סנכרון שבועי על העברת Madona, מחולל מכתבי הקבלה מבוסס הכללים, ל־AI, וב־20 באפריל נקבעה תוכנית: רשימת מה עובר ומה נשאר כללים, כחמישים מכתבי קבלה מרופאים מהימנים כבסיס השוואה, וניסוי שמשווה את התוצרים. ב־11 במרץ SmartER הוצג לשר הבריאות, ובאותו יום שי שכתב שאילתה שירדה מדקה וחצי לשתי שניות. ב־16 במרץ מיזוג שעבר בלי סקירת דאטה סיינס כמעט השאיר את הסיכום לפני רופא בלי מידע מאשפוזים קודמים, ומאז הכלל הוא שכל שינוי בקלט הקליני עובר סקירת דאטה סיינס לפני מיזוג. ב־22 במרץ SmartER הותקן על כל העמדות במיון הילדים, וב־24 במרץ עלתה המטו־אונקולוגיה. ב־25 במרץ עומר הדגים את ה־guardrail של ה־OCR, שבודק שההפניה הסרוקה שייכת למטופל ושלא נסרקו שתיים, והוא נכנס תחילה לניטור ביצועים בלבד. ב־31 במרץ התחילה תוכנית ייצוב של באגים ותשתיות.
באפריל ובמאי העבודה עברה לעומס. ב־29 באפריל, אחרי שחגי ציין שמטופלים חדשים מופיעים לאט, רפאל מצא מרווח של יותר מחצי שעה בין ריצות הפונקציה שמכניסה מטופלים למחלקה בזמן עומס. ב־28 באפריל יוסף ביקש בדיקה אוטומטית שמריצה WSP ו־digest עד מכתב שמופיע בממשק. ב־4–6 במאי שי מצא באג לוגי שטחן את המעבד אצל מטופלים עם היסטוריה גדולה, והתיקון הוריד את צריכת המעבד פי ארבעה ואפשר להדליק את כל המחלקות. ב־5 במאי, בהחלטת יערה, נפתחה מחלקת יולדות בסיכון. ב־11 במאי שחר שחרר את SmartER 2.0: כמה הקלטות לביקור במקום אחת, סיכום שנוצר בסוף ההקלטה, עמוד מטופל שמוגדר לפי מחלקה, ועיצוב שבנוי קודם כול לטאבלט; גיא הריץ את השדרוג בפרוד. ב־13–14 במאי נכנס בוט התקלות של יאיר, שמאזין לקבוצות ופותח כרטיס בעצמו, ומ־21 במאי יוצא כל יום רביעי סיכום של כל מה שעדיין פתוח.
ביוני נכנסו הרשאות. ב־10 ביוני עלתה לבטא גרסה חלקית, וב־24 ביוני ענף גדול של שי הפך כל פעולה במערכת לתלויה בהרשאה, עם ריפקטור משמעותי של ה־digest. מהרגרסיה שבאה אחריו גיא קבע שבדיקת בטא כוללת כניסה כמשתמש של רופא, כי חשבון מפתח שרואה הכול מסתיר בדיוק את הבעיות האלה. ב־16 ביוני כשל במסד הנתונים של קמיליון הפיל את כל המערכות, ושי ייחס לאילן וליוסף את החזרת ההפניות לפעולה. ב־23 ביוני נשלחו לראשונה מכתבים ישירות למטופלים בפנימית, דרך Sheba Connect. ב־25–28 ביוני יוסף תיקן את ה־spans של WSP בשירות ה־digest, שלא נפלטו בגלל סדר אתחול שגוי של ה־OpenTelemetry. ב־29 ביוני, כשעלתה הצעה לכתוב את TMR מחדש, יוסף הציע במקום זה לאחד בסיס משותף של תמר ו־WSP למסירה הלאה, וגיא הסכים לכיוון.
איך זה עובד היום
כל מחלקה היא תצורה ולא קוד. המסך בנוי מקומפוננטות React, ועל כל אחת מוזרקת תצורה שמגיעה משכבת ה־digest בשרת, השכבה שמגדירה את המחלקות ושואבת את הנתונים שלהן. יש סוגי מחלקה, אשפוז, מיון ומרפאות, ותבנית שמתאימה לכולם. כל כפתור במסך הוא עוגן שמוגדר בתצורה: עוגן אחד מציג תוצאה של flow שאפשר לערוך, ועוגן אחר מביא, למשל, את התרופות של חצי השנה האחרונה מאיתן. אם מחלקה אחרת רוצה עוגן כזה, זו שורה אחת בתצורה. המטרה, כפי שהוצגה לצוות החדש ב־7 באוקטובר, היא שאף מפתח לא יבנה מחלקה ביד. בפועל ההגדרה השמורה עדיין איננה JSON אלא אובייקט Python לכל מחלקה, קבצים כמעט זהים עם פרמטרים שונים, וזה אחד הדברים שה־wizard בא להחליף.
המידע שמחלקה צריכה הוא חלק מהתצורה שלה, והוא הופך למשימות ב־WSP. ה־WSP הוא מתזמן המשימות והעובדים של המרכז, מעל RabbitMQ: משימות נרשמות לתור, ועובדים שולפים מקמיליון ומעדכנים את מצב המטופל. יש לו ממשק טבלאי שבו רואים לכל מחלקה אילו משימות יש לה, מתי רצו, מה הביאו ולמה נכשלו. לא השתמשו ב־Celery בין השאר כי המכונות בבית החולים נהרגות בלי התראה. מחלקה חדשה לא מפעילה את המשימות שלה אוטומטית, בכוונה, כדי שמחלקה שהוגדרה לא נכון לא תפיל את המערכת. מצב המטופל נשמר במונגו כאובייקט JSON אחיד, וה־psync של גיא מעביר את העדכונים למסך בזמן אמת. לפי הסבר של גיא מאפריל 2026, לפרונט נשלח רק המידע שהתצוגה מבקשת דרך שאילתת GraphQL, לא כל תיק המטופל.
הנתונים מגיעים משני כיוונים, והתמונה לא אחידה. רוב המידע הקליני עובר דרך רוזטה, שכבת הנתונים שמתרגמת את קמיליון ומקורות אחרים. אבל רשימת המטופלים של המחלקה עדיין נשלפת בשאילתה ישירה לקמיליון, אף שרוזטה כבר יודעת לספק אותה. ההפניות הסרוקות מגיעות משירות ה־Ada, ויוסף הוסיף אותן גם לרוזטה כשמנגנון ה־OCR היה צריך אותן. הכיוון שהצוות הולך אליו הוא לשמור פחות במונגו ולשלוף מחדש דרך רוזטה כשצריך.
מה שמייצר את הטקסט נקרא בהתחלה managers: מנגנון נפרד לכל תוצר, לסיכום לפני רופא, לבדיקות העזר, ל־Scribe, למכתבי קבלה ושחרור ול־OCR של הפניות, כל אחד עם פרומפט, תצורה וזרימה משלו. בקיץ 2026 הם עברו ל־AI Flows, מנוע זרימות על LangGraph שבו flow מוגדר ב־YAML כרצף של nodes ומודולים. ב־12 ביולי ה־Playground חובר לענף הבטא של AI Flows, כך שריצה פותחת בקשת מיזוג עם קובץ YAML. ב־17 ביולי נקבע שמחלקה עוברת רק כשההערכה שלה טובה מספיק. המעבר עצמו נעשה בשלבים: ב־19 באוגוסט עלו לבטא רק יצירה, עריכה וקריאה של מכתבי AI Flows, וב־23 באוגוסט המנוע עלה לפרוד, ומשם החלפה של מכתבים קיימים מחלקה אחרי מחלקה. ה־guardrails, שבודקים אסמכתאות, התאמה של הפניה למטופל וסתירות בין המקורות, שייכים לצוות הדאטה סיינס ויושבים במאגר משותף, והתוצאות שלהם נאספות ב־PostHog. ה־Scribe הוא מוצר של ספק, עם פרומפט לפי מחלקה. אליס יושבת בתוך עמוד המטופל כסוכן שאפשר לשאול על התיק; לפי ניסוח של גיא מ־30 בספטמבר, SmartER מספק מסכים שמותאמים למחלקה, ואליס היא עוזר שצמוד למשתמש ויכול להפעיל גם אותם דרך שיחה.
ההזדהות עוברת דרך Keycloak, שמקבל את הקבוצות של המשתמש מקמיליון, וכל פעולה תלויה בהרשאה. הקוד עובר מ־show לבטא ולפרוד. ההחלטה לפתוח או לסגור מחלקה בפרוד היא של יערה, אישור המוצר הוא של שחר, ההערכה של הדאטה סיינס יכולה לעצור דחיפה, ומ־4 באוגוסט האימות הקליני של שני ורפאל הוא השער האחרון לפני שחרור. תקלות שמדווחות בקבוצה נפתחות אוטומטית ככרטיס. לצד זה יש טרייסים של OpenTelemetry מכל השירותים ל־Tempo, לוגים ב־Loki ודשבורדים ב־Grafana, כך שמכתב או ריצה שנכשלו אפשר לפתוח עד ה־span שבו זה קרה. את הספרייה כתב יוסף, ואת ההחלטה ללכת על OpenTelemetry קיבל גיא.
מיולי ועד אוקטובר: כל בית החולים, וקמיליון 9
הקיץ היה עונה של הרחבה ושל תשתית. ב־1 ביולי TMR נדחף לפרוד, ושי כיבה זמנית מחלקות כדי לייצב, והשאיר שתי פנימיות, את המיונים ואת הקרדיולוגיה. באותו יום תוכנן בדיילי מנגנון לעריכת מכתבים במקביל לרענון: סימון כניסה לעריכה, הצגת עדכון שהגיע באמצע, והשוואה בשמירה בין הגרסה הראשונה, העדכון האחרון והעריכה. ב־18–23 ביולי הגישה לרפליקה של קמיליון נחסמה, כל האפליקציות איבדו נתונים, ויערה דאגה לפתיחה מחדש ודחתה פתיחת מחלקות חדשות. ב־21 ביולי SmartER בבטא הוצג לבית חולים אחר. ב־2 באוגוסט שלוש פנימיות היו בפרוד, וטהר הפעיל שמירה ל־Connect. ב־16 באוגוסט כל צמתי המונגו בפרוד נפלו ביום ראשון בבוקר, ואלון שיקם בעצמו את ה־statefulset. ב־25 באוגוסט נעילה של המערכת בכל המחלקות נבעה מאבטחת מידע. ב־1 בספטמבר הגיעו עשרים טאבלטים להקשחה, וב־14 בספטמבר הם הגיעו לרופאי המיון.
ב־9 בספטמבר אליס נכנסה לתוך עמוד המטופל, בשלב ראשון כשהיא כבויה, יחד עם טיפול נמרץ לב. ב־13 בספטמבר הגיעה למרכז הודעה של מנהל פנימית שהמכתבים קצרים, ברורים וכמעט לא דורשים תיקון. ב־15 בספטמבר, לפי אלון, הוכרזה פריסה לכל בית החולים. ב־16 בספטמבר תוקנה השרשרת כך ש־SmartER בפרוד מדבר עם AI Flows ו־Wildfire בפרוד. ב־6 באוקטובר, בדיילי מוקלט, סוכם שהפילטרים של המשתמש גוברים על אלה של המערכת במנגנון המעקב של Wildfire, ושקבצי הפרומפט נקראים לפי ה־node שלהם.
בית החולים עובר מקמיליון 5 לקמיליון 9, והכיוון הוא שהמוצרים של המרכז ייפתחו מתוך קמיליון ולא לצדו. הוגדרו שלושה כפתורים: Scribe, SmartER לקבלה ולשחרור, ואליס. ב־4 באוקטובר גיא מיפה אילו שדות בקמיליון ממלאים בכל סוג של קבלה ושחרור, כי הספק ביקש מיפוי מדויק לפני שייתן ממשק כתיבה, ויוסף בנה לצוות אתר קטן שמראה את הקשרים בין הטבלאות כדי להשלים מזהים חסרים. ב־15 באוקטובר, בחפיפה עם טהר, יוסף הראה ששדה לא מזוהה רק לפי מספר: אותו שדה תלוי באגף, בסוג הרשומה ובתצוגה, ומיון מבוגרים ומיון ילדים לא ממופים אותו דבר. גיא הבהיר באותו יום ששחרור ממיון מבוגרים נדרש בתיקיית מעקב אחרת משדה הטקסט, וחגי הציע להתחיל במיון ילדים.
ב־11 באוקטובר נקבע בישיבה כיוון המימוש: הזדהות בשם הרופא דרך Keycloak, שלושה נתיבים, אחד להזדהות, אחד לפתיחת הממשק ואחד לדגימת סטטוס לפי מזהה עבודה, וקומפוננטת תצורה שמקשרת כל פעולה למכתב ולשדות היעד בקמיליון. דגימת המוכנות מתייחסת לשליחה שהרופא אישר, ולא רק לסיום היצירה. הכתיבה לקמיליון היא הוספה בלבד, כלומר מחיקה אצל המרכז לא מוחקת שם. בישיבה יוסף העלה את שאלת חשיפת הסוד בדפדפן ואת פתיחת הסשן מחדש, ויערה דרשה זהות והרשאות של רופא. מ־13 ועד 16 באוקטובר טהר, גיא ורפאל מימשו את הצד של המרכז, יאיר והדבאופס הרימו את פתרון ההתחזות ב־Keycloak, ונפתח חוק בחומת האש. ב־18 באוקטובר בבוקר הכפתורים עוד לקחו פרמטרים מדוגמת התיעוד במקום מהעמוד, וטהר וגיא תיקנו; אלון מיקד את ההדגמה בפנימית. אחר הצהריים הדמו למנכ״ל הצליח: נכתבה קבלה לקמיליון ונפתח חלון של אליס מתוך קמיליון. מכתב שחרור לא הוצג. שחר ייחס את עבודת סוף השבוע לגיא, לטהר ולרפאל. לפי גיא באותו ערב, המנכ״ל מבקש שהמערכת תיכנס לכל בית החולים, וזה הופך את שאלת הסקייל לדחופה.
הסקייל וההערכה: מאתיים ושלושים מחלקות
יש בבית החולים בערך מאתיים ושלושים מחלקות, ולכל אחת צריך מסך משלה וגם משימות משלה. מחלקת עיניים לא רוצה מה שקרדיולוגיה רוצה, וכל אחת מסתכלת על נתונים אחרים. היום הקמת מחלקה לוקחת כמה ימים של עבודת מפתח, לא כי זה קשה אלא כי צריך לשנות קבצים, להעתיק מבנים בין מחלקות, לפתוח בקשות מיזוג ולהפעיל משימות ביד, ובכל שלב קל לטעות. לכן טהר בנה את ה־wizard: בוחרים מחלקה מתוך רשימת המחלקות, מגדירים מה יופיע על המסך ואילו נתונים היא צריכה, ומחברים אליה מכתבים מתוך AI Flows וה־Playground. הכוונה היא להוריד הקמה של מחלקה מיומיים ליום, ושמנהל הטמעה בתוך המחלקות יוכשר להשתמש בו. ב־2 באוקטובר גיא דרש לקדם את ה־wizard לבטא; בתחילת אוקטובר הוא היה בנוי אבל עוד לא בפרוד.
השאלה הפתוחה הגדולה עלתה בערב שאחרי הדמו של 18 באוקטובר, כשאלת תכנון. מחלקה היא לא מזהה מחלקה. אי אפשר להעתיק תצורה ממחלקה אחת לשנייה, להחליף את המספר ולצפות שזה יעבוד, כי התצורה כוללת את מיפוי השדות, את הפרומפט ואת השאילתה, ולפעמים היא שונה גם בין שתי פנימיות. מצד שני, אדם אחד לא יכול לכתוב ולתחזק מאות פרומפטים. נועה הציעה להרחיב את בניית ההגדרות דרך אנשי המחלקות, והוצעו גם שירות עצמי וסוכני קוד. נקבעו שני מוקדים: שליפה של המידע הרלוונטי מאיתן בסקייל, ופירוק של התוצר לשדות ומיפוי שלהם, יחד עם התאמת הפרומפט והשאילתה. הפנימיות והילדים קודם, והכירורגיה בהמשך. נאמר גם שצריך לעבור עם רופאים על התוצרים עצמם, והוצעה בדיקה של כשלושים מטופלים במקביל; זו דרישת בדיקה, עדיין לא תוצאה.
נושא שני הוא ההערכה. הדאטה סיינס צריכים שאותה שאילתה תשמש גם את הפרוד וגם את ההערכה. בפרוד נקודת הייחוס היא עכשיו; בהערכה חותכים את כל המידע לנקודת הזמן של המכתב הנבדק, כדי שמכתב השחרור עצמו, או בדיקה שחזרה אחריו, לא ידלפו לקלט. חיתוך של הביקור הנוכחי בלבד לא מספיק, כי גם מעבדה ודימות צריכים להיעצר באותו תאריך; מצד שני לא נדרש לשחזר מידע שנערך או נמחק בעבר. הדרישה נוסחה בדיון של גיא ויוסף ב־11 באוקטובר. שי הוסיף תמיכה בתאריכים יחסיים שנפתרים בכל בקשה, ויוסף ביקש שיעוגנו לתאריך הכניסה של הביקור. ב־13 באוקטובר נוספה ברירת מחדל של עכשיו, והיא בבטא; המעבר לפילטרים החדשים שבר באותו יום שאילתות של צרכנים קיימים, ולכן הבדיקה מול כל הצרכנים היא חלק מהדרישה. החיתוך המלא עדיין לא נסגר, והדאטה סיינס מחכים לו מספטמבר.
מה פתוח, ומה ממליץ הסוכן
אלה הבעיות הפתוחות לפי התיעוד, מהקרובה לרחוקה:
- ההתאמה למחלקות. ה־wizard צריך להגיע לפרוד, ההגדרות צריכות לעבור מאובייקטי Python ל־JSON, וצריך להחליט איך נראית התאמה של מחלקה ומי מאשר אותה.
- מסלול הנתונים. רשימת המטופלים עוקפת את רוזטה, וההפניות מגיעות מ־Ada בנתיב נפרד. השליפות מאיתן לא יציבות בעומס, ובערב של 18 באוקטובר שוב היו בהן כשלים. המעבר לקמיליון 9 דורש למפות מחדש חלקים גדולים, בזמן שגם הנתונים במקור לא תמיד עקביים.
- הכתיבה לקמיליון. המסלול עבד בדמו, אבל עדיין לא נסגר חוזה מלא: מה קורה כשהחלון נפתח שוב, איך נמנעת שליחה כפולה, מה קורה עם מכתב שכבר בתהליך, ואיך מכתב השחרור עובר באותו מסלול. חלק מהעבודה תלוי בפריסה בצד של הספק.
- ההערכה. אותה שאילתה לפרוד ולהערכה, עם חיתוך זמן מלא, ובדיקה שאף צרכן קיים לא נשבר.
- עריכה מול רענון. מסך שמתעדכן מעצמו הוא לא מסך עריכה בטוח. המנגנון שתוכנן ב־1 ביולי קיים בתכנון; לא נמצא בתיעוד כמה ממנו מומש.
- יציבות ותפעול. הימים הקשים של SmartER כמעט אף פעם לא נבעו מהמודלים. הם נבעו מתשתית: חסימות של אבטחת מידע, נפילות של מונגו, רפליקה של קמיליון שנחסמה. בסיכום התקלות של 17 בספטמבר עמדו כארבעים תקלות פתוחות משבועות קודמים. אין כוננות ואין התראות מסודרות, והטרייסינג לא גמור: לחיצה על טרייס מכלי המפתחים נכשלה במשך שבועות, ונשמרים טרייסים ליום בעוד הממשק מציג חודש.
- מדידה. אין עדיין מחקר שמודד תוצאה קלינית או זמן שנחסך. יש עדויות טובות מהשטח ומדדי שימוש, אבל השאלה שנכתבה ביום ההשקה עדיין פתוחה.
- הבעלות והעתיד של TMR. לא התקבלה החלטה אם TMR הופך לפלטפורמה גנרית שמחלקות, ואולי בתי חולים אחרים, מוגדרים מעליה, או שחלקים ממנו נכתבים מחדש ומופרדים לשירותים; בפועל ההפרדה כבר קורית חלק אחרי חלק. לסטודיו ולפלייגראונד עדיין אין בעלים קבועים; ב־14 בספטמבר יערה העמידה את השאלה בפני הצוות, ושם לא נקבע. ומעט אנשים מכירים את התכנון של TMR לעומק, וזו אותה בעיה שיש ברוזטה.
להערכת הסוכן, ההתאמה למחלקה צריכה להיות נתונים ולא קוד: היא נשמרת ב־wizard, יש לה הערכה משלה, והיא לא עולה לפרוד בלי שעברה אותה, בהמשך לכלל של 17 ביולי. כך השאלה מי כותב את ההתאמה, מפתח, איש מוצר או רופא במחלקה, מפסיקה להיות שאלה של ארכיטקטורה ונהיית שאלה של הרשאות ותהליך. להערכת הסוכן גם עלות המודלים בפריסה מלאה, שלפי גיא היא רוב העלות, תלויה בעיקר באופן הקריאה להם: מתי מריצים מחדש, כמה קלט שולחים ובאיזה מודל. זה ניסיון שעוד לא נעשה, והוויכוח על הטריגרים מנובמבר 2025 מראה שהשאלה ישנה.
המלצת הסוכן לסדר ההמשך: ראשית, בדיקה אוטומטית אחת של השרשרת כולה, מחלקה, משימת WSP, digest, יצירת מכתב והופעה שלו בממשק עם האסמכתאות, כפי שיוסף ביקש ב־28 באפריל. שנית, שרשימת המטופלים ושאר השליפות הישירות יעברו דרך רוזטה, כדי שיהיה מקור אמת אחד ובדיקות חוזה אחת. שלישית, ה־wizard בפרוד, עם הערכה לכל מחלקה כתנאי לעלייה. רביעית, טרייסים שמובילים להתראה ולכוננות ולא רק לדיבוג בדיעבד.
חזרה לתשובות · המרכז והדרך · רוזטה ו־Wildfire · סמי, ה־managers ו־AI Flows · אליס והצ׳אט · הפלטפורמה · מקורות המידע · מה קורה עכשיו