Ver Fonte

Impresión visita médica

sebas há 4 anos atrás
pai
commit
34a8334213

+ 1 - 1
__init__.py

@@ -3,4 +3,4 @@
 # __openerp__.py file at the root folder of this module.
 
 from . import models
-# from . import reports
+import consulta

+ 6 - 2
__openerp__.py

@@ -30,14 +30,18 @@
         'account',
         'sale',
         'web',
+        'user_extra_sello_imagen',
     ],
     'data': [
-        'data/report_paperformat_sis.xml',
         'data/sequence_sis.xml',
         'views/clinic_history_sis.xml',
+        'views/clinicmedic.xml',
+        'views/template.xml',
     ],
     'test': [
     ],
-    'qweb': ['static/src/xml/digital_signpartner.xml'],
+    'qweb': ['static/src/xml/digital_signpartner.xml',
+        'static/src/xml/clinicmedic.xml',
+    ],
     'installable': True,
 }

+ 101 - 0
consulta.py

@@ -0,0 +1,101 @@
+# -*- coding: utf-8 -*-
+
+from openerp import models, fields, api
+
+class ClinicMedicvisit(models.Model):
+	_inherit = 'clinic.history'
+
+	@api.model
+	def getClinicMedicvisit(self,domain):
+		ClinicMedicvisit = self.env['clinic.history'].search(domain)
+		values = []
+		for clinichistory in ClinicMedicvisit:
+			try:
+				street = clinichistory.partner_id.street
+			except Exception as e:
+				street = ''
+			values.append({
+                # ID
+				'id': clinichistory.id,
+                # WORKORDER INFO
+                'name': clinichistory.name or "",
+                'user_name': clinichistory.user_id.name or "",
+				'paramedico_name': clinichistory.paramedico_id.name or "",
+				'order_date': clinichistory.order_date or "",
+				'name_movil': clinichistory.name_movil or "",
+				'at_base': clinichistory.at_base or "",
+				'nro_salida': clinichistory.nro_salida or "",
+                'planned_start_date': clinichistory.planned_start_date or "",
+                'planned_end_date': clinichistory.planned_end_date or "",
+				'lugar_visita': clinichistory.lugar_visita or "",
+				'tipo_paciente': clinichistory.tipo_paciente or "",
+                'uso_gel': clinichistory.uso_gel or "",
+                'seguro': clinichistory.seguro or "",
+				'nro_socio': clinichistory.nro_socio or "",
+                'alergico': clinichistory.alergico or "",
+                'tipo_alergico': clinichistory.tipo_alergico or "",
+				'embarazada': clinichistory.embarazada or "",
+                'antecedente_paciente': clinichistory.antecedente_paciente or "",
+				'pa': clinichistory.pa or "",
+                'fc': clinichistory.fc or "",
+                'fr': clinichistory.fr or "",
+				'temp': clinichistory.temp or "",
+                'so': clinichistory.so or "",
+				'hgt': clinichistory.hgt or "",
+                'motivo': clinichistory.motivo or "",
+                'diagnostic': clinichistory.diagnostic or "",
+				'indicacion': clinichistory.indicacion or "",
+                'actions': clinichistory.actions or "",
+                'recommendations': clinichistory.recommendations or "",
+				'epicrisis': clinichistory.epicrisis or "",
+                'presuntivo': clinichistory.presuntivo or "",
+                'clasificacion': clinichistory.clasificacion or "",
+                'signature_image_paramedico': clinichistory.signature_image_paramedico or "",
+				'signature_image_medico': clinichistory.signature_image_medico or "",
+                'signature_image_paciente': clinichistory.signature_image_paciente or "",
+
+
+                # PARTNER INFO
+				'partner_id': clinichistory.partner_id.id or "",
+				'partner_name': clinichistory.partner_id.name or "",
+				'partner_ruc': clinichistory.partner_id.ruc or "",
+				'partner_address': street or "",
+                'partner_phone': clinichistory.partner_id.phone or "",
+				'partner_mobile': clinichistory.partner_id.mobile or "",
+                'partner_fecha_nac ': clinichistory.partner_id.fecha_nac  or "",
+				'partner_sexo': clinichistory.partner_id.sexo or "",
+                # COMPANY INFO
+                'company_id': clinichistory.user_id.company_id.id or "",
+                'company_name': clinichistory.user_id.company_id.name or "",
+                'company_logo': clinichistory.user_id.company_id.logo or "",
+                'company_address': clinichistory.user_id.company_id.street2 or "",
+                'company_phone': clinichistory.user_id.company_id.phone or "",
+				'vat': clinichistory.user_id.company_id.vat or "",
+
+                # USER INFO
+				'user_id': clinichistory.user_id.id or "",
+		     	'user_image': clinichistory.user_id.image or "",
+			})
+
+		return values
+
+class ClinicMedicvisitLine(models.Model):
+	_inherit = 'clinic.history.line'
+
+	@api.model
+	def getClinicMedicvisitLine(self,domain):
+		ClinicMedicvisitLine = self.env['clinic.history.line'].search(domain)
+		values = []
+		for line in ClinicMedicvisitLine:
+			values.append({
+                # ID
+				'id': line.id,
+                # LINE INFO
+                'clinichistory_id': line.clinichistory_id.id,
+                'description': line.description or "",
+                'quantity': line.quantity or "",
+                'brand': line.brand or "",
+                'number': line.number or "",
+			})
+
+		return values

+ 0 - 20
data/report_paperformat_sis.xml

@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-        <record id="paperformat_clinic_history" model="report.paperformat">
-            <field name="name">Historial clinica</field>
-            <field name="default" eval="True"/>
-            <field name="format">custom</field>
-            <field name="page_height">150</field>
-            <field name="page_width">80</field>
-            <field name="orientation">Portrait</field>
-            <field name="margin_top">1</field>
-            <field name="margin_bottom">1</field>
-            <field name="margin_left">1</field>
-            <field name="margin_right">1</field>
-            <field name="header_line" eval="False" />
-            <field name="header_spacing">0</field>
-            <field name="dpi">300</field>
-        </record>
-    </data>
-</openerp>

+ 0 - 5
reports/__init__.py

@@ -1,5 +0,0 @@
-# -*- coding: utf-8 -*-
-# License, author and contributors information in:
-# __openerp__.py file at the root folder of this module.
-
-from . import parser

BIN
reports/__init__.pyc


+ 0 - 95
reports/parser.py

@@ -1,95 +0,0 @@
-# -*- coding: utf-8 -*-
-# License, author and contributors information in:
-# __openerp__.py file at the root folder of this module.
-
-from functools import partial
-from openerp.osv import osv
-from openerp import exceptions, _
-from reportlab.graphics.barcode import createBarcodeDrawing
-
-
-class PartnerReport(osv.AbstractModel):
-    _name = 'report.repair_workorder_mejorado.partner_report'
-
-    def get_total(self, cr, uid, workorder, context=None):
-        total = 0
-        for line_consumed in workorder.consumed_ids:
-            total += line_consumed.quantity * line_consumed.price_unit
-        return total
-
-    def render_html(self, cr, uid, ids, data=None, context=None):
-        report_obj = self.pool['report']
-        repair_workorder_obj = self.pool['repair.workorderimproved']
-        report = report_obj._get_report_from_name(
-            cr, uid, 'repair_workorder_mejorado.partner_report')
-        selected_orders = repair_workorder_obj.browse(
-            cr, uid, ids, context=context)
-
-        docargs = {
-            'doc_ids': ids,
-            'doc_model': report.model,
-            'docs': selected_orders,
-            'get_total': partial(
-                self.get_total, cr, uid, context=context),
-            'printBarcode': partial(
-                self.printBarcode, cr, uid, context=context),
-        }
-
-        return report_obj.render(
-            cr, uid, ids, 'repair_workorder_mejorado.partner_report',
-            docargs, context=context)
-
-    def printBarcode(self, cr, uid, value, width, height, context=None):
-        try:
-            width, height = int(width), int(height)
-            barcode = createBarcodeDrawing(
-                'EAN13', value=value, format='png', width=width, height=height)
-            barcode = barcode.asString('png')
-            barcode = barcode.encode('base64', 'strict')
-        except (ValueError, AttributeError):
-            raise exceptions.Warning(_('Cannot convert into barcode.'))
-
-        return barcode
-
-
-class CompanyReport(osv.AbstractModel):
-    _name = 'report.repair_workorder_mejorado.company_report'
-
-    def get_total(self, cr, uid, workorder, context=None):
-        total = 0
-        for line_consumed in workorder.consumed_ids:
-            total += line_consumed.quantity * line_consumed.price_unit
-        return total
-
-    def render_html(self, cr, uid, ids, data=None, context=None):
-        report_obj = self.pool['report']
-        repair_workorder_obj = self.pool['repair.workorderimproved']
-        report = report_obj._get_report_from_name(
-            cr, uid, 'repair_workorder_mejorado.company_report')
-        selected_orders = repair_workorder_obj.browse(
-            cr, uid, ids, context=context)
-
-        docargs = {
-            'doc_ids': ids,
-            'doc_model': report.model,
-            'docs': selected_orders,
-            'get_total': partial(
-                self.get_total, cr, uid, context=context),
-            'printBarcode': partial(
-                self.printBarcode, cr, uid, context=context),
-        }
-        return report_obj.render(
-            cr, uid, ids, 'repair_workorder_mejorado.company_report',
-            docargs, context=context)
-
-    def printBarcode(self, cr, uid, value, width, height, context=None):
-        try:
-            width, height = int(width), int(height)
-            barcode = createBarcodeDrawing(
-                'EAN13', value=value, format='png', width=width, height=height)
-            barcode = barcode.asString('png')
-            barcode = barcode.encode('base64', 'strict')
-        except (ValueError, AttributeError):
-            raise exceptions.Warning(_('Cannot convert into barcode.'))
-
-        return barcode

BIN
reports/parser.pyc


+ 0 - 181
reports/work_order_company.xml

@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-
-        <!-- Declarar el informe -->
-        <report
-            id="action_work_order_company_mejorado_report"
-            string="Work order (company copy)"
-            model="repair.workorderimproved"
-            report_type="qweb-pdf"
-            name="repair_workorder_mejorado.company_report"
-            file="workorder_company"
-         />
-
-        <record id="action_work_order_company_mejorado_report" model="ir.actions.report.xml">
-            <field name="paperformat_id" ref="repair_workorder_mejorado.paperformat_repair_workorder"/>
-        </record>
-
-        <!-- Informe -->
-        <template id="company_report">
-            <t t-call="report.html_container">
-                <t t-foreach="doc_ids" t-as="doc_id">
-                    <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'repair_workorder_mejorado.company_report_document')"/>
-                </t>
-            </t>
-        </template>
-
-        <template id="workorder_company">
-            <div class="page">
-                <style>
-                    body {
-                        color: #000;
-                        font-family: Arial, Helvetica, sans-serif;
-                        font-size: 14px;
-                        letter-spacing: 0.0px;
-                        line-height: 20px;
-                        margin:0;
-                        padding:0;
-                        word-spacing:1px;
-                    }
-                    .text-lg {
-                        font-size: 18px;
-                        font-weight: bold;
-                    }
-                    .text-md {
-                        display: inline-block;
-                        font-size: 18px;
-                        font-weight: bold;
-                    }
-                    .bordered {
-                        border: 1px solid #000;
-                        padding: 10px;
-                    }
-                    /* http://www.squareonemd.co.uk/how-to-crop-an-image-with-a-css-class/ */
-                    .image-container {
-                        width: 366px;
-                        text-align: center;
-                    }
-                    .image-cropper {
-                        position: relative;
-                        height: 45px;
-                        overflow: hidden;
-                    }
-                    .centered {
-                        position: absolute;
-                        left: -50%;
-                        top: -50%;
-                        max-width: 100%;
-                    }
-                    .bottom {
-                        position: absolute;
-                        bottom: 0px;
-                        max-width: 100%;
-                    }
-                    .top {
-                        position: absolute;
-                        top: 0px;
-                        max-width: 100%;
-                    }
-                    .separator {
-                        border-top: 1px solid #000;
-                        margin-top: 20px;
-                        margin-bottom: 20px;
-                    }
-                </style>
-                <section class="header">
-                    <div class="row">
-                        <div class="col-xs-12">
-                        <p class="text-center" style="margin-top: 10px; margin-bottom: 10px;"><span class="text-lg">PARTE TRABAJO <span t-if="o.name" t-field="o.name"/></span></p>
-                        <div class="image-container">
-                            <div class="image-cropper">
-                                <img class="top" t-att-src="'data:image/png;base64,%s' % printBarcode(o.id, 732, 472)"/>
-                            </div>
-                        </div>
-                        </div>
-                    </div>
-                </section>
-                <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
-                <div class="row">
-                    <div class="col-xs-12">
-                        MATERIAL A RECOGER<br/>
-                        <t t-if="o.line_ids">
-                            <table class="order_lines" style="width: 100%;">
-                                <thead>
-                                    <tr>
-                                        <th style="width: 75%;">Concepto</th>
-                                        <th style="width: 25%;" class="text-right">Uds.</th>
-                                    </tr>
-                                </thead>
-                                <tbody>
-                                    <t t-foreach="o.line_ids" t-as="line">
-                                        <tr>
-                                            <td><span t-if="line.description" t-field="line.description"></span></td>
-                                            <td class="text-right"><span t-if="line.quantity" t-field="line.quantity"></span></td>
-                                        </tr>
-                                    </t>
-                                </tbody>
-                            </table>
-                        </t>
-                        <br/>
-                        <span class="text-md">Fecha Recogida: <span t-if="o.planned_end_date" t-field="o.planned_end_date"/></span><br/>
-                        Cliente: <span t-if="o.partner_id.name" t-field="o.partner_id.name"/><br/>
-                        Teléfono: <span t-if="o.partner_id.phone" t-field="o.partner_id.phone"/><t t-if="o.partner_id.mobile"> - <span t-field="o.partner_id.mobile"/></t><br/>
-                        Fecha Entrada: <span t-if="o.order_date" t-field="o.order_date"/>
-                    </div>
-                </div>
-                <t t-if="o.consumed_ids">
-                    <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
-                    <table class="consumed_lines" style="width: 100%;">
-                        <thead>
-                            <tr>
-                                <th style="width: 45%;">Concepto</th>
-                                <th style="width: 15%;" class="text-right">Uds.</th>
-                                <th style="width: 20%;" class="text-right">Precio</th>
-                                <th style="width: 20%;" class="text-right">Subtotal</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <t t-foreach="o.consumed_ids" t-as="consumed">
-                                <tr>
-                                    <td><span t-if="consumed.description" t-field="consumed.description"/></td>
-                                    <td class="text-right"><span t-if="consumed.quantity" t-field="consumed.quantity"/></td>
-                                    <td class="text-right"><span t-if="consumed.price_unit" t-field="consumed.price_unit"/></td>
-                                    <td class="text-right"><span t-if="consumed.subtotal and consumed.price_unit" t-raw="consumed.quantity * consumed.price_unit"/></td>
-                                </tr>
-                            </t>
-                        </tbody>
-                    </table>
-                    <t t-set="total" t-value="get_total(o)"/>
-                    <p class="text-right" style="margin-top: 10px; margin-bottom: 0px;">Total <span class="text-md" t-esc="total"></span></p>
-                </t>
-                <t t-if="o.causes">
-                    <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
-                    <div class="row">
-                        <div class="col-xs-12">
-                            <div t-field="o.causes"/>
-                        </div>
-                    </div>
-                </t>
-                <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
-                <div class="row">
-                    <div class="col-xs-6">
-                        <p class="text-center bordered sign"><br/><br/><br/><br/>Firma cliente</p>
-                    </div>
-                    <div class="col-xs-6">
-                        <p class="agreement">Doy mi consentimiento para la realización de las operaciones y montaje del material aquí descritos.</p>
-                    </div>
-                </div>
-            </div>
-        </template>
-
-        <!-- Contenido del informe -->
-        <template id="company_report_document">
-            <t t-call="report.html_container">
-                <t t-call="repair_workorder_mejorado.workorder_company"/>
-            </t>
-        </template>
-
-
-    </data>
-</openerp>

+ 0 - 191
reports/work_order_partner.xml

@@ -1,191 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-
-        <!-- Declarar el informe -->
-        <report
-            id="action_work_order_partner_mejorado_report"
-            string="Work order (partner copy)"
-            model="repair.workorderimproved"
-            report_type="qweb-pdf"
-            name="repair_workorder_mejorado.partner_report"
-            file="workorder_partner"
-         />
-
-        <record id="action_work_order_partner_mejorado_report" model="ir.actions.report.xml">
-            <field name="paperformat_id" ref="repair_workorder_mejorado.paperformat_repair_workorder"/>
-        </record>
-
-        <!-- Informe -->
-        <template id="partner_report">
-            <t t-call="report.html_container">
-                <t t-foreach="doc_ids" t-as="doc_id">
-                    <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'repair_workorder_mejorado.partner_report_document')"/>
-                </t>
-            </t>
-        </template>
-
-        <template id="workorder_partner">
-            <div class="page">
-                <style>
-                    body {
-                        color: #000;
-                        font-family: Arial, Helvetica, sans-serif;
-                        font-size: 14px;
-                        letter-spacing: 0.0px;
-                        line-height: 20px;
-                        margin:0;
-                        padding:0;
-                        word-spacing:1px;
-                    }
-                    .text-lg {
-                        font-size: 18px;
-                        font-weight: bold;
-                    }
-                    .text-md {
-                        display: inline-block;
-                        font-size: 18px;
-                        font-weight: bold;
-                    }
-                    .bordered {
-                        border: 1px solid #000;
-                        padding: 10px;
-                    }
-                    /* http://www.squareonemd.co.uk/how-to-crop-an-image-with-a-css-class/ */
-                    .image-container {
-                        width: 366px;
-                        text-align: center;
-                    }
-                    .image-cropper {
-                        position: relative;
-                        height: 45px;
-                        overflow: hidden;
-                    }
-                    .centered {
-                        position: absolute;
-                        left: -50%;
-                        top: -50%;
-                        max-width: 100%;
-                    }
-                    .bottom {
-                        position: absolute;
-                        bottom: 0px;
-                        max-width: 100%;
-                    }
-                    .top {
-                        position: absolute;
-                        top: 0px;
-                        max-width: 100%;
-                    }
-                    .separator {
-                        border-top: 1px solid #000;
-                        margin-top: 20px;
-                        margin-bottom: 20px;
-                    }
-                </style>
-                <section class="header">
-                    <div class="row">
-                        <div class="col-xs-12">
-                            <p class="text-center" style="margin-top: 10px; margin-bottom: 10px;"><span class="text-lg">COMPROBANTE SAT <span t-if="o.name" t-field="o.name"/></span></p>
-                            <div class="image-container">
-                                <div class="image-cropper">
-                                    <img class="top" t-att-src="'data:image/png;base64,%s' % printBarcode(o.id, 732, 472)"/>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </section>
-                <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
-                <div class="row">
-                    <div class="col-xs-12">
-                        MATERIAL A RECOGER<br/>
-                        <t t-if="o.line_ids">
-                            <table class="order_lines" style="width: 100%;">
-                                <thead>
-                                    <tr>
-                                        <th style="width: 75%;">Concepto</th>
-                                        <th style="width: 25%;" class="text-right">Uds.</th>
-                                    </tr>
-                                </thead>
-                                <tbody>
-                                    <t t-foreach="o.line_ids" t-as="line">
-                                        <tr>
-                                            <td><span t-if="line.description" t-field="line.description"></span></td>
-                                            <td class="text-right"><span t-if="line.quantity" t-field="line.quantity"></span></td>
-                                        </tr>
-                                    </t>
-                                </tbody>
-                            </table>
-                        </t>
-                        <br/>
-                        Cliente: <span t-if="o.partner_id.name" t-field="o.partner_id.name"/><br/>
-                        Teléfono: <span t-if="o.partner_id.phone" t-field="o.partner_id.phone"/><t t-if="o.partner_id.mobile"> - <span t-field="o.partner_id.mobile"/></t><br/>
-                        Fecha Entrada: <span t-if="o.order_date" t-field="o.order_date"/><br/>
-                        Fecha Recogida: <span t-if="o.planned_end_date" t-field="o.planned_end_date"/>
-                    </div>
-                </div>
-                <t t-if="o.consumed_ids">
-                    <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
-                    <table class="consumed_lines" style="width: 100%;">
-                        <thead>
-                            <tr>
-                                <th style="width: 45%;">Concepto</th>
-                                <th style="width: 15%;" class="text-right">Uds.</th>
-                                <th style="width: 20%;" class="text-right">Precio</th>
-                                <th style="width: 20%;" class="text-right">Subtotal</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <t t-foreach="o.consumed_ids" t-as="consumed">
-                                <tr>
-                                    <td><span t-if="consumed.description" t-field="consumed.description"/></td>
-                                    <td class="text-right"><span t-if="consumed.quantity" t-field="consumed.quantity"/></td>
-                                    <td class="text-right"><span t-if="consumed.price_unit" t-field="consumed.price_unit"/></td>
-                                    <td class="text-right"><span t-if="consumed.subtotal and consumed.price_unit" t-raw="consumed.quantity * consumed.price_unit"/></td>
-                                </tr>
-                            </t>
-                        </tbody>
-                    </table>
-                    <t t-set="total" t-value="get_total(o)"/>
-                    <p class="text-right" style="margin-top: 10px; margin-bottom: 0px;">Total <span class="text-md" t-esc="total"></span> EUR</p>
-
-                </t>
-                <section class="warning">
-                    <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
-                    <div class="row">
-                        <div class="col-xs-12">
-                            <p style="text-align: justify; margin-bottom: 0px;">
-                                <small class="warning-text">Presupuesto estimado, si durante la reparación el importe se modificara sustancialmente se consultará al cliente para su aprobación.</small>
-                            </p>
-                        </div>
-                    </div>
-                </section>
-                <t t-if="o.partner_id.company_id">
-                    <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
-                    <div class="row">
-                        <div class="col-xs-12">
-                            <p class="company-info text-center">
-                                <t t-if="o.partner_id.company_id.name"><span t-field="o.partner_id.company_id.name"/></t>
-                                <t t-if="o.partner_id.company_id.street">- <span t-field="o.partner_id.company_id.street"/>,</t>
-                                <t t-if="o.partner_id.company_id.zip"> <span t-field="o.partner_id.company_id.zip"/></t>
-                                <t t-if="o.partner_id.company_id.city">- <span t-field="o.partner_id.company_id.city"/></t>
-                                <t t-if="o.partner_id.company_id.state_id">(<span t-field="o.partner_id.company_id.state_id.name"/>)</t>
-                                <t t-if="o.partner_id.company_id.phone">- <span t-field="o.partner_id.company_id.phone"/></t>
-                                <t t-if="o.partner_id.company_id.email">- <span t-field="o.partner_id.company_id.email"/></t>
-                                <t t-if="o.partner_id.company_id.website">- <span t-field="o.partner_id.company_id.website"/></t>
-                            </p>
-                        </div>
-                    </div>
-                </t>
-            </div>
-        </template>
-
-        <!-- Contenido del informe -->
-        <template id="partner_report_document">
-            <t t-call="report.html_container">
-                <t t-call="repair_workorder_mejorado.workorder_partner"/>
-            </t>
-        </template>
-
-    </data>
-</openerp>

BIN
static/description/2.png


BIN
static/description/3.png


BIN
static/description/Digital_Signature.jpg


BIN
static/description/fb.jpg


BIN
static/description/icon.png


BIN
static/description/in.jpg


BIN
static/description/insta.jpg


BIN
static/description/odooqa32.png


BIN
static/description/serpent32.png


BIN
static/description/twitter.jpg


BIN
static/description/youtube.jpg


+ 3 - 0
static/src/css/style.css

@@ -0,0 +1,3 @@
+.print_clinicmedic{
+    height: 35px;
+}

+ 670 - 0
static/src/js/clinicmedic.js

@@ -0,0 +1,670 @@
+openerp.clinic_history_medic = function (instance, local) {
+    local.widgetInstance = null;
+    local.parentInstance = null;
+
+    local.ClinicHistorymedicWidget = instance.Widget.extend({
+        template : "clinic_history_medic.ClinicHistorymedic",
+        jsonDoc:[],
+
+        init:function(parent){
+            this._super(parent);
+        },
+
+        updateId : function(id){
+            var self = this;
+            self.id=id;
+        },
+
+        start: function () {
+            var self = this;
+            this.$el.click(function (e) {
+                self.fecthInitial();
+            });
+        },
+
+        valorNull:function(dato){
+            var valor ="";
+            if (dato){
+                if(dato == true && typeof dato == 'boolean'){
+                    valor=" ";
+                }else{
+                    valor=dato;
+                }
+            }
+            return valor;
+        },
+
+        fecthInitial: function(){
+            var id= openerp.webclient._current_state.id;
+            var self = this;
+            self.fecthClinicMedicvisit(id).then(function(ClinicMedicvisit){
+                return ClinicMedicvisit;
+            }).then(function(ClinicMedicvisit){
+                self.ClinicMedicvisit = ClinicMedicvisit;
+                return self.fecthClinicMedicvisitLine();
+            }).then(function(ClinicMedicvisitLine){
+                self.ClinicMedicvisitLine = ClinicMedicvisitLine;
+                return self.drawPDF();
+            });
+            return false;
+        },
+
+        fecthClinicMedicvisit: function(id){
+            var domain=[['id','=', id]];
+            var ClinicMedicvisit = new instance.web.Model('clinic.history');
+            return ClinicMedicvisit.call('getClinicMedicvisit',[domain], {
+                context: new instance.web.CompoundContext()
+            });
+        },
+
+        fecthClinicMedicvisitLine: function () {
+            var self = this;
+            var clinichistory_ids = _.flatten(_.map(self.ClinicMedicvisit,function(map){
+                return map.id;
+            }));
+            var domain=[['clinichistory_id','in',clinichistory_ids]];
+            var ClinicMedicvisitLine = new instance.web.Model('clinic.history.line');
+            return ClinicMedicvisitLine.call('getClinicMedicvisitLine',[domain], {
+                context: new instance.web.CompoundContext()
+            });
+        },
+
+        drawPDF:function(){
+            var self = this;
+            var doc = self.ClinicMedicvisit.shift();
+            var docItem = [];
+            var docWorkItem = [];
+            var getColumns = [];
+            var getColumns1 = [];
+
+            var pdfDoc = new jsPDF();
+            pdfDoc.addImage("data:image/png;base64," + self.valorNull(doc.company_logo), 'PNG', 14, 3, 35, 20);
+
+            /*
+            =============================================================
+                OBTENER LINEAS DEL PEDIDO
+            =============================================================
+            */
+            var ClinicMedicvisitLine = self.ClinicMedicvisitLine;
+            for (var i = 0; i < ClinicMedicvisitLine.length; i++) {
+                docItem.push({
+                    xnumber : i + 1,
+                    product : ClinicMedicvisitLine[i].description,
+                    brand : ClinicMedicvisitLine[i].brand,
+                    number : ClinicMedicvisitLine[i].number
+                })
+            }
+
+            getColumns.push({
+                title : '',
+                dataKey: 'xnumber',
+                align: 'center',
+            });
+
+            getColumns.push({
+                title : 'Insumos utilizados:',
+                dataKey: 'product',
+                align: 'left',
+            });
+            getColumns.push({
+                title : 'Cantidad',
+                dataKey: 'brand',
+                align: 'center',
+            });
+            getColumns.push({
+                title : 'Estado',
+                dataKey: 'number',
+                align: 'center',
+            });
+
+            pdfDoc.autoTable(getColumns, docItem, {
+                theme: 'grid',
+                styles: {
+                    overflow: 'linebreak',
+                    columnWidth: 'auto',
+                    fontSize: 7,
+
+                },
+                headerStyles: {
+                    fillColor: [255, 255, 255],
+                    borderColor: [150, 152, 154],
+                    color: 'black',
+                    fontStyle: 'bold',
+                    textColor: [0, 0, 0],
+                    fontSize: 9
+                },
+                columnStyles: {
+                    xnumber : {halign:'center',columnWidth: '4px'},
+                    product : {columnWidth: '8px',fontStyle: 'bold'},
+                    brand : {halign:'center', columnWidth: '8px'},
+                    number : {halign:'center',columnWidth: '8px'},
+                },
+
+                margin: { top: 129, horizontal: 14},
+
+
+                addPageContent: function (data) {
+
+                    /*
+                    ====================================================================
+                        CABECERA
+                    ====================================================================
+                    */
+
+
+
+                    pdfDoc.setFontSize(14);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(105,10,'HISTORIA CLINICA PRE-HOSPITALAR');
+
+                    pdfDoc.setFontSize(12);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(105,23, 'SERVICIO INTEGRAL DE SALUD S.A.');
+
+                    pdfDoc.setFontSize(13);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(130,17,'Nº  ' +  doc.name);
+
+                    pdfDoc.setDrawColor('252', '252', '252');
+                    pdfDoc.rect(13, 25, pdfDoc.internal.pageSize.getWidth() - 18 , 29, 'S');
+                    pdfDoc.rect(13, 25, pdfDoc.internal.pageSize.getWidth() - 18 , 59, 'S');
+                    pdfDoc.rect(13, 25, pdfDoc.internal.pageSize.getWidth() - 18 , 105, 'S');
+                    pdfDoc.rect(13, 25, pdfDoc.internal.pageSize.getWidth() - 18 , 187, 'S');
+                    pdfDoc.rect(13, 25, pdfDoc.internal.pageSize.getWidth() - 18 , 195, 'S');
+                    /*
+                    ====================================================================
+                        PRIMERA SECCION
+                    ====================================================================
+                    */
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(14,32,'Médico: ' + doc.user_name);
+
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(71,32,'Paramédico: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(93,32, doc.paramedico_name);
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(149,32, 'Fecha: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(169,32, moment(doc.order_date).format('DD/MM/YYYY'));
+
+                    // pdfDoc.setFontSize(10);
+                    // pdfDoc.setFontStyle('normal');
+                    // pdfDoc.setTextColor(40);
+                    // pdfDoc.text(168,32, doc.partner_ruc);
+
+
+                    // pdfDoc.setFontSize(10);
+                    // pdfDoc.setFontStyle('normal');
+                    // pdfDoc.setTextColor(40);
+                    // pdfDoc.text(32,60, );
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(14,37,'At. Base: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(31,37,self.valorNull(doc.at_base));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(50,37,'Móvil: ' );
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(65,37, self.valorNull(doc.name_movil));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(149,37,'Nº de Salida: ' );
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(173,37, self.valorNull(doc.nro_salida));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,42,'Hora Recepción: ' );
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(46,42, moment(doc.planned_start_date).format('DD/MM/YYYY'));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(149,42,'Hora Atención: ' );
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(176,42, moment(doc.planned_end_date).format('DD/MM/YYYY'));
+
+                    // pdfDoc.setFontSize(10);
+                    // pdfDoc.setFontStyle('bold');
+                    // pdfDoc.setTextColor(40);
+                    // pdfDoc.text(14,42,'Factura N°: ');
+                    //
+                    // pdfDoc.setFontSize(10);
+                    // pdfDoc.setFontStyle('normal');
+                    // pdfDoc.setTextColor(40);
+                    // pdfDoc.text(29,42,self.valorNull(doc.nro_factura));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(14,47,'Calle: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(29,47, doc.partner_address);
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(149,47,'Nº: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(156,47, self.valorNull(doc.nro_salida));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(14,52,'Tipo: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(29,52,self.valorNull(doc.tipo_paciente));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(75,52,'Lugar Visita: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(98,52, self.valorNull(doc.lugar_visita));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,57,'Uso alcohol en gel: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(49,57, self.valorNull(doc.uso_gel));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(75,57,'Antiguedad en la empresa: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(122,57, self.valorNull(doc.name_movil));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(149,57,'Edad: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(156,57, self.valorNull(doc.partner_fecha_nac));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,62,'Nombre y apellido: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(47,62, self.valorNull(doc.partner_name));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(75,62,'Sexo: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(90,62, self.valorNull(doc.partner_sexo));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(149,62,'Seguro: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(156,62, self.valorNull(doc.seguro));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,67,'Antecedentes:');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(45,67, self.valorNull(doc.antecedente_paciente));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(75,67,'Alérgico: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(92,67, self.valorNull(doc.alergico));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(100,67, self.valorNull(doc.tipo_alergico));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(149,67,'Embarazada: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(172,67, self.valorNull(doc.embarazada));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,72,'Motivo de consulta: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(49,72, self.valorNull(doc.motivo));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,77,'Signos Vitales: P.A.');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(48,77, self.valorNull(doc.pa));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(75,77,'F.C.');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(88,77, self.valorNull(doc.fc));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(105,77,'F.R.');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(122,77, self.valorNull(doc.fr));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(149,77,'Tº ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(156,77, self.valorNull(doc.temp));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,82,'SO');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(31,82, self.valorNull(doc.so));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(75,82,'HGT');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(90,82, self.valorNull(doc.hgt));
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,87,'Hallazgos Positivos del Examen Físico (o datos de importancia): ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(self.valorNull(doc.diagnostic), 14,92, {maxWidth:188,align:'justify'});
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,112,'Indicación Médica: ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(self.valorNull(doc.indicacion), 14,117, {maxWidth:188,align:'justify'});
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(10);
+                    pdfDoc.text(14,122,'Tratamiento Administrativo(medicamentos y dosis): ');
+
+                    pdfDoc.setFontSize(10);
+                    pdfDoc.setFontStyle('normal');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(self.valorNull(doc.actions), 14, 127, {maxWidth:188,align:'justify'});
+                }
+            });
+
+
+
+            // pdfDoc.setFontSize(10);
+            // pdfDoc.setFontStyle('bold');
+            // pdfDoc.setTextColor(10);
+            // pdfDoc.text(14,127,'Insumos utilizados: ');
+            //
+            // pdfDoc.setFontSize(10);
+            // pdfDoc.setFontStyle('normal');
+            // pdfDoc.setTextColor(40);
+            // pdfDoc.text(self.valorNull(doc.actions), 14,pdfDoc.autoTable.previous.finalY + 10, {maxWidth:188,align:'justify'});
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(10);
+            pdfDoc.text(14,pdfDoc.autoTable.previous.finalY + 5,'Recomendaciones: ');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(self.valorNull(doc.recommendations), 14,pdfDoc.autoTable.previous.finalY + 10, {maxWidth:188,align:'justify'});
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(10);
+            pdfDoc.text(14,pdfDoc.autoTable.previous.finalY + 20,'Epicrisis:');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(30,pdfDoc.autoTable.previous.finalY + 25, self.valorNull(doc.epicrisis));
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(80,pdfDoc.autoTable.previous.finalY + 25,'Clasificación de la Atención: ');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(125,pdfDoc.autoTable.previous.finalY + 25, self.valorNull(doc.clasificacion));
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(10);
+            pdfDoc.text(14,pdfDoc.autoTable.previous.finalY + 30,'Diagnóstico Presuntivo:');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(14,pdfDoc.autoTable.previous.finalY + 35, self.valorNull(doc.presuntivo));
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(14,pdfDoc.autoTable.previous.finalY + 45,'Firma y Sello Profesional SIS');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(110,pdfDoc.autoTable.previous.finalY + 45,'Firma Paciente o Responsable');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(14,pdfDoc.autoTable.previous.finalY + 50,'Paramédico');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.addImage("data:image/png;base64," + self.valorNull(doc.signature_image_paramedico), 'PNG', 40, pdfDoc.autoTable.previous.finalY + 45, 18, 15);
+      //      pdfDoc.text(35,pdfDoc.autoTable.previous.finalY + 50, self.valorNull(doc.signature_image_paramedico));
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(110,pdfDoc.autoTable.previous.finalY + 50,'C.I.Nª:');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(120,pdfDoc.autoTable.previous.finalY + 50, self.valorNull(doc.presuntivo));
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+          //  var imgData = 'data:image/jpeg;base64,'+ Base64.encode('doc.signature_image_paciente');
+            pdfDoc.addImage("data:image/png;base64," + self.valorNull(doc.signature_image_paciente), 'PNG', 160, pdfDoc.autoTable.previous.finalY + 35, 18, 15);
+            //pdfDoc.text(170,pdfDoc.autoTable.previous.finalY + 50, self.valorNull(imgData));
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(14,pdfDoc.autoTable.previous.finalY + 60,'Médico');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.addImage("data:image/png;base64," + self.valorNull(doc.signature_image_medico), 'PNG', 55, pdfDoc.autoTable.previous.finalY + 55, 18, 15);
+          //  pdfDoc.text(30,pdfDoc.autoTable.previous.finalY + 60, self.valorNull(doc.signature_image_medico));
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+          //  pdfDoc.text(65,pdfDoc.autoTable.previous.finalY + 60, self.valorNull(doc.user_image));
+            pdfDoc.addImage("data:image/png;base64," + self.valorNull(doc.user_image), 'PNG', 75, pdfDoc.autoTable.previous.finalY + 50, 18, 15);
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(14,pdfDoc.autoTable.previous.finalY + 65,'Informado a: ');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(30,pdfDoc.autoTable.previous.finalY + 65, ' ');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(110,pdfDoc.autoTable.previous.finalY + 65,'Entrega a: ');
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('normal');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(128,pdfDoc.autoTable.previous.finalY + 65, ' ');
+
+
+            pdfDoc.setFontSize(10);
+            pdfDoc.setFontStyle('bold');
+            pdfDoc.setTextColor(40);
+            pdfDoc.text(70,pdfDoc.autoTable.previous.finalY + 75,'"EXCELENCIA EN SERVICIOS DE SALUD"');
+
+            pdfDoc.save('HISTORIA CLINICA PRE-HOSPITALAR.pdf');
+        },
+    });
+    if (instance.web && instance.web.FormView) {
+        instance.web.FormView.include({
+            load_form: function (record) {
+                this._super.apply(this, arguments);
+                if (this.model !== 'clinic.history') return;
+                local.parentInstance = this;
+                if (local.widgetInstance) {
+                    local.widgetInstance.updateId(record.id);
+                }
+                local.widgetInstance = new local.ClinicHistorymedicWidget(this);
+                var elemento = this.$el.find('.oe_form_sheet.oe_form_sheet_width');
+                elemento =  elemento.find('.oe_right.oe_button_box.clinichistorymedic_button_box');
+                local.widgetInstance.appendTo(elemento);
+                local.widgetInstance.updateId(record.id);
+            }
+        });
+    }
+};

+ 9 - 0
static/src/xml/clinicmedic.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template xml:space="preserve">
+    <t t-name="clinic_history_medic.ClinicHistorymedic">
+        <button class="print_clinicmedic oe_stat_button btn btn-default oe_inline">
+            <div class="stat_button_icon fa fa-download"></div>
+            <div> Imprimir </div>
+        </button>
+    </t>
+</template>

+ 17 - 0
views/clinicmedic.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+	<data>
+        <record model="ir.ui.view" id="clinichistorymedic_print">
+            <field name="name">clinichistorymedic.print</field>
+            <field name="model">clinic.history</field>
+            <field name="inherit_id" ref="clinic_history_medic.form_clinic_history_sis"/>
+            <field name="arch" type="xml">
+							 <!-- <xpath expr="//field[@name]" position="inside">  -->
+							  <!-- <xpath	expr="//footer" position="inside"> -->
+                <xpath expr="//div[@class='oe_title']" position="after">
+										<div class="clinichistorymedic_button_box oe_right oe_button_box" id="clinichistorymedic_button_container"></div>
+								</xpath>
+            </field>
+        </record>
+	</data>
+</openerp>

+ 10 - 0
views/template.xml

@@ -0,0 +1,10 @@
+<openerp>
+    <data>
+        <template id="clinic_history_medic.assets_backend" name="clinichistory_print_assets" inherit_id="eiru_assets.assets">
+            <xpath expr="." position="inside">
+                <link rel="stylesheet" href="/clinic_history_medic/static/src/css/style.css"/>
+                <script type="text/javascript" src="/clinic_history_medic/static/src/js/clinicmedic.js"/>
+            </xpath>
+        </template>
+    </data>
+</openerp>