From 3fbfccb799c19522ffd54ba4c039eba9b17a8c1c Mon Sep 17 00:00:00 2001 From: Marwan Alwali Date: Thu, 6 Nov 2025 23:08:02 +0300 Subject: [PATCH] update --- .../appointments/appointment_calendar.html | 9 +- db.sqlite3 | Bin 8699904 -> 8699904 bytes logs/django.log | 540 ++++++++++++++++++ .../signature_000051_20251106_155937.png | Bin 0 -> 29149 bytes slp/__pycache__/forms.cpython-312.pyc | Bin 23259 -> 23263 bytes slp/forms.py | 4 +- 6 files changed, 546 insertions(+), 7 deletions(-) create mode 100644 media/consents/signatures/signature_000051_20251106_155937.png diff --git a/appointments/templates/appointments/appointment_calendar.html b/appointments/templates/appointments/appointment_calendar.html index abdae55d..7c9b1f81 100644 --- a/appointments/templates/appointments/appointment_calendar.html +++ b/appointments/templates/appointments/appointment_calendar.html @@ -450,11 +450,10 @@ // Date select (for quick booking) select: function(info) { {% if user.role in 'ADMIN,FRONT_DESK' %} - showConfirmModal('{% trans "Book an appointment for" %} ' + info.startStr + '?', '{% trans "Confirm Booking" %}').then((confirmed) => { - if (confirmed) { - var url = '{% url "appointments:appointment_create" %}' + - '?date=' + info.startStr.split('T')[0] + - '&time=' + info.startStr.split('T')[1].substring(0, 5); + if (confirm('{% trans "Book an appointment for" %} ' + info.startStr + '?')) { + var url = '{% url "appointments:appointment_create" %}' + + '?date=' + info.startStr.split('T')[0] + + '&time=' + info.startStr.split('T')[1].substring(0, 5); window.location.href = url; } {% endif %} diff --git a/db.sqlite3 b/db.sqlite3 index fdc6df4e6ede40c139b56d48c20f3a5173fc844f..253675310c30c85c8ee83be88c22e8bbbf1cefde 100644 GIT binary patch delta 3145 zcmdtkYj9Ip9RTp$N0K&e5@?~6mZd3e<&h?PZ|*BMEhR~tw4qHONt@Cv(B3pjn?91h z6UsuHvJ#8qia2-{!Pz=G`bF18UGIz|ZrPpD9nc*ZAGiy<=+5W|7zJI&I=jy3Kkdp> zR(B`R_(6^T+2Ym~KGXemrv8Cs-imKLm{5HZSk-oZEifiS8aNWDx5xY{AtEfbhp z$&p?YhL*(%!$!Z$7x2`(dj0LLdXL*vZ_GYJ*qpvxKKD~%@H0fMs$EvMlL=g-no+gq z{5t2=oD=f;b>tP|^j(HTO98SRt3~VUja699>YscuK-QljR>%oieV6a23oYyO!g7nXLt(DzoY$<(L&iM3htYEi`63V*o6mP_~e<@%nKAp3CQuT zHdW0V?!UrVIhM}*k8kjTC|Kp+zpK4SJkSQi!0jisVPQBibM<{K&;dPI2iAiEPzW}F zji3l@0>xl6C;_El3wQ=>1!ceh%H^x?Z)51ve9VsLS88X~iky9#4|11uKT-`VHxt+J z1?+VB?lRf1j>NGY3wv}*?+aQ7H!wIYM8o4;JUJYT&&&*ua{|Q-kEd8MCQ&gO{j;#* zim!=pOxY}l2Et6-XNm};Ep6>Vsb?tYbRQDNg_ih0Z~c_BGu}NRIsMaPsh)eG5>}%q z*f`ECvLeTE3qCEh%Q#TnTw$0qNA{)yLqn5o1GA0}Ut4diZ8&6Vb=>}-EZ7#)jxCY$LnGbl;@Y;UZ2C>0D2PK}Ru><#jv`qbojaCodf z;Y#|u!UI$=W$N#0Zgp9uhEz|~+Y;=gyJm;lW+EePvAIyd;uiwZE{_zNj#@g!1}8NQ z(Lf`JLgbfV2aJUt%vcMLbTHcj+RQNC7KVam_R*SQq>Q#zNdF;s}UwG{HS zan#8}=87+4rTMzgDfDmZKhQ_@pVl|(cj&*a&(+=1UDka|hpsMZP_$>;${yOLayYMjlYSr$9^dVlgt1AF9KPJ79>v3{hyYkv#tkl(&*FUGMr8p9n!yQ&B;{{)f~U+Iev5R@te&*xYU;{`=d4H}_ z4l12i2A!W%R?7dNye1Ocf;vKEG4k!4tCD}UeU8R5FY#W`3fe$B=m0+82c4h`1VFd^ z62EWq=z3`We)m{`wjk;H%yTI5-Gze8;%oar4+zSOuRV8omN-TFkeb>rljH%o`Z2YC zST@o7tB4{Eu?d&Lqp>(vd;hW~Gsx}-2f#tl3;KWrLZDwBWW(oflf8I}0-4vPx>4_v zWgxo&c4ElBEmDQ8tbT4Lye$HvU;qq)7#IS>U<8bUI7omoFb*cbB$xuzUX3LKKd z+h&*EBZA~IIy=_kIo*DE2sYDlL-)(s^%fKX>D*s8zY!Sni420wvrt@)P6f% zl=+A}44wx^z)>&<=H-vbwC1uJSG}dk^Q)jr$2YT87O6%SbBr6k4u|PPw{f#$(~-2c zES=2F^?IK+ksp~WYu%wltCfDz6Ol!)Ur+DJ_ev85Nrmd35+E?j2opZ?__T5=@@1~<9E^_-T zoXlBP{X$6)Om7HU!VwHXGz{{4L||0VyF>L1EY9E18kUZ_Xk`OVBU(XvqU ha2@wks6es8y&P7$?$Pv$q>mSztCh&VjJ{Ca^Dm;&>45+M delta 1627 zcmZ|PZA?>F7zgm)d(Ul4UwP9ZIxTOCl-AqZUP|l4@-nnywTPfahKPU#Rz=0>V3VTE zPL?>vhQ~#gvCZt08d)^wizeVcY{AUnTxN8>&1HU&EMwES#VpzWmBnmXmfYX{aGvv= z=gB$e-e~k)5`}?ueo5~;^Gfg@ZTQWq_Rh5n9-e-*l+4y}kB!Sz^EowMyUAy2cH zYQ_XN^Nk6dCLS&%3JKUK*JI9L!(RyDHwCYHm}!D!2d~zCt39LbXGw{~LTIptgr8Y4VdmcXcG5n2B6?L{?Y@v_dr&5$jvT{=dsdJrR*cdUXp}N}l+ONaF3% zhK{uL^lNFkn^_V`T>_0Bj%3GDydtPU16oJ`9q7TpQoP2p4;L$5Ny1~7WT#Z%>5wH^ zu{j(zsleiR8j=;e!=WfH2aR4g9<^f7IWu2!D;}9U`|kwAoRZxkxm^wyExuvgm#tICNM)HBtbHy zKq}0F+3*~s!5m13xiAl&hxxDoEReyj+|G15()IihZ^$-wX;j*cx_b#Drt|7{agK0} zABrF0US4}(xls)C8H?$5dzOX%nUXcRYNhO{^ll4RR77gqsyl7%m7&H^IJBoCSlQXJ zv$h~ovvuwEX6KqvS9_qfrDSK|*;csYyX|s%71>^(I139Eb}c2#W>D)*Z7TC1Ggz`b zrkU#(ZHEQpY<)_WBzq|(Pu5=F4By3 z`!iT>v9*$;?wYdIG^x~@6MIl%g?zAq9hQIu4v@hKE>NHV+)xM}@WN7f0hU1#EN2f& zeCemSMk-GGzT~RdsYPcWhcvW=<9a&jEOuq?LXK;68_5N~L0V`R(-~Z_$vV~Kr=-5bY zA@xoA`$_!6V3#NT)q3tO9bZf4G2cypKTmbViiytdmgSi4jvrP*1=HPG{UpdWQ&9?h zrEYS$uZrjR^{nc< z-ccfQ`ec>{}'.format( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +KeyError: '"Objective 1"' +ERROR 2025-11-06 18:57:38,095 basehttp 68971 6129987584 "GET /en/slp/progress-reports/create/?patient=df734462-465a-4e95-a839-0789c1c24c3c HTTP/1.1" 500 111969 +INFO 2025-11-06 18:58:23,722 autoreload 68971 8426217792 /Users/marwanalwali/AgdarCentre/slp/forms.py changed, reloading. +INFO 2025-11-06 18:58:24,290 autoreload 4877 8426217792 Watching for file changes with StatReloader +INFO 2025-11-06 18:58:31,324 basehttp 4877 6130331648 "GET /en/slp/progress-reports/create/?patient=df734462-465a-4e95-a839-0789c1c24c3c HTTP/1.1" 200 40047 +INFO 2025-11-06 18:58:31,356 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 18:58:40,508 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 18:58:42,468 basehttp 4877 6130331648 "GET /en/slp/interventions/create/?patient=df734462-465a-4e95-a839-0789c1c24c3c&previous=292caf4d-8a30-4216-807d-b51bfc26c48e HTTP/1.1" 302 0 +INFO 2025-11-06 18:58:42,500 basehttp 4877 6130331648 "GET /en/patients/df734462-465a-4e95-a839-0789c1c24c3c/?tab=consents&missing=GENERAL_TREATMENT,SERVICE_SPECIFIC HTTP/1.1" 200 56856 +INFO 2025-11-06 18:58:42,526 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 18:59:00,636 basehttp 4877 6130331648 "GET /en/consents/create/ HTTP/1.1" 200 48041 +INFO 2025-11-06 18:59:00,781 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 18:59:19,258 basehttp 4877 6130331648 "GET /api/consent-content/?patient_id=b480432c-b0fc-46c2-9b4b-780a36f6bfbc&consent_type=SERVICE_SPECIFIC HTTP/1.1" 200 824 +INFO 2025-11-06 18:59:30,778 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 18:59:37,912 signals 4877 6130331648 Consent created: SERVICE_SPECIFIC for patient 000051 +INFO 2025-11-06 18:59:37,913 basehttp 4877 6130331648 "POST /en/consents/create/ HTTP/1.1" 302 0 +INFO 2025-11-06 18:59:37,932 basehttp 4877 6130331648 "GET /en/patients/b480432c-b0fc-46c2-9b4b-780a36f6bfbc/ HTTP/1.1" 200 48259 +INFO 2025-11-06 18:59:37,962 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:00:00,005 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 19:00:00,005 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 16:00:00.005804+00:00'} +INFO 2025-11-06 19:00:00,010 tasks 76869 8426217792 Lab results sync started +INFO 2025-11-06 19:00:00,010 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 16:00:00.010465+00:00'} +INFO 2025-11-06 19:00:00,793 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:00:03,152 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:00:12,539 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:00:42,543 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:01:12,536 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:01:42,542 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:02:12,542 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:02:42,541 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:03:12,531 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:03:42,541 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:04:12,531 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:04:42,540 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:05:12,528 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:05:42,542 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:06:12,539 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:06:29,850 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +ERROR 2025-11-06 19:06:29,904 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +INFO 2025-11-06 19:06:43,221 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:07:13,214 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:08:09,206 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:08:42,119 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +ERROR 2025-11-06 19:08:42,168 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +INFO 2025-11-06 19:09:09,215 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:10:09,209 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:10:54,115 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:10:59,324 basehttp 4877 6130331648 "GET /en/consents/create/ HTTP/1.1" 200 48041 +INFO 2025-11-06 19:10:59,367 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:11:02,159 basehttp 4877 6130331648 "GET /en/consents/ HTTP/1.1" 200 86288 +INFO 2025-11-06 19:11:02,201 basehttp 4877 6130331648 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:11:04,758 basehttp 4877 6130331648 "GET /en/consents/2f9540ef-0e8f-4821-ad18-31911417897e/ HTTP/1.1" 200 35168 +INFO 2025-11-06 19:11:04,786 basehttp 4877 6130331648 "GET /media/consents/signatures/signature_000051_20251106_155937.png HTTP/1.1" 200 29149 +INFO 2025-11-06 19:11:04,788 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:11:32,216 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:12:02,215 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:12:32,203 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:12:38,216 tasks 70301 8426217792 Appointment b7386e99-0cbb-420c-9fa8-13a2200e5715 not found +ERROR 2025-11-06 19:12:38,217 tasks 76869 8426217792 Appointment b5a77fcd-5a4b-4e96-9a68-fd3018073de1 not found +ERROR 2025-11-06 19:12:38,245 tasks 70301 8426217792 Appointment 44c813f5-d675-48c6-b0de-229c3457aacb not found +INFO 2025-11-06 19:12:38,247 tasks 76869 8426217792 Reminder sent for appointment 0af2bea2-bd7c-4b81-8815-6c0ea6bb78ab +ERROR 2025-11-06 19:12:38,254 tasks 70301 8426217792 Failed to send multi-channel notification: User matching query does not exist. +INFO 2025-11-06 19:13:02,216 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:13:32,215 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:13:38,262 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +INFO 2025-11-06 19:14:02,215 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:14:32,213 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:14:38,279 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +INFO 2025-11-06 19:15:02,216 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:15:32,216 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:15:34,730 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +ERROR 2025-11-06 19:15:34,741 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +ERROR 2025-11-06 19:15:34,858 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +ERROR 2025-11-06 19:15:38,287 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +INFO 2025-11-06 19:16:02,210 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:16:32,215 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:17:02,217 basehttp 4877 6147158016 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:18:51,249 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +ERROR 2025-11-06 19:20:19,286 tasks 70301 8426217792 Appointment 236f3e70-6d16-466f-a04f-eaf12cee9ba2 not found +ERROR 2025-11-06 19:20:19,286 tasks 76869 8426217792 Appointment c61467c7-19c0-454f-9b46-9b011f167dbf not found +INFO 2025-11-06 19:30:00,009 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 19:30:00,009 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 16:30:00.009742+00:00'} +INFO 2025-11-06 19:30:00,015 tasks 76869 8426217792 Lab results sync started +INFO 2025-11-06 19:30:00,015 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 16:30:00.015899+00:00'} +ERROR 2025-11-06 19:33:38,397 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +ERROR 2025-11-06 19:36:29,820 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +ERROR 2025-11-06 19:36:29,875 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +ERROR 2025-11-06 19:38:41,118 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found +ERROR 2025-11-06 19:38:42,067 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found +ERROR 2025-11-06 19:38:42,114 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found +ERROR 2025-11-06 19:39:38,839 tasks 70301 8426217792 Appointment 44c813f5-d675-48c6-b0de-229c3457aacb not found +INFO 2025-11-06 19:39:38,842 tasks 76869 8426217792 Reminder sent for appointment 0af2bea2-bd7c-4b81-8815-6c0ea6bb78ab +ERROR 2025-11-06 19:39:38,850 tasks 70301 8426217792 Failed to send multi-channel notification: User matching query does not exist. +ERROR 2025-11-06 19:40:38,856 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +ERROR 2025-11-06 19:40:47,481 tasks 70301 8426217792 Appointment c61467c7-19c0-454f-9b46-9b011f167dbf not found +ERROR 2025-11-06 19:40:47,481 tasks 76869 8426217792 Appointment 236f3e70-6d16-466f-a04f-eaf12cee9ba2 not found +ERROR 2025-11-06 19:41:38,872 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +ERROR 2025-11-06 19:42:38,881 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +ERROR 2025-11-06 19:44:19,147 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +ERROR 2025-11-06 19:45:34,677 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +ERROR 2025-11-06 19:45:34,687 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +ERROR 2025-11-06 19:45:34,804 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +ERROR 2025-11-06 19:48:51,195 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found +INFO 2025-11-06 19:51:57,918 autoreload 30551 8426217792 Watching for file changes with StatReloader +INFO 2025-11-06 19:52:02,197 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 302 0 +INFO 2025-11-06 19:52:02,208 basehttp 30551 6137442304 "GET /en/accounts/login/?next=/en/notifications/api/unread-count/ HTTP/1.1" 200 18834 +INFO 2025-11-06 19:52:09,582 basehttp 30551 6137442304 "GET /en/consents/ HTTP/1.1" 302 0 +INFO 2025-11-06 19:52:09,588 basehttp 30551 6137442304 "GET /en/accounts/login/?next=/en/consents/ HTTP/1.1" 200 18812 +INFO 2025-11-06 19:52:09,600 basehttp 30551 6137442304 "GET /static/img/logo/tenhal_logo.png HTTP/1.1" 200 8513 +INFO 2025-11-06 19:52:14,758 basehttp 30551 6137442304 "GET /en/accounts/login/?next=/en/consents/ HTTP/1.1" 200 18812 +INFO 2025-11-06 19:52:16,136 basehttp 30551 6137442304 "POST /en/accounts/login/ HTTP/1.1" 302 0 +INFO 2025-11-06 19:52:16,155 basehttp 30551 6137442304 "GET /en/consents/ HTTP/1.1" 200 86288 +INFO 2025-11-06 19:52:16,193 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:52:17,505 basehttp 30551 6137442304 "GET /en/consents/ HTTP/1.1" 200 86288 +INFO 2025-11-06 19:52:17,548 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:52:26,752 basehttp 30551 6137442304 "GET /en/dashboard/ HTTP/1.1" 200 54170 +INFO 2025-11-06 19:52:26,783 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:52:30,619 basehttp 30551 6137442304 "GET /en/finance/invoices/create/ HTTP/1.1" 200 59649 +INFO 2025-11-06 19:52:30,654 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:52:56,798 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +WARNING 2025-11-06 19:53:00,119 log 30551 6137442304 Not Found: /en/invoice/ +WARNING 2025-11-06 19:53:00,119 basehttp 30551 6137442304 "GET /en/invoice/ HTTP/1.1" 404 23394 +WARNING 2025-11-06 19:53:04,510 log 30551 6137442304 Not Found: /en/invoices/ +WARNING 2025-11-06 19:53:04,510 basehttp 30551 6137442304 "GET /en/invoices/ HTTP/1.1" 404 23397 +WARNING 2025-11-06 19:53:08,938 log 30551 6137442304 Not Found: /en/invoices/ +WARNING 2025-11-06 19:53:08,939 basehttp 30551 6137442304 "GET /en/invoices/ HTTP/1.1" 404 23397 +INFO 2025-11-06 19:53:25,049 basehttp 30551 6137442304 "GET /en/finance/invoices/ HTTP/1.1" 200 63344 +INFO 2025-11-06 19:53:25,110 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:53:27,616 basehttp 30551 6137442304 "GET /en/finance/invoices/462f1f5d-e473-47e9-8dc5-932a527e8d47/ HTTP/1.1" 200 34792 +INFO 2025-11-06 19:53:27,654 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:53:32,701 basehttp 30551 6137442304 "GET /en/finance/invoices/462f1f5d-e473-47e9-8dc5-932a527e8d47/pdf/?print=true HTTP/1.1" 200 63825 +INFO 2025-11-06 19:53:57,663 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:54:00,335 basehttp 30551 6137442304 "GET /en/settings/ HTTP/1.1" 200 41993 +INFO 2025-11-06 19:54:00,368 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:54:01,891 basehttp 30551 6137442304 "GET /en/settings/ZATCA/ HTTP/1.1" 200 37074 +INFO 2025-11-06 19:54:01,931 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:54:08,268 basehttp 30551 6137442304 "GET /en/settings/ HTTP/1.1" 200 41993 +INFO 2025-11-06 19:54:08,298 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:54:20,631 basehttp 30551 6137442304 "GET /en/settings/NPHIES/ HTTP/1.1" 200 34507 +INFO 2025-11-06 19:54:20,668 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:54:38,313 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:55:08,304 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:55:38,313 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:55:43,837 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found +INFO 2025-11-06 19:56:08,314 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:56:22,585 tasks 70301 8426217792 Appointment 44c813f5-d675-48c6-b0de-229c3457aacb not found +INFO 2025-11-06 19:56:22,588 tasks 76869 8426217792 Reminder sent for appointment 0af2bea2-bd7c-4b81-8815-6c0ea6bb78ab +ERROR 2025-11-06 19:56:22,596 tasks 70301 8426217792 Failed to send multi-channel notification: User matching query does not exist. +INFO 2025-11-06 19:56:38,313 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:57:08,303 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:57:22,608 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +ERROR 2025-11-06 19:57:25,771 tasks 70301 8426217792 Appointment 236f3e70-6d16-466f-a04f-eaf12cee9ba2 not found +ERROR 2025-11-06 19:57:25,771 tasks 76869 8426217792 Appointment c61467c7-19c0-454f-9b46-9b011f167dbf not found +INFO 2025-11-06 19:57:38,314 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:58:08,313 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:58:22,624 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +INFO 2025-11-06 19:58:38,314 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 19:59:08,303 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 19:59:22,639 tasks 76869 8426217792 Failed to send multi-channel notification: User matching query does not exist. +INFO 2025-11-06 19:59:38,313 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 20:00:00,017 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 20:00:00,017 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 17:00:00.017415+00:00'} +INFO 2025-11-06 20:00:00,024 tasks 76869 8426217792 Lab results sync started +INFO 2025-11-06 20:00:00,024 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 17:00:00.024474+00:00'} +INFO 2025-11-06 20:00:08,315 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 20:00:38,313 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 20:01:06,284 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 20:01:31,945 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 20:05:18,778 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 20:20:58,364 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 20:36:26,439 tasks 76869 8426217792 Lab results sync started +INFO 2025-11-06 20:36:26,439 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 17:36:26.439283+00:00'} +INFO 2025-11-06 20:36:26,443 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 20:36:26,443 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 17:36:26.443238+00:00'} +INFO 2025-11-06 20:37:48,783 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 20:53:47,760 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 21:10:48,220 tasks 76869 8426217792 Lab results sync started +INFO 2025-11-06 21:10:48,220 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 18:10:48.220588+00:00'} +INFO 2025-11-06 21:10:48,224 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 21:10:48,225 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 18:10:48.225024+00:00'} +ERROR 2025-11-06 21:10:50,723 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +INFO 2025-11-06 21:43:50,791 tasks 76869 8426217792 Lab results sync started +INFO 2025-11-06 21:43:50,791 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 18:43:50.791305+00:00'} +INFO 2025-11-06 21:43:50,795 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 21:43:50,795 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 18:43:50.795844+00:00'} +INFO 2025-11-06 21:48:07,348 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:02:40,707 tasks 70301 8426217792 Lab results sync started +INFO 2025-11-06 22:02:40,708 tasks 70301 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 19:02:40.708084+00:00'} +INFO 2025-11-06 22:02:40,711 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 22:02:40,712 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 19:02:40.712037+00:00'} +INFO 2025-11-06 22:13:36,981 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:14:38,011 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:15:03,634 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +ERROR 2025-11-06 22:15:03,689 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +INFO 2025-11-06 22:18:30,303 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:18:34,821 basehttp 30551 6137442304 "GET /en/dashboard/ HTTP/1.1" 200 54170 +INFO 2025-11-06 22:18:34,853 basehttp 30551 6137442304 "GET /media/tenant_settings/2025/11/04/Agdar-Logo.png HTTP/1.1" 304 0 +INFO 2025-11-06 22:18:34,912 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:18:42,588 basehttp 30551 6137442304 "GET /en/finance/payers/ HTTP/1.1" 200 71308 +INFO 2025-11-06 22:18:42,628 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:18:48,631 basehttp 30551 6137442304 "GET /en/patients/3ed8901f-686b-468a-b7a1-acc1e64a23ec/ HTTP/1.1" 200 55448 +INFO 2025-11-06 22:18:48,660 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:19:10,672 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:19:13,575 basehttp 30551 6137442304 "GET /en/hr/schedules/ HTTP/1.1" 200 96609 +INFO 2025-11-06 22:19:13,608 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:19:16,517 basehttp 30551 6137442304 "GET /en/hr/schedules/create/ HTTP/1.1" 200 30469 +INFO 2025-11-06 22:19:16,553 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:19:25,207 basehttp 30551 6137442304 "GET /en/finance/packages/ HTTP/1.1" 200 36253 +INFO 2025-11-06 22:19:25,226 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:19:34,921 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:20:04,985 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:20:32,203 tasks 70301 8426217792 Appointment b7386e99-0cbb-420c-9fa8-13a2200e5715 not found +ERROR 2025-11-06 22:20:32,203 tasks 76869 8426217792 Appointment b5a77fcd-5a4b-4e96-9a68-fd3018073de1 not found +ERROR 2025-11-06 22:20:32,256 tasks 70301 8426217792 Appointment b7386e99-0cbb-420c-9fa8-13a2200e5715 not found +ERROR 2025-11-06 22:20:32,256 tasks 76869 8426217792 Appointment b5a77fcd-5a4b-4e96-9a68-fd3018073de1 not found +INFO 2025-11-06 22:20:34,975 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:21:04,984 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:21:34,984 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:22:04,982 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:22:34,982 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:23:04,984 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:23:34,976 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:23:48,762 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +INFO 2025-11-06 22:24:04,983 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:24:34,984 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:25:04,981 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:25:34,985 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:26:04,985 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:26:09,297 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +INFO 2025-11-06 22:26:34,985 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:27:04,984 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:27:24,824 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +ERROR 2025-11-06 22:27:24,833 tasks 70301 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +ERROR 2025-11-06 22:27:24,949 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +INFO 2025-11-06 22:27:34,985 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:28:04,984 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:28:34,982 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:29:04,982 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:29:34,983 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:30:00,008 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 22:30:00,009 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 19:30:00.009813+00:00'} +INFO 2025-11-06 22:30:00,014 tasks 76869 8426217792 Lab results sync started +INFO 2025-11-06 22:30:00,014 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 19:30:00.014831+00:00'} +INFO 2025-11-06 22:30:05,303 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:30:35,293 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:30:41,342 tasks 76869 8426217792 Appointment b5a77fcd-5a4b-4e96-9a68-fd3018073de1 not found +ERROR 2025-11-06 22:30:41,342 tasks 70301 8426217792 Appointment b7386e99-0cbb-420c-9fa8-13a2200e5715 not found +ERROR 2025-11-06 22:31:00,580 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found +INFO 2025-11-06 22:31:36,304 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:32:37,300 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:33:38,308 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:34:39,304 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:35:40,335 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:36:41,309 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:37:42,319 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:38:43,316 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:39:44,319 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:40:45,320 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:41:46,319 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:42:47,317 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:43:48,310 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:44:49,320 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:45:22,108 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found +ERROR 2025-11-06 22:45:28,523 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +INFO 2025-11-06 22:45:50,318 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:46:01,193 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found +INFO 2025-11-06 22:46:51,313 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:47:52,320 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:48:19,945 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found +ERROR 2025-11-06 22:48:20,004 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found +INFO 2025-11-06 22:48:53,313 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:49:15,241 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found +INFO 2025-11-06 22:49:54,310 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:50:12,788 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found +ERROR 2025-11-06 22:50:31,270 tasks 70301 8426217792 Appointment 236f3e70-6d16-466f-a04f-eaf12cee9ba2 not found +ERROR 2025-11-06 22:50:31,270 tasks 76869 8426217792 Appointment c61467c7-19c0-454f-9b46-9b011f167dbf not found +INFO 2025-11-06 22:50:55,305 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:51:56,309 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:52:57,310 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:53:48,773 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +INFO 2025-11-06 22:53:58,302 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:54:59,321 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 22:55:59,316 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 22:56:09,307 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found +INFO 2025-11-06 22:56:59,379 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:00:13,631 tasks 76869 8426217792 Lab results sync started +INFO 2025-11-06 23:00:13,632 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 20:00:13.632822+00:00'} +INFO 2025-11-06 23:00:13,635 tasks 76869 8426217792 Radiology results sync started +INFO 2025-11-06 23:00:13,635 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 20:00:13.635653+00:00'} +INFO 2025-11-06 23:00:13,656 tasks 70301 8426217792 ZATCA e-invoice submission for IAGDAR694854 +INFO 2025-11-06 23:00:13,656 tasks 76869 8426217792 ZATCA batch submission: 0 submitted, 20 failed +INFO 2025-11-06 23:00:13,670 tasks 70301 8426217792 ZATCA e-invoice submission for IAGDAR413063 +INFO 2025-11-06 23:00:13,671 tasks 76869 8426217792 ZATCA e-invoice submission for IAGDAR675756 +INFO 2025-11-06 23:00:13,679 tasks 70309 8426217792 ZATCA e-invoice submission for IAGDAR407503 +INFO 2025-11-06 23:00:13,680 tasks 70310 8426217792 ZATCA e-invoice submission for IAGDAR971131 +INFO 2025-11-06 23:00:13,680 tasks 70302 8426217792 ZATCA e-invoice submission for IAGDAR731922 +INFO 2025-11-06 23:00:13,682 tasks 70303 8426217792 ZATCA e-invoice submission for IAGDAR101831 +INFO 2025-11-06 23:00:13,684 tasks 70301 8426217792 ZATCA e-invoice submission for IAGDAR844758 +INFO 2025-11-06 23:00:13,683 tasks 70311 8426217792 ZATCA e-invoice submission for IAGDAR878182 +INFO 2025-11-06 23:00:13,684 tasks 70304 8426217792 ZATCA e-invoice submission for IAGDAR242596 +INFO 2025-11-06 23:00:13,686 tasks 70312 8426217792 ZATCA e-invoice submission for IAGDAR993799 +INFO 2025-11-06 23:00:13,688 tasks 76869 8426217792 ZATCA e-invoice submission for IAGDAR370417 +INFO 2025-11-06 23:00:13,685 tasks 70313 8426217792 ZATCA e-invoice submission for IAGDAR239702 +INFO 2025-11-06 23:00:13,688 tasks 70305 8426217792 ZATCA e-invoice submission for IAGDAR314903 +INFO 2025-11-06 23:00:13,689 tasks 70306 8426217792 ZATCA e-invoice submission for IAGDAR904123 +INFO 2025-11-06 23:00:13,690 tasks 70314 8426217792 ZATCA e-invoice submission for IAGDAR527643 +INFO 2025-11-06 23:00:13,692 tasks 70307 8426217792 ZATCA e-invoice submission for IAGDAR338723 +INFO 2025-11-06 23:00:13,692 tasks 70301 8426217792 ZATCA e-invoice submission for IAGDAR318547 +INFO 2025-11-06 23:00:13,693 tasks 70302 8426217792 ZATCA e-invoice submission for IAGDAR315317 +INFO 2025-11-06 23:00:13,694 tasks 70310 8426217792 ZATCA e-invoice submission for IAGDAR524770 +ERROR 2025-11-06 23:00:21,597 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found +ERROR 2025-11-06 23:00:21,608 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found +ERROR 2025-11-06 23:00:21,725 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found +INFO 2025-11-06 23:00:56,078 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:05:06,640 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:05:18,990 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:05:24,929 basehttp 30551 6137442304 "GET /en/dashboard/ HTTP/1.1" 200 54170 +INFO 2025-11-06 23:05:24,992 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:05:29,373 basehttp 30551 6137442304 "GET /en/appointments/0af2bea2-bd7c-4b81-8815-6c0ea6bb78ab/ HTTP/1.1" 200 43411 +INFO 2025-11-06 23:05:29,413 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:05:59,419 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:06:29,427 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:06:56,777 basehttp 30551 6137442304 "GET /en/notifications/api/dropdown/ HTTP/1.1" 200 1005 +INFO 2025-11-06 23:06:59,427 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:06:59,678 basehttp 30551 6137442304 "GET /en/notifications/inbox/ HTTP/1.1" 200 32772 +INFO 2025-11-06 23:06:59,715 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:07:03,936 basehttp 30551 6137442304 "GET /en/notifications/inbox/?filter=unread HTTP/1.1" 200 26882 +INFO 2025-11-06 23:07:03,974 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:07:05,246 basehttp 30551 6137442304 "GET /en/notifications/inbox/?filter=all HTTP/1.1" 200 32772 +INFO 2025-11-06 23:07:05,269 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:07:07,766 basehttp 30551 6137442304 "GET /en/notifications/inbox/?filter=unread HTTP/1.1" 200 26882 +INFO 2025-11-06 23:07:07,797 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:07:08,938 basehttp 30551 6137442304 "GET /en/notifications/inbox/?filter=read HTTP/1.1" 200 32772 +INFO 2025-11-06 23:07:08,971 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:07:10,799 basehttp 30551 6137442304 "GET /en/notifications/inbox/?filter=unread HTTP/1.1" 200 26882 +INFO 2025-11-06 23:07:10,827 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:07:13,228 basehttp 30551 6137442304 "GET /en/notifications/inbox/?filter=all HTTP/1.1" 200 32772 +INFO 2025-11-06 23:07:13,263 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +INFO 2025-11-06 23:07:25,914 basehttp 30551 6137442304 "GET /en/dashboard/ HTTP/1.1" 200 54170 +INFO 2025-11-06 23:07:25,941 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 +ERROR 2025-11-06 23:07:44,593 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found +INFO 2025-11-06 23:07:55,950 basehttp 30551 6137442304 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19 diff --git a/media/consents/signatures/signature_000051_20251106_155937.png b/media/consents/signatures/signature_000051_20251106_155937.png new file mode 100644 index 0000000000000000000000000000000000000000..76bdf5ed17bfe3cc97329ffa94123a947ed2b3e9 GIT binary patch literal 29149 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 delta 99 zcmcb=mGSmgM!wU$yj%=Ga3Fv=^I!NzzE>WMpC`w7Sxz?cbevq`X)$@N=W0g1$&p@V wlP`Ex0eMcFd%e||czs#EGcbsSuzUoOlMncs@p`a=MEqGnBL171{qFDp00D&|$N&HU diff --git a/slp/forms.py b/slp/forms.py index 8893b9be..b6167daf 100644 --- a/slp/forms.py +++ b/slp/forms.py @@ -381,14 +381,14 @@ class SLPProgressReportForm(forms.ModelForm): Fieldset( _('Objectives & Progress'), HTML('

{}

'.format(_('Objective → % accuracy mapping (JSON format)'))), - HTML('
{}
'.format( + HTML('
{}
'.format( _('Objectives Progress (JSON format)'), _('Enter each objective with percentage accuracy achieved') )), ), Fieldset( _('Plan Details'), - HTML('
{}
'.format( + HTML('
{}
'.format( _('Plan Details (JSON format)'), _('Continue/Add/Fade prompts/Generalization plans') )),