115 lines
4.5 KiB
Python
115 lines
4.5 KiB
Python
import os,fdb,datetime
|
|
|
|
# conn = fdb.connect(
|
|
# dsn=r'localhost:u:\medicus 3\data\medicus.fdb', # Database path
|
|
# user='SYSDBA', # Username
|
|
# password="masterkey", # Password,
|
|
# charset="win1250")
|
|
# cur = conn.cursor()
|
|
|
|
def zapis_file(vstupconnection,idpac,cesta,souborname,prvnizavorka,soubordate,souborfiledate,poznamka):
|
|
import funkce
|
|
cur=vstupconnection.cursor()
|
|
fileid = funkce.get_files_id(vstupconnection)
|
|
with open(os.path.join(cesta,souborname), 'rb') as f:
|
|
daticka = f.read()
|
|
query = "insert into files (id,iduzi,iddoctyp,typ,idpac,filename,body,datum,datsouboru,poznamka) values(?,?,?,?,?,?,?,?,?,?)"
|
|
cur.execute(query,(fileid,6,1,1,idpac,prvnizavorka+".pdf",daticka,soubordate,souborfiledate,poznamka[:99]))
|
|
vstupconnection.commit()
|
|
return fileid
|
|
def zapis_dekurs(vstupconnection, idpac, idodd, iduzi, idprac, idfile, filename, text, datumzpravy,
|
|
datumsouboru):
|
|
import funkce
|
|
dekursid = funkce.get_dekurs_id(vstupconnection)
|
|
cur = vstupconnection.cursor()
|
|
print("Funkce zapis_dekurs hlasí OK")
|
|
print("idpac", idpac)
|
|
print("idodd", idodd)
|
|
print("iduzi", iduzi)
|
|
print("idfile", idfile)
|
|
print("filename", filename)
|
|
print("text", text)
|
|
print("datumzpravy", datumzpravy)
|
|
print("datumsouboru", datumsouboru)
|
|
print("dekursid", dekursid)
|
|
|
|
# rtf = r"""{\rtf1\ansi\ansicpg1250\uc1\deff0\deflang1029{\info{\bookmarks "BOOKMARKNAME","Files:FILEID",9}}{\fonttbl{\f0\fnil\fcharset238 Arial;}{\f5\fnil\fcharset238 Symbol;}}
|
|
# {\colortbl ;\red0\green0\blue255;\red0\green128\blue0;\red0\green0\blue0;}
|
|
# {\stylesheet{\s0\fi0\li0\ql\ri0\sb0\sa0 Norm\'e1ln\'ed;}{\*\cs15\f0\fs20 Norm\'e1ln\'ed;}{\*\cs20\f0\i\fs20 Z\'e1hlav\'ed;}{\*\cs32\f0\ul\fs20\cf1 Odkaz;}}
|
|
# \uc1\pard\s0\plain\cs20\f0\i\fs20 P\'f8\'edlohy: {\*\bkmkstart 0}\plain\cs32\f0\ul\fs20\cf1 BOOKMARKNAME{\*\bkmkend 0}\par
|
|
# \pard\s0\plain\cs15\f0\fs20 \par
|
|
# }
|
|
# """
|
|
rtf = r"""{\rtf1\ansi\ansicpg1250\uc1\deff0\deflang1029{\info{\bookmarks "BOOKMARKNAME","Files:FILEID",9}}{\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;}{\*\cs22\f0\ul\fs20\cf1 Odkaz;}}
|
|
\uc1\pard\s10\plain\cs20\f0\i\fs20 P\'f8\'edlohy:\par
|
|
\pard\s10{\*\bkmkstart 0}\plain\cs22\f0\ul\fs20\cf1 BOOKMARKNAME{\*\bkmkend 0}\par
|
|
\pard\s10\plain\cs15\f0\fs20 \par
|
|
}
|
|
|
|
"""
|
|
# id idpac filename body docid typ datum iddoctyp poznamka idpac=2 iduzi=2 datsouboru id_edokument ext_id
|
|
encodedbookmark = funkce.convert_to1250(filename)
|
|
print("Encodedbookmark", encodedbookmark)
|
|
rtf = rtf.replace("BOOKMARKNAME", encodedbookmark)
|
|
rtf = rtf.replace("FILEID", str(idfile))
|
|
rtf = rtf.replace("TEXTENTER", text)
|
|
datumzapisu = datetime.datetime.now().date()
|
|
caszapisu = datetime.datetime.now().time()
|
|
print("Datumzapisu", datumzapisu)
|
|
print("Caszapisu", caszapisu)
|
|
print("RTF", rtf)
|
|
cur.execute("insert into dekurs (id,idpac,idodd,iduzi,idprac,datum,cas,dekurs) values(?,?,?,?,?,?,?,?)",
|
|
(dekursid, idpac, idodd, iduzi, idprac, datumzapisu, caszapisu, rtf))
|
|
vstupconnection.commit()
|
|
|
|
|
|
def convert_to1250(retezec):
|
|
retezec=retezec.encode("cp1250")
|
|
retezec=str(retezec)[2:]
|
|
retezec = retezec[:-1]
|
|
retezec=retezec.replace(r"\x",r"\'")
|
|
return retezec
|
|
|
|
|
|
# x=convert_to1250("Příloha")
|
|
# print(x,len(x))
|
|
|
|
def get_dekurs_id(connection):
|
|
try:
|
|
query = "SELECT GEN_ID(Gen_Dekurs, 1) FROM RDB$DATABASE"
|
|
cur = connection.cursor()
|
|
cur.execute(query)
|
|
newid=cur.fetchone()[0]
|
|
print("Funkce GET_DEKURS_ID přiřadila nové ID:",newid)
|
|
return(newid)
|
|
except:
|
|
print("Funkce GET_DEKURS_ID nepřiřadila nové ID")
|
|
return(None)
|
|
|
|
def get_files_id(connection):
|
|
try:
|
|
query = "SELECT GEN_ID(Gen_Files, 1) FROM RDB$DATABASE"
|
|
cur=connection.cursor()
|
|
cur.execute(query)
|
|
newid=cur.fetchone()[0]
|
|
print(newid)
|
|
return(newid)
|
|
except:
|
|
return(None)
|
|
|
|
def get_idpac(rodnecislo,connection):
|
|
try:
|
|
query = "SELECT idpac,prijmeni FROM kar where rodcis=?"
|
|
cur = connection.cursor()
|
|
cur.execute(query,(rodnecislo,))
|
|
tmp_nacteno=cur.fetchone()
|
|
tmp_id = tmp_nacteno[0]
|
|
tmp_jmeno=tmp_nacteno[1]
|
|
print(f"Pacient s rodným číslem {rodnecislo} má ID {tmp_id} a jméno {tmp_jmeno}")
|
|
return (tmp_id)
|
|
except:
|
|
return(None)
|
|
|