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
From openimis react app, the plugin.js file to activate plugins
Contributing to MainMenu with a simple entry point & fake module
In locations_proxy/index.js, main menu contribution et ProxyPage
Building the front docker image: Dockerfile, particularizing the node:8, adding the code and launching the webpack packaging for the front
Launch of the front docker image from docker-compose and access via the gateway (transmit session to openIMIS)
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