Convert string dates to datetime and display with short format.

This commit is contained in:
Mikaël Ates 2015-01-15 13:11:14 +01:00
parent 3a796ed892
commit 0f4fd66992
3 changed files with 90 additions and 11 deletions

76
calebasse/cv2helper.py Normal file
View File

@ -0,0 +1,76 @@
from datetime import datetime
from django.conf import settings
def parse_date_ddmmyyyy(str_date):
fmt = '%d%m%Y'
return datetime.strptime(str_date, fmt)
def parse_date_yymmdd(str_date):
fmt = '%y%m%d'
return datetime.strptime(str_date, fmt)
def setter_date_ddmmyyyy(field):
try:
return parse_date_ddmmyyyy(str(field))
except:
pass
def setter_date_yymmdd(field):
try:
return parse_date_yymmdd(str(field))
except:
pass
def setter_periode(start, end):
try:
return parse_date_ddmmyyyy(str(start)), parse_date_ddmmyyyy(str(end))
except:
pass
if settings.CV2PARSER:
from cv2parser import cvitale
def parse(filename):
cv = cvitale.parse(filename)
for beneficiaire in cv.listeBenef.get_element():
"""
ident
"""
beneficiaire.ident.naissance.date = \
setter_date_ddmmyyyy(beneficiaire.ident.naissance.date)
beneficiaire.ident.naissance.dateEnCarte = \
setter_date_yymmdd(beneficiaire.ident.naissance.dateEnCarte)
beneficiaire.ident.dateCertification = \
setter_date_ddmmyyyy(beneficiaire.ident.dateCertification)
"""
amo
"""
if beneficiaire.amo.listePeriodesDroits:
for p in beneficiaire.amo.listePeriodesDroits.get_element():
p.debut, p.fin = setter_periode(p.debut, p.fin)
if beneficiaire.amo.service and \
beneficiaire.amo.service.periodeService:
p = beneficiaire.amo.service.periodeService
p.debut, p.fin = setter_periode(p.debut, p.fin)
"""
mutuelle
"""
if beneficiaire.mutuelle and beneficiaire.mutuelle.listePeriodes:
for p in beneficiaire.mutuelle.listePeriodes.get_element():
p.debut, p.fin = setter_periode(p.debut, p.fin)
"""
amc
"""
if beneficiaire.amc and beneficiaire.amc.validiteDonnees:
p = beneficiaire.amc.validiteDonnees
p.debut, p.fin = setter_periode(p.debut, p.fin)
"""
cmu
"""
if beneficiaire.cmu and beneficiaire.cmu.periode:
p = beneficiaire.cmu.periode
p.debut, p.fin = setter_periode(p.debut, p.fin)
return cv

View File

@ -13,14 +13,18 @@
<li><label>Nom usuel :</label> {{ beneficiaire.ident.nomUsuel }}</li>
{% if beneficiaire.ident.nomPatronymique %}<li><label>Nom usuel :</label> {{ beneficiaire.ident.nomPatronymique }}</li>{% endif %}
<li><label>Prénom usuel :</label> {{ beneficiaire.ident.prenomUsuel }}</li>
<li><label>Date de naissance :</label> {% if beneficiaire.ident.naissance.dateEnCarte %}{{ beneficiaire.ident.naissance.dateEnCarte }}{% else %}{{ beneficiaire.ident.naissance.date }}{% endif %}</li>
<li><label>Date de naissance :</label> {% if beneficiaire.ident.naissance.dateEnCarte %}{{ beneficiaire.ident.naissance.dateEnCarte|date:"SHORT_DATE_FORMAT" }}{% else %}{{ beneficiaire.ident.naissance.date|date:"SHORT_DATE_FORMAT" }}{% endif %}</li>
<li><label>Numéro d'Identification au Répertoire (NIR) :</label> {{ beneficiaire.ident.nir }}</li>
{% if beneficiaire.ident.adresse %}<li><label>Adresse :</label><ul>
{% if beneficiaire.ident.adresse.ligne1 %}<li><label>Ligne 1 :</label> {{ beneficiaire.ident.adresse.ligne1 }}</li>{% endif %}
{% if beneficiaire.ident.adresse.ligne2 %}<li><label>Ligne 2 :</label> {{ beneficiaire.ident.adresse.ligne2 }}</li>{% endif %}
{% if beneficiaire.ident.adresse.ligne3 %}<li><label>Ligne 3 :</label> {{ beneficiaire.ident.adresse.ligne3 }}</li>{% endif %}
{% if beneficiaire.ident.adresse.ligne4 %}<li><label>Ligne 4 :</label> {{ beneficiaire.ident.adresse.ligne4 }}</li>{% endif %}
{% if beneficiaire.ident.adresse.ligne5 %}<li><label>Ligne 5 :</label> {{ beneficiaire.ident.adresse.ligne5 }}</li>{% endif %}
</ul></li>{% endif %}
<li><label>Rang de naissance :</label> {{ beneficiaire.ident.rangDeNaissance }}</li>
{% if beneficiaire.ident.nirCertifie %}<li><label>NIR certifié :</label> {{ beneficiaire.ident.nirCertifie }}</li>{% endif %}
{% if beneficiaire.ident.dateCertification %}<li><label>Date de certification :</label> {{ beneficiaire.ident.dateCertification }}</li>{% endif %}
{% if beneficiaire.ident.dateCertification %}<li><label>Date de certification :</label> {{ beneficiaire.ident.dateCertification|date:"SHORT_DATE_FORMAT" }}</li>{% endif %}
{% else %}
Problème de lecture du bloc identification.
{% endif %}
@ -37,10 +41,10 @@
{% if beneficiaire.amo.infoCompl %}<li><label>Informations supplémentaires :</label> {{ beneficiaire.amo.infoCompl }}</li>{% endif %}
<li><label>Centre d'émission de la carte :</label> {{ beneficiaire.amo.centreCarte }}</li>
{% if beneficiaire.amo.listePeriodesDroits %}<li><label>Liste des périodes de droits :</label><ul>
{% for element in beneficiaire.amo.listePeriodesDroits.get_element %}<li>{{ element.debut }} - {{ element.fin }}</li>{% endfor %}
{% for element in beneficiaire.amo.listePeriodesDroits.get_element %}<li>{{ element.debut|date:"SHORT_DATE_FORMAT" }} - {{ element.fin|date:"SHORT_DATE_FORMAT" }}</li>{% endfor %}
</ul></li>{% endif %}
<li><label>Medecin traitant :</label> {{ beneficiaire.amo.medecinTraitant }}</li>
{% if beneficiaire.amo.service %}<li><label>Service :</label> {{ beneficiaire.amo.codeService }} - {{ beneficiaire.amo.periodeService.debut }} - {{ beneficiaire.amo.periodeService.fin }}</li>{% endif %}
{% if beneficiaire.amo.service %}<li><label>Service :</label> {{ beneficiaire.amo.codeService }} - {{ beneficiaire.amo.periodeService.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.amo.periodeService.fin|date:"SHORT_DATE_FORMAT" }}</li>{% endif %}
{% else %}
Problème de lecture du bloc amo.
{% endif %}
@ -54,7 +58,7 @@
{% if beneficiaire.mutuelle.numIdent %}<li><label>Numéro d'identification :</label> {{ beneficiaire.mutuelle.numIdent }}</li>{% endif %}
{% if beneficiaire.mutuelle.services %}<li><label>Services :</label> {{ beneficiaire.mutuelle.services.typeService }} - {{ beneficiaire.mutuelle.services.servicesAssocies }}</li>{% endif %}
{% if beneficiaire.mutuelle.listePeriodes %}<li><label>Liste des périodes de droits :</label><ul>
{% for element in beneficiaire.mutuelle.listePeriodes.get_element %}<li>{{ element.debut }} - {{ element.fin }}</li>{% endfor %}
{% for element in beneficiaire.mutuelle.listePeriodes.get_element %}<li>{{ element.debut|date:"SHORT_DATE_FORMAT" }} - {{ element.fin|date:"SHORT_DATE_FORMAT" }}</li>{% endfor %}
</ul></li>{% endif %}
{% if beneficiaire.mutuelle.indicTraitement %}<li><label>Indicateur de Traitement :</label> {{ beneficiaire.mutuelle.indicTraitement }}</li>{% endif %}
{% if beneficiaire.mutuelle.codeSTS %}<li><label>Code STS (STructure de Soin) :</label> {{ beneficiaire.mutuelle.codeSTS }}</li>{% endif %}
@ -68,7 +72,7 @@
{% if beneficiaire.amc.numComplEDI %}<li><label>Numéro EDI :</label> {{ beneficiaire.amc.numCompleEDI }}</li>{% endif %}
{% if beneficiaire.amc.numAdherent %}<li><label>Numéro d'adhérent :</label> {{ beneficiaire.amc.numAdherent }}</li>{% endif %}
{% if beneficiaire.amc.indicTraitement %}<li><label>Indicateur de Traitement :</label> {{ beneficiaire.amc.indicTraitement }}</li>{% endif %}
{% if beneficiaire.amc.validiteDonnees %}<li><label>Validité des données :</label> {{ beneficiaire.amc.validiteDonnees.debut }} - {{ beneficiaire.amc.validiteDonnees.fin }}</li>{% endif %}
{% if beneficiaire.amc.validiteDonnees %}<li><label>Validité des données :</label> {{ beneficiaire.amc.validiteDonnees.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.amc.validiteDonnees.fin|date:"SHORT_DATE_FORMAT" }}</li>{% endif %}
{% if beneficiaire.amc.codeRoutageFlux %}<li><label>Code de routage des flux :</label> {{ beneficiaire.amc.codeRoutageFlux }}</li>{% endif %}
{% if beneficiaire.amc.identHote %}<li><label>Identification de l'hôte :</label> {{ beneficiaire.amc.identHote }}</li>{% endif %}
{% if beneficiaire.amc.nomDomaine %}<li><label>Nom de domaine :</label> {{ beneficiaire.amc.nomDomaine }}</li>{% endif %}
@ -81,7 +85,7 @@
{% if beneficiaire.cmu %}
<strong>Couverture Maladie Universelle</strong>
{% if beneficiaire.cmu.typeCMU %}<li><label>Type CMU :</label> {{ beneficiaire.cmu.typeCMU }}</li>{% endif %}
{% if beneficiaire.cmu.periode %}<li><label>Période :</label> {{ beneficiaire.cmu.periode.debut }} - {{ beneficiaire.cmu.periode.fin }}</li>{% endif %}
{% if beneficiaire.cmu.periode %}<li><label>Période :</label> {{ beneficiaire.cmu.periode.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.cmu.periode.fin|date:"SHORT_DATE_FORMAT" }}</li>{% endif %}
<br/>
{% endif %}

View File

@ -37,13 +37,12 @@ from calebasse.facturation.invoice_header import render_to_pdf_file
from calebasse.decorators import validator_only
from calebasse import cv2helper
from ..utils import get_service_setting, is_validator, get_last_file
logger = logging.getLogger('calebasse.dossiers')
if settings.CV2PARSER:
from cv2parser import cvitale
class NewPatientRecordView(cbv.FormView, cbv.ServiceViewMixin):
form_class = forms.NewPatientRecordForm
template_name = 'dossiers/patientrecord_new.html'
@ -378,7 +377,7 @@ class ReadCV2View(cbv.FormView):
prefix=reader_identifier, suffix='.xml')
ctx['cv'] = None
try:
ctx['cv'] = cvitale.parse(filename)
ctx['cv'] = cv2helper.parse(filename)
except Exception, e:
logger.warning("%s" % str(e))
try: