Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Docker (intro)

  • Base principles of Docker (image vs. container,... ) and Docker compose

  • DEMO: Using Docker to start a mssql database and restore (current) openIMIS backup

    • Configuring Microsoft Docker image in Docker-container yml file (mounting volumes,...)

    • Trigger image download and launch container:

      • Code Block
        docker-compose up imis-db
    • List running containers:

      • Code Block
        docker container ls
    • Connect to docker: 

      • Code Block
        docker exec -it openimis-poc_imis-db_1 /bin/bash
    • ... and, within the docker, restore database:

      • Code Block
        /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [demo] FROM DISK = N'/bck/demo.bak' WITH REPLACE, MOVE 'CH_CENTRAL' TO '/data/DEMO.mdf', MOVE 'CH_CENTRAL_log' TO '/data/DEMO_LOG.ldf'"

"All proxy" modularized frontend configuration

Implementing the Location backend module

  • Reverse of imis (mssql database) into django model:

python manage inspectdb > reverse/models.py

  • Moving the tblLocation and tblPayer to own module and fine tuning the model (Foreign keys,...)

  • python shell and navigation in model

  • exposing Location via the django /admin console

  • exposing the Location in json:api

  • exposing the Location in dynamic rest api

Replacing the locations_proxy by react locations implementation

  • Creating the Location react component and binding to rest api

  • Displaying Payers info within the Location detail, without hard dependence between module:

    • The PayersOfLocationList.js contribution

    • The LOCATION_SELECTED redux event

Database switch

  • Switching from managed = False to managed = True in django model

  • Changing the table name convention (prefixing by module name,...)

  • Clearing and regenerating migrations 

  • Switching database and recreate the database structure

  • Moving data from mssql to postgres

    • via CSV

    • via JSON... and JSONB column (via pgfutter)... some JSONB features

Module refactorings

  • adding a uuid to models

  • adapting the generated migration script to generate the uuid on existing database

Adopting FHIR as core data model

  • Using fhirbase to generate the FHIR database schema

  • Importing Locations into the FHIR tables... and adpatations in

    • the backend (django model)

    • the frontend