Skip to content

DiagramBD

Agustin MoranR edited this page Jul 17, 2020 · 19 revisions

Estructura de la base de datos.

Elegimos Firestore como la base de datos del proyecto, ya que el ecosistema de Firebase nos ayudaba a cumplir con los requerimientos del proyecto.

Es una base de datos no relacional basada en documentos y la estructuramos de la siguiente manera.

Se divide en 3 colecciones principales:

  • Users
  • clinicHistory
  • Exams

En cada una de estás colecciones el usuario tiene su propio documento.

Y en las collectiones "ClinicHistory" y "Exams" dicho documento del usuario contiene una sub-colección.

ClinicHistory---consults

Exams-----------examsAssigned

Las sub-collecciones "consults" y "examsAssigned" contendrán cada consulta y examen asignado al usuario.

(Cada consulta es un documento y los exámenes relacionados a una consulta, también serán un documento).

Estructura de la base de datos en Firestore.

Firestore 
        |Collection|        |Document|        |Sub-Collection|     |Sub-Document|
        +
        + Users ------------UserDocument
        +                               
        +
        + ClinicHistory-----UserDocument---------Consults----------consultDocument   
        +                                                                       
        +                                                                                  
        + Exams-------------UserDocument-------ExamsAssigned--------examDocument

Ejemplo de como es el flujo dentro de las colecciones y subcolecciones en Firestore.

firestore flow

Colecciones Formato JSON.

Usuarios

const users = [
    {
        "userId": "MOORO25631EREW25",
        "UserData": {
            "lastName": "User",
            "name": "New",
            "numberContact": 555555,
            "email": "newuser@gmail.com",
            "rol": "Admin",
            "identityNumber": "MOORO25631EREW25",
            "userStatus": true,
            "documentType": "INE"
        }
    }
]

Exámenes Clínicos

const exam = [
    {
        "userId": "MOORO25631EREW25",
        "examsAssigned": [
            {
                "examId": "3QUf7iM5zwyhrX1ajsGIe",
                "exam": {
                    "consultId": "15-7-2020-23:45:9",
                    "examId": "3QUf7iM5zwyhrX1ajsGIe",
                    "typeExam": "Sangre",
                    "pdfURL": "https://firebasestorage.googleapis.com/v0/b/in-vitro-470ae.appspot.com/o/C66ZE-3Og4iRBAQbQIh60.pdf?alt=media",
                    "status": true
                }
            }
        ]
    }
]

Historial Clínico

const clinicHistory = [
    {
        "userId": "MOORO25631EREW25",
        "consults": [
            {
                "consultId": "15-7-2020-23:45:9",
                "consult": {
                    "consultId": "15-7-2020-23:45:9",
                    "examsId": [
                        "3QUf7iM5zwyhrX1ajsGIe",
                        "i-3hQfn2_8WpFKP63PLNE"
                    ],
                    "indications": "Favor de acudir al área de exámenes clinico en ayunas de más de 6hrs",
                    "aditionalData": "blabla",
                    "date": "Wed Jul 15 2020"
                }
            }
        ] 
    }
]

Clone this wiki locally