Git Product home page Git Product logo

medkey-org / medkey Goto Github PK

View Code? Open in Web Editor NEW
47.0 9.0 35.0 2.7 MB

Medkey Hospital Information System main repository: Practice Management for Practicioners & Hospitals, EHR, Patient Engagement

Home Page: https://medkey.org

License: GNU General Public License v3.0

PHP 91.85% Batchfile 0.02% JavaScript 5.56% CSS 2.40% Dockerfile 0.17%
automation modular ehr emr dental doctor-appointment-management hospital-management-system clinical

medkey's Introduction

Medkey EHR/EMR Hospital Information System

General

Medkey is free and open source hospital/clinic information system (HIS application) with integrated Electronic Health Record (EHR/EMR) features. It is web application build on top of the latest version of PHP7.

Licensed under GPL 3.0 and can be used for free at any medical organization (government, private, etc.).

Support & resources

Technological stack

Medkey is a modern web application, mainly based at backend (frontend is thin).

Current stack consists of:

  • PHP7.3+;
  • Yii2 Framework and Symfony4 at the infrastructure core of the system;
  • PostgreSQL/MySQL complete support, hypothetical support of other popular DBMSes (MS SQL, Oracle, MongoDb);
  • RabbitMQ at the core of integration, background and realtime functions;
  • Webpack, ReactJS and Backbone on frontend.

Modularity and extensibility

Medkey allow you to extend general branch of application by your modules and plugins.

Modules contain additional features, which can be absolutely separate from existing features, or, if neede, can integrate with basic modules.

Plugins extends existing functionality (can be extended basic modules, or other developers modules).

For modules development look for wiki.

Quick start

All instructions available on wiki at https://medkey.org/wiki.

medkey's People

Contributors

dependabot[bot] avatar dgrudinin avatar prohp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

medkey's Issues

Web installation for hostings

Some integrations of Medkey need web installation feature.

Installation process may look like such steps:

  1. Users upload Medkey files via ftp/sftp/other file transfer protocol, available on hosting;
  2. User puts Medkey files into executable directory and go to install URI
  3. Medkey installation script checks system requirements and missing conditions, if they are.
  4. When everything correct - installation script asks for next things:
  • Database type and configuration (must be available at least PostgreSQL and MySQL);
  • Critical application configuration parameters like wizard;
  • Administrative account configuration.
  1. After installation admin need to remove install directory from hosting.
  2. Administrator must see current application installation and configuration integrity status via web interface:
  • Removed or not installation directory;
  • Permissions on directories;
  • Database connection status;
  • Selected configuration.

Language switch feature for all users

Administrator can setup default Medkey instance language. Default language for any Medkey instance must be English.

User can setup his preferred interface language.

Default language can be setup via installation process. For now available only two languages: russian and english.

Error while Installing using Docker

I try Docker installation, but I get this set of errors:

Problem 1
    - medkey/composer-plugin is locked to version dev-master and an update of this package was not requested.
    - medkey/composer-plugin dev-master requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.1.0] but it does not match the constraint.
  Problem 2
    - yiisoft/yii2-composer is locked to version 2.0.7 and an update of this package was not requested.
    - yiisoft/yii2-composer 2.0.7 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.1.0] but it does notmatch the constraint.
  Problem 3
    - yiisoft/yii2-composer 2.0.7 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.1.0] but it does notmatch the constraint.
    - yiisoft/yii2 2.0.15.1 requires yiisoft/yii2-composer ~2.0.4 -> satisfiable by yiisoft/yii2-composer[2.0.7].
    - yiisoft/yii2 is locked to version 2.0.15.1 and an update of this package was not requested.

Missing input check for `number` field at ehr table/model

If user enter large ehr number, it will cause serious error:

SQLSTATE[22003]: Numeric value out of range: 7 ERROR: value "54353542132423" is out of range for type integer The SQL being executed was: SELECT MAX(cast(number as INT)) FROM "ehr"

Seen at demo stand.

Reporting module

Required to solve different documents and reports generation tasks. Integration must be done as separate module, but must be integrated with core functions.

General requirements:

  • Cross-platform
  • Open-source

Requirements:

  1. At CardView and GridView must be standard reporting feature interface, allowing reporting modules integrate with any entity in any module of application. If any reports exists for current entity, CardView and GridView must show control element, giving ablility to render any report, allowed by permission model.
  2. Reporting module must be registered in application via composer. If it is enabled, it must add module administration interface and register it's permissions in ACL registry.
  3. Each report can be allowed or restricted to user by set of rules, or registered as a separate object inside ACL. But not all reports must be registered in ACL, only that specified by administrator.
  4. Reports must be allowed to be grouped into linear groups list.
  5. Reports must be separated into two system types:
  • Context reports - reports, which can be generated for specified entity.
  • General reports - reports, which can be generated using central reporting interface.

Candidates on reporting engine:

  • JasperReports
  • ?

Settings partition

Must at minimum containt attributes:

A. Instance settings

  • Medkey instance title
  • Medkey title logo
  • Administrator E-mail

B. Regional settings

Set correct title on bundle of pages

Pages to be fixed:

  • Patient list
  • Patient card
  • EHRs list
  • EHR card
  • Order list
  • Order card
  • Appointment list
  • Appointment card
  • Record list
  • Record card
  • User list
  • User card
  • Role list
  • ACL list
  • ACL form
  • Directory list
  • Directory records list
  • Employee list
  • Employee card
  • Workplan list
  • Location list
  • Pricelist list
  • Pricelist card

ICD integration

  1. Must be able to load ICD data directly using official WHO API: https://icd.who.int/icdapi (with caching)
  2. Must be able to load ICD data from local storage
  3. Must be able to switch between ICD versions (available 2 versions: ICD10 and ICD11)
  4. Must store classifier information in disease
  5. Must be able to select TBD

Plugin extensibility feature for ACL business rules

For now available fixed set of business rules for ACL:

  • Author;
  • Owner;
  • Department;
  • Position.

For much more customization it need easy and standard extension mechanism.

As a result of this task:

  • Administrator can add new business rules using plugin installation mechanism (using UI module/plugin installer, or using composer installer);
  • Administrator can use added business rules in standard ACL features;
  • Developer and integrator can easily create new business rule and use it in own projects (open source or proprietary).

Add ability to create multiple records via create ACL form

Now create ACL form allows to create single record.

Administrator must be able to create ACL record with multiple priviliges.

Typical:

  • Select type
  • Select single role
  • Select one or many modules
  • Select one or many resources (dependent on selected modules, with indication inside dropdown list items to which module record it depends on)
  • Select one or many priviliges (dependent on selected resources, with indication inside dropdown list items to which resource record and module it depends on)

Add filters to ACL grid

ACL grid must be able to filter records by chain of attributes:

  • Type
  • Role title (dropdown with multiple select)
  • Module (dropdown with multiple select)
  • Resource (dropdown with multiple select, dependent on values of module filter attribute)
  • Privilege (dropdown with multiple select, dependent on values of resource filter attribute)
  • Date range on updated (from-to)

Bug with dropdown list of at create cabinet form (directory module)

Steps:

  1. Create two organizations;
  2. Create departments inside each organization;
  3. Open create cabinet form, select organization.

Expected behavior:

  1. Dependent dropdown list with departments change when we change organization.

Seen behavior:

  1. Dependent dropdown list with departments contain full list of departments.

Translate current user interface into english

Translate into english:

  • General messages
  • Error messages and notifications
  • Config module
  • Crm module
  • Dashboard module
  • Location module
  • Medical module
  • Organization module
  • Security module
  • Workplan module

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.