Compare commits

..

15 Commits

Author SHA1 Message Date
Ambulance Clerc
dbc0bab3e2 ajout système auto-update 2022-06-06 13:31:13 +02:00
Ambulance Clerc
66da1c212a Changement version 2022-06-06 13:12:57 +02:00
Ambulance Clerc
22a0ed46f6 Ajout note version déporté 2022-06-06 11:46:27 +02:00
Ambulance Clerc
2a0ab15e7d Ajout note version déporté 2022-06-06 11:11:16 +02:00
Ambulance Clerc
e92d92deec Ajout note version déporté 2022-06-06 11:07:30 +02:00
Ambulance Clerc
0f5fbe6778 Ajout des sans destination 2022-06-02 16:59:40 +02:00
Ambulance Clerc
b678c85400 Ajout des sans destination 2022-06-02 16:58:26 +02:00
Ambulance Clerc
521db9851e Modification détection sans transport 2022-06-02 16:41:33 +02:00
Ambulance Clerc
9acdf7a0f5 Modification détection sans transport 2022-06-02 16:41:15 +02:00
Ambulance Clerc
2a42096dcb Changement affichage date naissance 2022-06-02 16:36:54 +02:00
Ambulance Clerc
8ee93aefb0 Débug HRF 2022-06-02 15:09:56 +02:00
Ambulance Clerc
f5755c77f0 Débug HRF 2022-06-02 15:01:10 +02:00
Ambulance Clerc
f569dee4c2 Changement collone pour les kilomètres 2022-05-30 15:56:39 +02:00
Ambulance Clerc
71f736fd83 Débug des virgule dans adresse de PEC et adresse DEST + ajout des KM 2022-05-30 11:03:46 +02:00
Ambulance Clerc
3567b6942f Débug des virgule dans adresse de PEC et adresse DEST + ajout des KM 2022-05-30 10:57:06 +02:00
5 changed files with 136 additions and 104 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/update.exe

32
auto_update.py Normal file
View File

@@ -0,0 +1,32 @@
from version import *
import urllib.request
import ssl
import io
def clean(str):
str = str.replace('/','')
str = str.replace(':', '')
str = str.replace('{', '')
str = str.replace('(', '')
str = str.replace("\\", '')
return str
def new_update_available():
ret = False
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
data = urllib.request.urlopen("https://gitea.prod.resk-u.ch/CLERC/AttribWinbiz/raw/branch/master/dl_version", context=ctx)
dl_version = str(data.read()).replace('b', '').replace("'", "")
ssl._create_default_https_context = ssl._create_unverified_context
if dl_version != VERSION:
print(f"Version différente trouvée {dl_version} téléchargement en cours")
urllib.request.urlretrieve(url=f"https://gitea.prod.resk-u.ch/CLERC/AttribWinbiz/releases/download/{clean(dl_version)}/Clercattrib2Biz_setup.exe", filename="update.exe")
ret = True
return ret

1
dl_version Normal file
View File

@@ -0,0 +1 @@
20220606-1330

205
main.py
View File

@@ -3,6 +3,7 @@ import json
import os import os
import logging import logging
import shutil import shutil
import subprocess
import textwrap import textwrap
import time import time
import uuid import uuid
@@ -11,7 +12,6 @@ from datetime import datetime
import tkinter.filedialog import tkinter.filedialog
from tkinter import * from tkinter import *
from tkinter import font
from tkinter import messagebox from tkinter import messagebox
from tkinter.ttk import Progressbar from tkinter.ttk import Progressbar
from tkinter.scrolledtext import ScrolledText from tkinter.scrolledtext import ScrolledText
@@ -19,8 +19,9 @@ from threading import *
from class_invoices import * from class_invoices import *
from class_addresses import * from class_addresses import *
from auto_update import *
VERSION = "202200522 - 1848" from version import *
#test master 2 #test master 2
src_dir = os.getenv('APPDATA') + "\Attrib2Biz\src" src_dir = os.getenv('APPDATA') + "\Attrib2Biz\src"
@@ -40,14 +41,13 @@ if not os.path.exists(dest_dir):
class SuggestionPopup(Toplevel): class SuggestionPopup(Toplevel):
x_row = 0 def __init__(self, parent, item_1=None, item_2=None):
def __init__(self, parent, item_1=None, item_2=None, debitor=None):
super().__init__(parent) super().__init__(parent)
self.geometry(f"700x300+{parent.winfo_x() + 25 }+{parent.winfo_y() +25 }") self.geometry("400x475")
self.resizable(True,True) self.resizable(True,True)
self.iconbitmap("./logo_clerc_03X_icon.ico") self.iconbitmap("./logo_clerc_03X_icon.ico")
self.title(f"Choix de l'adresse à conserver {item_1['fip_number']}. Code débiteur: {debitor['code']}") self.title("Choix de l'adresse à conserver 1")
self.columnconfigure(0, weight=1) self.columnconfigure(0, weight=1)
self.columnconfigure(1, weight=1) self.columnconfigure(1, weight=1)
@@ -55,83 +55,24 @@ class SuggestionPopup(Toplevel):
lbf_new = LabelFrame(self, text="Nouveau patient") lbf_new = LabelFrame(self, text="Nouveau patient")
lbf_new.grid(row=0, column=0, sticky='WE', padx=5, pady=5) lbf_new.grid(row=0, column=0, sticky='WE', padx=5, pady=5)
Label(lbf_new, text=f"N° AVS de l'adresse \t {item_1['insurance_policy_number'].replace('.','')}").grid(row=0, column=0)
lbf_old = LabelFrame(self, text="Ancien patient") lbf_old = LabelFrame(self, text="Ancien patient")
lbf_old.grid(row=0, column=1, sticky='NSEW', padx=5, pady=5) lbf_old.grid(row=0, column=1, sticky='NSEW', padx=5, pady=5)
str_address_1 = "" Label(lbf_old, text=f"N° AVS de l'adresse \t {item_2.AVS}").grid(row=0, column=0)
fonts = [] self.listbox = Listbox(self, height=10, width=20)
self.listbox.grid(row=1,column=0, columnspan= 2, pady=15)
self.x_row = 0 self.btn = Button(self, text="Confirm selection", command=self.select)
self.add_compares_element(new_frame=lbf_new,old_frame=lbf_old,label="N° AVS de l'adresse:",str1=item_1['insurance_policy_number'].replace('.',''), str2=item_2.AVS) self.btn.grid(row=2, pady=10)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Nom:", str1=item_1['lastname'], str2=item_2.lastName)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Prénom:", str1=item_1['firstname'], str2=item_2.firstName)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Date de naissance:", str1=datetime.strptime(item_1['birthdate'], "%Y-%m-%d").strftime("%d.%m.%Y"), str2=item_2.birth)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Adresse:", str1=f"{item_1['street']} {item_1['street_number']}", str2=item_2.street)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="NPA/Localité:", str1=f"{item_1['postal_code']} {item_1['city']}", str2=f"{item_2.npa} {item_2.city}")
str_address_1 += item_1['insurance_policy_number'].replace('.', '')
str_address_1 += item_1['lastname'].strip()
str_address_1 += item_1['firstname'].strip()
str_address_1 += datetime.strptime(item_1['birthdate'], "%Y-%m-%d").strftime("%d.%m.%Y")
str_address_1 += f"{item_1['street']} {item_1['street_number']}"
str_address_1 += f"{item_1['postal_code']} {item_1['city']}"
str_address_2 = ""
str_address_2 += item_2.AVS
str_address_2 += item_2.lastName
str_address_2 += item_2.firstName
str_address_2 += item_2.birth
str_address_2 += f"{item_2.street.strip()}"
str_address_2 += f"{item_2.npa} {item_2.city}"
self.listbox = Listbox(self, height=3, width=35)
self.listbox.grid(row=1,column=0, columnspan= 2, pady=15,padx=15, sticky='NSEW')
self.btn = Button(self, text="Valider", command=self.select)
self.btn.grid(row=2,columnspan=2 , pady=10,padx=10, sticky='NSEW')
for (idd, info) in ((0, "Ancienne"), (1, "Nouvelle")) : for (idd, info) in ((0, "Ancienne"), (1, "Nouvelle")) :
self.listbox.insert(END, info) self.listbox.insert(END, info)
if int(debitor["code"]) >= 100:
self.listbox.delete(0,END)
self.listbox.delete(0, END)
self.listbox.insert(END, f"Aucun changement possible, code débiteur {debitor['code']}")
self.listbox.configure(state='disabled')
if str_address_1 == str_address_2:
self.listbox.selection_set(0)
print("adresse identique")
else:
self.listbox.selection_set(1)
print(f"adresse différente [{str_address_1}] ({str_address_2})")
def add_compares_element(self,new_frame, old_frame,str1, str2, label):
label_font = font.Font(weight='bold', size=9)
value_color = "black"
con = ""
if str1 != str2:
value_color = "red"
con = "*"
Label(new_frame, text=label, font=label_font).grid(row=self.x_row, column=0, sticky="W")
Label(new_frame, text=con + str1 + con, fg=value_color).grid(row=self.x_row, column=1, sticky="W")
Label(old_frame, text=label, font=label_font).grid(row=self.x_row, column=0, sticky="W")
Label(old_frame, text=con + str2 + con, fg=value_color).grid(row=self.x_row, column=1, sticky="W")
self.x_row += 1
self.selection = None self.selection = None
def destroy(self): def destroy(self):
if self.selection is None: if self.selection is None:
@@ -142,7 +83,6 @@ class SuggestionPopup(Toplevel):
selection = self.listbox.curselection() selection = self.listbox.curselection()
if selection: if selection:
self.selection = self.listbox.get(selection[0]) self.selection = self.listbox.get(selection[0])
self.selection = True if self.selection == "Nouvelle" else False
self.destroy() self.destroy()
def show(self): def show(self):
@@ -201,7 +141,7 @@ class ClercAttrib2Biz():
self.draw_mainWindows() self.draw_mainWindows()
self.refresh_ui() self.refresh_ui()
self.read_addresses() #self.read_addresses()
self.timer = self.fenetre.after(1000, self.main_timer_fn) self.timer = self.fenetre.after(1000, self.main_timer_fn)
@@ -312,10 +252,63 @@ class ClercAttrib2Biz():
self.thread = Thread(target=self.start_parsing) self.thread = Thread(target=self.start_parsing)
if new_update_available():
if messagebox.askyesno(title="Nouvelle version trouvée", message=f"Une nouvelle version a été trouvée, vous pouvez l'installer dès maintenant !", ):
subprocess.call("update.exe")
self.fenetre.destroy()
def draw_addressesWindows(self):
# Init de la fenêtre addresses prompt
self.fenetre.iconbitmap("./logo_clerc_03X_icon.ico")
self.fenetre.title("Clerc Attrib2Biz v" + str(VERSION))
self.fenetre.resizable(True, True)
self.fenetre.geometry("700x475")
self.fenetre.columnconfigure(0, weight=3)
self.fenetre.columnconfigure(1, weight=1)
self.fenetre.rowconfigure(3, weight=1)
def disable_prompt(self): def disable_prompt(self):
self.prompt.destroy() self.prompt.destroy()
self.b_prompt_open = False self.b_prompt_open = False
def draw_test(self, item_1=None, item_2=None):
return None
self.b_prompt_open = True
self.prompt = Toplevel()
self.prompt.geometry("400x275")
self.prompt.iconbitmap("./logo_clerc_03X_icon.ico")
self.prompt.title("Choix de l'adresse à conserver ")
self.prompt.protocol("WM_DELETE_WINDOW", self.disable_prompt)
self.prompt.columnconfigure(0, weight=1)
self.prompt.columnconfigure(1, weight=1)
lbf_new = LabelFrame(self.prompt, text="Nouveau patient")
lbf_new.grid(row=0,column=0,sticky='WE', padx=5, pady=5)
Label(lbf_new, text=f"N° AVS de l'adresse").grid(row=0,column=0)
lbf_old = LabelFrame(self.prompt, text="Ancien patient")
lbf_old.grid(row=0, column=1, sticky='NSEW', padx=5, pady=5)
Label(lbf_old, text=f"N° AVS de l'adresse").grid(row=0, column=0)
'''a = StringVar()
Label(root, text='enter something').pack()
Entry(root, textvariable=a).pack()
Button(root, text='Ok', command=lambda: self.DoSomethingWithInput(a.get, root)).pack()'''
def DoSomethingWithInput(self,var,root):
print("var")
root.destroy()
def refresh_ui(self): def refresh_ui(self):
print("pass refresh UI") print("pass refresh UI")
if self.export_one_file.get() and not self.export_format_biz.get(): if self.export_one_file.get() and not self.export_format_biz.get():
@@ -341,7 +334,7 @@ class ClercAttrib2Biz():
o_addresse.lastName = row[9] o_addresse.lastName = row[9]
o_addresse.firstName = row[10] o_addresse.firstName = row[10]
o_addresse.birth = row[38] o_addresse.birth = row[38]
o_addresse.street = row[12] o_addresse.street = row[11]
o_addresse.npa = row[13] o_addresse.npa = row[13]
o_addresse.city = row[15] o_addresse.city = row[15]
self.addresses.add_addresse(o_addresse) self.addresses.add_addresse(o_addresse)
@@ -351,7 +344,7 @@ class ClercAttrib2Biz():
else: else:
messagebox.showwarning(title="Impossible d'ouvrir le fichier d'adresse existantes", message=f"Le fichier {file_addresses_path} est introuvable. Aucune vérification des adresses possible") messagebox.showwarning(title="Impossible d'ouvrir le fichier d'adresse existantes", message=f"Le fichier {file_addresses_path} est introuvable. Aucune vérification des adresses possible")
#messagebox.showerror(title="Erreur fichier déjà ouvert", message=f"Le fichier {self.export_filename} est déjà ouvert. Veuillez le fermer et recommencer")
def start_parsing(self): def start_parsing(self):
@@ -423,7 +416,6 @@ class ClercAttrib2Biz():
x = 70 x = 70
for ele in data["invoices"]: for ele in data["invoices"]:
b_address_update = True
data = cls_Invoice() data = cls_Invoice()
data.parse_item(ele) data.parse_item(ele)
@@ -477,26 +469,28 @@ class ClercAttrib2Biz():
addresses_exist = self.addresses.get_item_by_AVS(data.Patient['insurance_policy_number'].replace(".", "")) addresses_exist = self.addresses.get_item_by_AVS(data.Patient['insurance_policy_number'].replace(".", ""))
if addresses_exist is not None: if addresses_exist is not None:
pass
popup = SuggestionPopup(self.fenetre, item_1=data.Patient, item_2=addresses_exist,debitor=data.Debtor ) #popup = SuggestionPopup(self.fenetre, item_1=data.Patient, item_2=addresses_exist)
b_address_update = popup.show() #result = popup.show()
print(f"Result Popup: {b_address_update}") #print(f"Result Popup: {result}")
#self.draw_test(item_1=data.Patient, item_2=addresses_exist) #self.draw_test(item_1=data.Patient, item_2=addresses_exist)
#messagebox.showerror(title="AVS Trouvé", message=f"Le code AVS de l'adresse {data.Patient['insurance_policy_number']} est déjà existant: [{data.Debtor['code']}], merci de le corriger ") #messagebox.showerror(title="AVS Trouvé", message=f"Le code AVS de l'adresse {data.Patient['insurance_policy_number']} est déjà existant: [{data.Debtor['code']}], merci de le corriger ")
b_HRF = False b_HRF = False
sHRF = "" sHRF = ""
for article in data.Articles: for article in data.Articles:
if "code" in article.keys(): if "code" in article.keys():
if article["code"] == "HRF": if article["code"] == "HRF":
b_HRF = True b_HRF = True
sHRF = article["line_1"].replace("h", ":") sHRF = article["line_1"].replace("h", ":")
print(f"pass HRF => {data.Patient['fip_number']}") print(f"pass HRF => {data.Patient['fip_number']} = {b_HRF}")
#self.logger.warning(f"HRF: {data.data['id']}")
break break
for article in data.Articles:
self.bs_counter += 1 self.bs_counter += 1
csv_col = cls_Col(True) csv_col = cls_Col(True)
@@ -508,16 +502,21 @@ class ClercAttrib2Biz():
csv_col.data[10] = "<AUTO>" # Compte collectif du tiers = <AUTO> csv_col.data[10] = "<AUTO>" # Compte collectif du tiers = <AUTO>
if "destination_name" not in data.Intervention.keys() or data.Intervention["destination_name"] == None: if "without_transportation" in data.Intervention.keys() and data.Intervention["without_transportation"] == True:
csv_col.data[15] = "Sans transport" csv_col.data[15] = "Sans transport"
print(f"->NO DEST** {data.data['id']}")
elif data.Intervention["destination_name"] == None and data.Intervention["destination_street"] == None and data.Intervention["destination_city"] == None:
csv_col.data[15] = "Sans destination"
print(f"->NO DEST sans destination transmis à autruit** {data.data['id']}")
else: else:
con = "" con = ""
concat_str = "" concat_str = ""
if data.Intervention["destination_name"] is not None: if data.Intervention["destination_name"] is not None:
concat_str += con + data.Intervention["destination_name"] concat_str += con + data.Intervention["destination_name"]
con = ", " con = ", "
concat_str += con + data.Intervention["destination_street"] + " " + self.ifNotNull(data.Intervention["destination_street_number"]) if data.Intervention["destination_street"] is not None:
con = ", " concat_str += con + data.Intervention["destination_street"] + " " + self.ifNotNull(data.Intervention["destination_street_number"])
con = ", "
concat_str += con + data.Intervention["destination_postal_code"] + " " + data.Intervention["destination_city"] concat_str += con + data.Intervention["destination_postal_code"] + " " + data.Intervention["destination_city"]
csv_col.data[15] = concat_str # Adresse DEST csv_col.data[15] = concat_str # Adresse DEST
@@ -526,11 +525,12 @@ class ClercAttrib2Biz():
if data.Intervention["site_name"] is not None: if data.Intervention["site_name"] is not None:
concat_str += con + data.Intervention["site_name"] concat_str += con + data.Intervention["site_name"]
con = ", " con = ", "
concat_str += con + self.ifNotNull(data.Intervention["site_street"]) + " " + self.ifNotNull(data.Intervention["site_street_number"]) if data.Intervention["site_street"] is not None:
con = ", " concat_str += con + self.ifNotNull(data.Intervention["site_street"]) + " " + self.ifNotNull(data.Intervention["site_street_number"])
con = ", "
concat_str += con + self.ifNotNull(data.Intervention["site_postal_code"]) + " " + self.ifNotNull(data.Intervention["site_city"]) concat_str += con + self.ifNotNull(data.Intervention["site_postal_code"]) + " " + self.ifNotNull(data.Intervention["site_city"])
csv_col.data[18] = concat_str # Adresse PEC csv_col.data[18] = concat_str # Adresse PEC
print(f'debug FIP:{data.Patient["fip_number"]} id:{data.data["id"]} code: {data.Debtor["code"]}') print(f'debug id:{data.data["id"]} code: {data.Debtor["code"]}')
if int(data.Debtor["code"]) < 100: if int(data.Debtor["code"]) < 100:
csv_col.data[19] = data.Patient['insurance_policy_number'].replace(".","") csv_col.data[19] = data.Patient['insurance_policy_number'].replace(".","")
csv_col.data[22] = data.Patient["lastname"] csv_col.data[22] = data.Patient["lastname"]
@@ -545,13 +545,7 @@ class ClercAttrib2Biz():
csv_col.data[41] = "Monsieur" if data.Patient["gender"] == "Masculin" else "Madame" csv_col.data[41] = "Monsieur" if data.Patient["gender"] == "Masculin" else "Madame"
csv_col.data[44] = csv_col.data[41] csv_col.data[44] = csv_col.data[41]
#csv_col.data[46] = 0 # Maj adresse csv_col.data[46] = 0 # Maj adresse
if b_address_update:
csv_col.data[46] = 0 # Maj adresse ajoute ou met à jour l'adresse
print("mise à jour de l'adresse")
else:
csv_col.data[46] = 1 # Maj adresse, ajoute, mais ne met pas à jour l'adresse si elle existe
print("NON mise à jour de l'adresse")
if int(data.Debtor["code"]) > 1: if int(data.Debtor["code"]) > 1:
con = "" con = ""
@@ -590,7 +584,7 @@ class ClercAttrib2Biz():
if data.Debtor["country_name"] != "Suisse": if data.Debtor["country_name"] != "Suisse":
csv_col.data[29] = data.Debtor["country_name"] csv_col.data[29] = data.Debtor["country_name"]
csv_col.data[46] =1 # Maj adresse, ajoute, mais ne met pas à jour l'adresse si elle existe csv_col.data[46] =1 # Maj adresse
if "name" in data.Debtor.keys(): if "name" in data.Debtor.keys():
csv_col.data[21] = self.ifNotNull(data.Debtor["name"]) csv_col.data[21] = self.ifNotNull(data.Debtor["name"])
@@ -650,7 +644,7 @@ class ClercAttrib2Biz():
csv_col.data[115] = self.ifNotNull(data.Patient["lastname"]) + " " + self.ifNotNull(data.Patient["firstname"]) csv_col.data[115] = self.ifNotNull(data.Patient["lastname"]) + " " + self.ifNotNull(data.Patient["firstname"])
csv_col.data[108] = data.Patient["complement"] csv_col.data[108] = data.Patient["complement"]
csv_col.data[109] = datetime.strptime(data.Patient["birthdate"], "%Y-%m-%d").strftime("%d.%m.%Y") if data.Patient["birthdate"] is not None else "date naissance inconnue" csv_col.data[109] = datetime.strptime(data.Patient["birthdate"], "%Y-%m-%d").strftime("%d.%m.%Y") if data.Patient["birthdate"] is not None else ""
if data.Patient["insurance_policy_number"] is not None and '-' not in data.Patient["insurance_policy_number"]: if data.Patient["insurance_policy_number"] is not None and '-' not in data.Patient["insurance_policy_number"]:
csv_col.data[109] += ", " + data.Patient["insurance_policy_number"] csv_col.data[109] += ", " + data.Patient["insurance_policy_number"]
@@ -659,6 +653,7 @@ class ClercAttrib2Biz():
"%d.%m.%Y") # Date PEC "%d.%m.%Y") # Date PEC
csv_col.data[111] += " - " + datetime.strptime(data.Intervention["start_time"], "%Y-%m-%dT%H:%M:%S%z").strftime( csv_col.data[111] += " - " + datetime.strptime(data.Intervention["start_time"], "%Y-%m-%dT%H:%M:%S%z").strftime(
"%H:%M") # Heure START PEC "%H:%M") # Heure START PEC
if b_HRF: if b_HRF:
csv_col.data[111] += "-" + sHRF csv_col.data[111] += "-" + sHRF
else: else:
@@ -673,6 +668,7 @@ class ClercAttrib2Biz():
csv_col.data[107] = data.Patient["fip_number"] csv_col.data[107] = data.Patient["fip_number"]
csv_col.data[107] += " - " + data.data["comments"] if data.data["comments"] is not None else "" csv_col.data[107] += " - " + data.data["comments"] if data.data["comments"] is not None else ""
csv_col.data[116] = self.ifNotNull(data.Patient["category"]) + " - " + self.ifNotNull(data.Intervention["type"]) csv_col.data[116] = self.ifNotNull(data.Patient["category"]) + " - " + self.ifNotNull(data.Intervention["type"])
csv_col.data[118] = data.Intervention["kilometers"]
csv_col.data[135] = data.Intervention["base_name"] csv_col.data[135] = data.Intervention["base_name"]
csv_col.data[136] = 2 if data.Intervention["base_name"] == "Uvrier" else 3 csv_col.data[136] = 2 if data.Intervention["base_name"] == "Uvrier" else 3
csv_col.data[146] = csv_col.data[136] csv_col.data[146] = csv_col.data[136]
@@ -750,7 +746,7 @@ class ClercAttrib2Biz():
if data.Patient["complement"] != None : if data.Patient["complement"] != None :
self.a_listings["to_check"].append(data.Patient["fip_number"]) self.a_listings["to_check"].append(data.Patient["fip_number"])
print(data.Patient["complement"]) print(data.Patient["complement"])
self.logger.warning(f"Complément patient: facture N°: {data.data['id']} / {data.Patient['fip_number']}") self.logger.warning(f"Complément 22 patient: facture N°: {data.data['id']} / {data.Patient['fip_number']}")
if data.Patient['insurance_policy_number'] == None: if data.Patient['insurance_policy_number'] == None:
@@ -766,6 +762,7 @@ class ClercAttrib2Biz():
b_HRF = True b_HRF = True
sHRF = article["line_1"].replace("h",":") sHRF = article["line_1"].replace("h",":")
print(f"pass HRF => {data.Patient['fip_number']}") print(f"pass HRF => {data.Patient['fip_number']}")
break break

1
version.py Normal file
View File

@@ -0,0 +1 @@
VERSION = "20220606-1330"