Decisions to take
In italic, decisions proposed by bluesquare, still open point are in bold
Out of scope
- Iterative approach was already validated for new OpenIMIS
- Mobile development
- presentation management
- synchronization
Strategy (iterative approach)
- Modularity level
- by business domain
- Coarse or fine grained
- by layer (frontend, back ends)
- by business domain
- What will be an OpenIMIS module:
- Unidirectional dependencies
- Open for extension but close for modifications
- Loose coupling: can be plug or unplug at will but it is costly and not easy to learn
- Business logic must be on the backend not on the database
- Level of customization (data source, logic , parameters, ....
- Internalization
- Keep drop down translation in database
- Enforce Internalization in a single place (label + dropdown)
- What standards need to be used to retrieve and publish data
- FHIR (external)
- Database connectors (module internal)
- Current API (intra module)
- Use Django security/ user features
- What action modules should be able to trigger on other module:
- Should we have Business process management
- Should we use only event (dynamic) or contributions (static)
Tools
- Front ends: GUI
- Language : Javascript
- Framework : React
- Back end:
- Language : Python
- Framework : REST Django + Celery and RabbitMQ
- Database :
- Legacy To-be PostgreSQL
- New development: FHIRbase with PostgreSQL + JSONB
- Naming convention
- Batches : recurrent jobs to updates records / workflows
- Language : Python
- Framework : Django
- recommended task planner: Airflow
- Standard for API
- FHIR
- JSON API ....
- What module should be part of Tender 1:
- Name
- Boundaries