Sección 2: Pacientes

Conexión a base de datos, generación de servicios REST registro, actualización,eliminación y obtención de pacientes

La segunda sección es el CRUD de pacientes, creación, registro modificación y eliminación de datos relacionados al paciente.

La interfaz de usuario reside en el nodo "Paciente HTML", el cual esta escrito en html, css, js y utiliza jsgrid para poblar una tabla y permitir las acciones de CRUD.

Algunas validaciones básicas fueron implementadas como, que el campo ingresado sea el correcto (integer, float, double, string), que la identidad sea el ID del estudiante o la cédula como dato de identificación.

El código que permite el poblado de datos, registro, modificación y eliminación es el siguiente:

    <script type="text/javascript">
        $(function() {
            $("#jsgrid").jsGrid({
                width: "98%",
                inserting: true,
                editing: true,
                sorting: true,
                paging: true,
                filtering: true,
                inserting: true,
                autoload: true,
                pageSize: 15,
                pageButtonCount: 5,
                autoload: true,
                deleteConfirm: function(item) {
                    return "El paciente \"" + item.paciente_nombre + "\" va a ser eliminado del registro";
                },
                fields: [
                    {
                    name: "paciente_id",
                    type: "hidden",
                    css: 'hide'
                    },
                    {
                    title: "Nombre y Apellido",
                    name: "paciente_nombre",
                    type: "text",
                    width: 50,
                    validate: "required"
                    }, 
					{
                    title: "Edad",
                    name: "paciente_edad",
                    type: "number",
                    width: 25,
                    validate: { validator: "range", param: [10, 100] } 
                    }, 
					{
                    title: "Género",
                    name: "paciente_genero",
                    width: 50,
                    type: "select",
                    items: [
                         { Name: "", Id: "-" },
                         { Name: "Masculino", Id: "M" },
                         { Name: "Femenino", Id: "F" },
                         { Name: "Otro", Id: "O" }
                    ],
                    valueField: "Id",
                    textField: "Name",
                     validate: { message: "Género debe ser especificado", validator: function(value) { return value != "-"; } }
                    }, 
					{
                    title: "Identidad",
                    name: "paciente_identidad",
                    type: "text",
                    width: 50,
                    validate: { validator: "rangeLength", param: [9, 10] }
                    }, 
					{
                    type: "control"
                    }],

                controller: 
                                
                {
                        loadData: function(filter) {
                          return $.ajax({
                            url: "/api/pacientes",
                            dataType: "json"
                          });
                        },

                    insertItem: function(item) {
                        var d = $.Deferred();
                        $.ajax({
                            type: "POST",
                            url: "/api/pacientes",
                            data: item
                        }).done(function(insertItemReturnedFromServer) {
                            d.resolve(insertItemReturnedFromServer); 
                            $("#jsgrid").jsGrid("loadData");
                        });
                        return d.promise();
                    },
                    updateItem: function(item) {
                        var d = $.Deferred();
                        $.ajax({
                            type: "PUT",
                            url: "/api/pacientes/update",
                            data: item
                        }).done(function(updatedItemReturnedFromServer) {
                            d.resolve(updatedItemReturnedFromServer); 
                        });
                        return d.promise();
                    },
                    /*updateItem: function(item) {
                        return $.ajax({
                            type: "PUT",
                            url: "/api/pacientes/update",
                            data: item
                        });
                    },*/
                    deleteItem: function(item) {
                        return $.ajax({
                            type: "DELETE",
                            url: "/api/pacientes/delete",
                            data: item
                        });
                    }
                }
            });
           // setInterval(function(){$("#jsgrid").jsGrid("loadData");}, 5000);
        });
    </script>

Para generar los servicios REST, se hacen consultas a la base de datos por lo que es necesario configurar estos nodos con los datos de la base.

Cada nodo anterior al nodo de la base de datos contendrá el SQL query respectivo a la acción de CRUD de la siguiente forma:

msg.topic="SELECT * FROM paciente";
return msg;

GET Pacientes

GET http://localhost:1880/api/pacientes

Permite la obtención de todos los pacientes en la base de datos

Query Parameters

Name
Type
Description

paciente_id

integer

Obtendrá el o los pacientes

[{"paciente_id":0,"paciente_nombre":"...","paciente_edad":0,"paciente_genero":"...","paciente_identidad":"..."}]
msg.topic="UPDATE paciente SET paciente_nombre='" + msg.payload.paciente_nombre + "', paciente_edad='" + msg.payload.paciente_edad + "', paciente_genero='" + msg.payload.paciente_genero + "', paciente_identidad='" + msg.payload.paciente_identidad + "' WHERE paciente_id='" + msg.payload.paciente_id + "'";
return msg;

UPDATE Paciente

PUT localhost:1880/api/pacientes/update/api/pacientes/update/paciente_id

Permite la actualización de los datos del paciente

Query Parameters

Name
Type
Description

paciente_id

integer

Request Body

Name
Type
Description

paciente_identidad

string

paciente_genero

object

paciente_edad

integer

paciente_nombre

string

"El paciente fue actualizado"
msg.topic="DELETE FROM paciente WHERE paciente_id='" + msg.payload.paciente_id + "'";
return msg;

DELETE Paciente

DELETE localhost:1880/api/pacientes/delete/api/pacientes/delete/paciente_id

Permite la eliminación de la información de un paciente

Query Parameters

Name
Type
Description

paciente_id

integer

"La información del paciente fue eliminado"

nombre = msg.payload.paciente_nombre
edad = msg.payload.paciente_edad
genero=msg.payload.paciente_genero
identidad=msg.payload.paciente_identidad
msg.topic = "INSERT INTO paciente (`paciente_nombre`,`paciente_edad`,`paciente_genero`,`paciente_identidad`) VALUES ('"+ nombre +"',"+ edad +",'"+ genero +"','"+ identidad +"');"
return msg;

POST Paciente

POST localhost:1880/api/pacientes

Permite la actualización de los datos del paciente

Request Body

Name
Type
Description

paciente_identidad

string

paciente_genero

object

paciente_edad

integer

paciente_nombre

string

"El paciente fue ingresado"

Última actualización

¿Te fue útil?