notebook vb
This commit is contained in:
108
MedicusWithClaude/test_import_3files.py
Normal file
108
MedicusWithClaude/test_import_3files.py
Normal file
@@ -0,0 +1,108 @@
|
||||
"""test_import_3files.py – jednorázový test: 3 soubory jednoho pacienta → 1 dekurs s klikacími odkazy
|
||||
Testuje opravenou RTF logiku (cs32, Přílohy: inline, poradi++)
|
||||
Spustit na Windows.
|
||||
"""
|
||||
import datetime
|
||||
import os
|
||||
import fdb
|
||||
import funkce
|
||||
import funkce_ext
|
||||
|
||||
CESTA = r'u:\\'
|
||||
IDPAC = 9742 # Buzalka Vladimír, RC 7309208104
|
||||
|
||||
SOUBORY = [
|
||||
{
|
||||
'souborname': '7309208104 2026-03-18 Buzalka, Vladimír [vyšetření] [ahoj Claude copy1].pdf',
|
||||
'prvnizavorka': 'vyšetření',
|
||||
'druhazavorka': 'ahoj Claude copy1',
|
||||
'datum': datetime.date(2026, 3, 18),
|
||||
},
|
||||
{
|
||||
'souborname': '7309208104 2026-03-18 Buzalka, Vladimír [vyšetření] [ahoj Claude copy2].pdf',
|
||||
'prvnizavorka': 'vyšetření',
|
||||
'druhazavorka': 'ahoj Claude copy2',
|
||||
'datum': datetime.date(2026, 3, 18),
|
||||
},
|
||||
{
|
||||
'souborname': '7309208104 2026-03-18 Buzalka, Vladimír [vyšetření] [ahoj Claude].pdf',
|
||||
'prvnizavorka': 'vyšetření',
|
||||
'druhazavorka': 'ahoj Claude',
|
||||
'datum': datetime.date(2026, 3, 18),
|
||||
},
|
||||
]
|
||||
|
||||
# ── Připojení ─────────────────────────────────────────────────────────────────
|
||||
conn = fdb.connect(
|
||||
dsn=r'localhost:c:\medicus 3\data\medicus.fdb',
|
||||
user='SYSDBA', password='masterkey', charset='WIN1250'
|
||||
)
|
||||
|
||||
# ── Krok 1: vložit každý soubor do ext DB ─────────────────────────────────────
|
||||
bookmark = ''
|
||||
bookmarks = ''
|
||||
cislo = 9
|
||||
poradi = 0
|
||||
|
||||
for s in SOUBORY:
|
||||
cesta_souboru = os.path.join(CESTA, s['souborname'])
|
||||
datumsouboru = datetime.datetime.fromtimestamp(os.path.getmtime(cesta_souboru))
|
||||
|
||||
print(f"\n>>> Zpracovávám: {s['souborname']}")
|
||||
fileid = funkce_ext.zapis_file_ext(
|
||||
vstupconnection = conn,
|
||||
idpac = IDPAC,
|
||||
cesta = CESTA,
|
||||
souborname = s['souborname'],
|
||||
prvnizavorka = s['prvnizavorka'],
|
||||
soubordate = s['datum'],
|
||||
souborfiledate = datumsouboru,
|
||||
poznamka = s['druhazavorka'],
|
||||
)
|
||||
print(f" → FILES.ID = {fileid}")
|
||||
|
||||
# {\info{\bookmarks ...}} sekce
|
||||
filenameforbookmark = s['datum'].strftime('%Y-%m-%d') + ' ' + s['prvnizavorka'] + ': ' + s['druhazavorka']
|
||||
bookmark += '"' + filenameforbookmark + '","Files:' + str(fileid) + '",' + str(cislo) + ';'
|
||||
cislo += 7
|
||||
|
||||
# tělo RTF – klikatelné záložky (cs32, všechny stejný formát)
|
||||
bookmarks += (r'\pard\s10{\*\bkmkstart ' + str(poradi) + r'}'
|
||||
r'\plain\cs32\f0\ul\fs20\cf1 ' + filenameforbookmark +
|
||||
r'{\*\bkmkend ' + str(poradi) + r'}\par')
|
||||
poradi += 1
|
||||
|
||||
bookmark = bookmark[:-1] # odstranit poslední ;
|
||||
|
||||
# ── Krok 2: sestavit RTF ──────────────────────────────────────────────────────
|
||||
rtf = r"""{\rtf1\ansi\ansicpg1250\uc1\deff0\deflang1029{\info{\bookmarks BOOKMARKNAMES}}{\fonttbl{\f0\fnil\fcharset238 Arial;}{\f5\fnil\fcharset238 Symbol;}}
|
||||
{\colortbl ;\red0\green0\blue255;\red0\green128\blue0;\red0\green0\blue0;}
|
||||
{\stylesheet{\s10\fi0\li0\ql\ri0\sb0\sa0 Vlevo;}{\*\cs15\f0\fs20 Norm\'e1ln\'ed;}{\*\cs20\f0\i\fs20 Z\'e1hlav\'ed;}{\*\cs32\f0\ul\fs20\cf1 Odkaz;}}
|
||||
\uc1\pard\s10\plain\cs20\f0\i\fs20 Vlo\'9een\'e9 p\'f8\'edlohy:\par
|
||||
BOOKMARKSTEXT
|
||||
\pard\s10\plain\cs15\f0\fs20 \par
|
||||
}"""
|
||||
|
||||
rtf = rtf.replace('BOOKMARKNAMES', bookmark)
|
||||
rtf = rtf.replace('BOOKMARKSTEXT', bookmarks)
|
||||
|
||||
print('\n=== Výsledný RTF ===')
|
||||
print(rtf)
|
||||
|
||||
# ── Krok 3: zapsat dekurs ─────────────────────────────────────────────────────
|
||||
dekursid = funkce.get_dekurs_id(conn)
|
||||
datumzapisu = datetime.datetime.now().date()
|
||||
caszapisu = datetime.datetime.now().time()
|
||||
|
||||
cur = conn.cursor()
|
||||
cur.execute(
|
||||
"INSERT INTO DEKURS (id, iduzi, idprac, idodd, idpac, datum, cas, dekurs)"
|
||||
" VALUES (?,?,?,?,?,?,?,?)",
|
||||
(dekursid, 6, 2, 2, IDPAC, datumzapisu, caszapisu, rtf)
|
||||
)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
print(f'\n=== HOTOVO ===')
|
||||
print(f'DEKURS.ID = {dekursid}')
|
||||
print('Otevři Medicus → karta Buzalka Vladimír → najdi dnešní záznam → klikej na odkazy!')
|
||||
Reference in New Issue
Block a user