hospitalrun / hospitalrun Goto Github PK
View Code? Open in Web Editor NEWMonorepo that holds all of HospitalRun's v2 projects.
Home Page: https://hospitalrun.io
License: MIT License
Monorepo that holds all of HospitalRun's v2 projects.
Home Page: https://hospitalrun.io
License: MIT License
This a new app section that allows to:
Offer an integrated tool for outbreak management
Yarn version:
1.19.1
Node version:
10.15.3
Platform:
win32 x64
Trace:
Error: EPERM: operation not permitted, open 'I:\hospitalrun\packages\cli\node_modules@typescript-eslint\experimental-utils\node_modules.bin\eslint.cmd'
As a user of HopspitalRun, I would like the ability to manage Labs in my clinic/hospital.
I should have the ability to do the following:
Dependabot couldn't authenticate with registry.npmjs.org.
Dependabot tried to authenticate with the details you previously provided, but authentication failed. If they are no longer valid you will need to provide Dependabot with new credentials.
You can provide authentication details in your Dependabot dashboard by clicking into the account menu (in the top right) and selecting 'Config variables'.
What's the difference between HospitalRun and Open-hospital (https://www.open-hospital.org/en)
Or do they share same goals?
Introduce a Single Source of Truth between all modules via Swagger/OpenAPI and JSON Schema specification
Open Closed and Substitution Principles. All packages must share common interfaces in order to ensure API compatibility for internal/external projects. We can EYODF by providing a shared interface #12 that is generated via a standard specification. This way each module
can extend | override
from the base
model | service
in order to preform module requirements.
Generated to ./packages/core/model
// In Component
import {User} from '@hospitalrun-org/core'
export default class MyComponent<User> {}
Generated to ./packages/core/services
// Consume Service
import {UserService} from '@hospitalrun-org/core'
let user = UserService.operationId({...})
Generated to ./packages/server/(plugins & services)
// Generates Decorators that look similar to:
import {UserService} from '@hospitalrun-org/core'
fastify.decorate(operationId, UserService.operationId)
// All route based services look similar to:
import {User} from '@hospitalrun-org/core'
fastify.post('/users', (request,reply)=> {reply.send( fastify.operationId(instanceof User))} )
Generated to ./packages/frontend/(tabs || pages)
// Example component
import {UserService, User} from '@hospitalrun-org/core'
import * as React from 'react'
export default class UserPage extends React.Component {
render(){
<HighLevelPage service={UserService} model={User}/>
}
}
// Example Router
import UserPage from './pages/UserPage'
const routes = [
{
path: '/user',
exact: true,
component: UserPage,
}
]
export default routes
First, the rate at which HospitalRun 2.0 is coming together is very impressive ... so sincere thanks to all developers contributing their time to work on this!
However, it is missing a vital feature from 1.0-beta. As of today, the staging version at https://staging.hospitalrun.io still lacks a very important feature of an EHR system: medication tracking.
Also, it would be great to make Related Persons more intuitive by adding the option to create a "related person" 's file at time of entry of the new patient's information (as opposed to having to save the entry, then adding another entry for the related person, then linking up the two persons via Related Persons in the first patient's record.)
Thanks a lot, and I hope this is taken into consideration!
Skeleton Screens instead of loading spinners
It increases the perceived speed and helps improve UX
Before you submit an issue we recommend you drop into our Slack workspace and ask any questions you have or mention any problems you've had getting started with HospitalRun.
Please read this entire template before posting any issue. If you ignore these instructions
and post an issue here that does not follow the instructions, your issue might be closed,
locked, and assigned the missing discussion
label.
While selecting the DOB there is no arrow for Year change. We have to go back month by month which is very tiring.
It will ease the users to select a date.
You need to create a chapter on monorepo readme (and report it later in each CONTRIBUTING.md files) in which to provide answers for new contributors. A draft of the questions can be taken from here:
https://hospitalrun.slack.com/archives/CM82FL0FR/p1585665672006500
Introduce End To End and Integration testing to the Mono-Repo
Separation of concern from the Frontend and Backend developers. Core developers can create test specifications which will act as release acceptance criteria during build time. This is done via CI triggers.
./test/
folder should contain compliance for HospitalRun CLI
, HospitalRun Server
and HospitalRun FrontEnd
integrations. If Feature X
is implemented in more than one module then we should have a ./test/feature_x.spec.ts
or ./test/feature_x/index.spec.ts
that ensures modules are working in a real world environment. All modules must pass a basic smoke test prior to E2E testing via cross-env CI=true pnpm test -r
. (jsdom, cypress, unit tests, etc)
merge feature branch
into next
branch === trigger monorepo
build with e2e/integration tests
a. Pass === release all packages (merge next into master in each changed module)
b. Fail === Notify linked issues/pull requests
import {frontend, server} from 'hospitalrun'
server.start({frontend}) // start backend with server side render
// Example SSR Feature
it('should server side render the frontend', () => {
browser.url(server.uri)
const title = browser.getTitle()
assert.equal(title, 'Some Assertion')
})
// Example Offline Feature
it('should work offline', () => {
browser.url(server.uri)
// We could simulate bad connections or limited throughput scenerios
browser.setNetworkConditions({ latency: 0, throughput: 0, offline: true })
const title = browser.getTitle()
assert.equal(title, 'Some Offline Assertion')
})
// Test all core service states e2e
it('should have X feature', () => {
browser.url(server.uri)
// Do some action that would create data in the database
// $('#button').click()
const data = server.db.get('someId')
assert.equal(data._id, 'someId)
})
Hi everyone! When you want to try the Hospital Run demo version it's a bit confusing and inconvenient how to sign in. It would be way better if we could come up with a different approach and/or at least make sure that text explaining what we need to do (copy and paste process) is bold and big, clear enough so there is no confusion along the way. Because most of the users are not coming from professional in tech background and they need a simple and convenient way to figure out stuff. Also, that would be fantastic if we get a chance to come up with a solution to eliminate "copy-paste" and make it easier for people. Thank You!
Hello
i want to install a version of hospitalrun to start develop my own app, but i don`t know what a repo should i use to install on windows ,
and want to know how to develop then build my own app with electron container ?
can you help ?
Before you submit an issue we recommend you drop into our Spectrum channel and ask any questions you have or mention any problems you've had getting started with HospitalRun.
Shared Interfaces between all modules using the open closed principle.
All core features should be contained into one central repository to be consumed in each individual project. There are two key features inside of the shared interfaces
We should inject service and model interfaces in each project as needed. This could be things like Redux State Reducers and PouchDB plugins that more than one module requires. We would isomorphicly configure/export a PouchDB instance and service interfaces to the models. We could use the exported services to bind our fastify-server and react-frontend. See example below
The core models/services code should be generated from a specification such as OpenAPI, Swagger, or JSON Schema and extended from in each module or at the export level of the shared interfaces repo.
# Given a swagger.yml in build folder and templates in ./templates
npx snc ./build/swagger.yml -t ./templates/core
# would result in
# ./packages/core/model/$modelName
# ./packages/core/service/$modelName
This could be code generated as well but for now it's just an example
import {UserService} from '@hospitalrun-org/core'
fastify.decorate('users', UserService)
Test and verify that version 2 is compatible with our monorepo and that all the features used (yarn workspace) work without problems
Some migration tips: https://next.yarnpkg.com/advanced/migration
Yarn 2 announcement: https://dev.to/arcanis/introducing-yarn-2-4eh1
Add a message in Login page that shows an error message when the user enter
if the server is down and the user credentials are correct, how will the user know what the problem is?
Lifecycle Management of the HospitalRun Mono Repo
A way to communicate between developers for things they need such as repositories created, contributors added, new services or anything else that involves the lifecycle of any of the ecosystem. We can leverage Terraform's github provider eventually but for now it's going to be checklist based.
This can also include any changes to our lifecycle such as commit lint or package releases
In the future this will include E2E testing between the different modules
I tried below command but not working,
git clone [email protected]:HospitalRun/hospitalrun.git
alternative I used is git clone https://github.com/HospitalRun/hospitalrun.git
cd hospitalrun
After that below command is not working
git submodule update --init --recursive
yarn
As a followup to HospitalRun/hospitalrun-frontend#2286 I thought it might be desirable to not allow any log messages in the application using a ESlint rule https://eslint.org/docs/rules/no-console
console
call from the applicationconsole
call in the applicationIs there any good reason why console
logs should be kept in the application?
Create a button inside every form that has a patient field in it (Scheduling, Medications, etc). The button opens a modal with a simplified version of the New Patient form with only the basic informations. After the creation, the new patient is automatically selected as a option in the patient field.
It is a very common feature that I have already seen in others HIS. It improves UI/UX by letting the user dynamically creates a new patient without leaving the current form, making it a little less frustrating.
While inside the Scheduling form, if the user needs to create a new appointment to a patient that has not already been registered, he can dynamically creates it with the Quick Create Patient modal form and promptly continue with the appointment register.
As In India there are some hospitals that ask for a profile picture of the patient while registration just for security issues.
While adding a new patient in the database
with there details there should be an option of clicking a live picture of the patient or selection a picture form system storage.
It would make decrease the duplication of the patient registration by different name and id.
Decreases the duplication of patient and storage capability increase
When Students Register for Common Entrance Exam for any University https://testservices.nic.in/ExamSys/root/applyfor.aspx
Login using OAuth2 authentication
A lot of organizations are using OAuth2 authentication, which provides SSO (single sign-on) feature while switching to and from different applications. Having this feature in hospitalrun will provide an opportunity for hospitals to access hospitalrun application without sign-in multiple times.
Hi,
I would like to know if anything related to Pathological lab that you would be added in near future which has automation so human error would be less in both the case in hospital and Pathological lab.
For eg: OCR used for adding right name and data of the patient etc.
Need the ability to:
Add "Request Medication" to quick create button in navbar requirement was missed when the basic medication module feature was implemented.
Add "Request Medication" to quick create button in navbar is required to keep the medication module in sync with other modules by having a quick add link for it in the navbar.
โ Creating entry file 8.6 secs
(typescript) Error: D:/anaym/projects/node/f/hospitalrun/packages/components/src/components/Layout/Container.tsx(33,25): semantic error TS2769: No overload matches this call.
Overload 1 of 2, '(props: Readonly<ReplaceProps<"symbol", BsPrefixProps<"symbol"> & ContainerProps>>): Container<"symbol">', gave the following error.
Type '"symbol" | "object" | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | "canvas" | ... 158 more ... | undefined' is not assignable to type '"symbol" | undefined'.
Type '"object"' is not assignable to type '"symbol" | undefined'.
Overload 2 of 2, '(props: ReplaceProps<"symbol", BsPrefixProps<"symbol"> & ContainerProps>, context?: any): Container<"symbol">', gave the following error.
Type '"symbol" | "object" | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | "canvas" | ... 158 more ... | undefined' is not assignable to type '"symbol" | undefined'.
Type '"object"' is not assignable to type '"symbol" | undefined'.
Error: D:/anaym/projects/node/f/hospitalrun/packages/components/src/components/Layout/Container.tsx(33,25): semantic error TS2769: No overload matches this call.
Overload 1 of 2, '(props: Readonly<ReplaceProps<"symbol", BsPrefixProps<"symbol"> & ContainerProps>>): Container<"symbol">', gave the following error.
Type '"symbol" | "object" | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | "canvas" | ... 158 more ... | undefined' is not assignable to type '"symbol" | undefined'.
Type '"object"' is not assignable to type '"symbol" | undefined'.
Overload 2 of 2, '(props: ReplaceProps<"symbol", BsPrefixProps<"symbol"> & ContainerProps>, context?: any): Container<"symbol">', gave the following error.
Type '"symbol" | "object" | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | "canvas" | ... 158 more ... | undefined' is not assignable to type '"symbol" | undefined'.
Type '"object"' is not assignable to type '"symbol" | undefined'.
at error (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\rollup\dist\shared\node-entry.js:5400:30)
at throwPluginError (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\rollup\dist\shared\node-entry.js:11878:12)
at Object.error (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\rollup\dist\shared\node-entry.js:12912:24)
at Object.error (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\rollup\dist\shared\node-entry.js:12081:38)
at RollupContext.error (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:17194:30)
at D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:24994:23
at arrayEach (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:534:11)
at forEach (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:9360:14)
at printDiagnostics (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:24967:5)
at Object.transform (D:\anaym\projects\node\f\hospitalrun\packages\components\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:29049:17)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @hospitalrun/[email protected] build: `tsdx build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @hospitalrun/[email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\anaym\AppData\Roaming\npm-cache\_logs\2020-05-30T16_06_01_227Z-debug.log
Standardize Formatting/Linting tools across code repositories:
Add table to readme to show the status of of the component project's statuses.
Information to show:
Hello, where I can found Dockerfile for server and all in one docker-compose.yml deployment file?
Thanks in advance,
Create React App(CRA) Frontend
Use react-scripts interface to manage the Hospital Run Frontend. This should include service/state/interface injections from #12
Route based generation. Use schema extensions to map routes to components
git clone --branch next https://github.com/HospitalRun/hospitalrun-frontend.git
npx create-react-app hospitalrun-frontend
cd hospitalrun-frontend
npm start
# mono repo runs codegen then creates
# ./packages/hospitalrun-frontend/src/routes/index.tsx
# In the Frontend
import {Router} from './routes' // Fully loaded router from spec
Was playing around with the demo and noticed that the hr admin ([email protected]) is unable to add new users with certain designations. Is that by design or is that only for the demo? Otherwise, would be worth adding it as an issue for version 2.0
Please
My high school is in need of a good clinic management system and I suggested Hospital Run.
Is there a way of connecting computers within a network to share the data saved on one about other patients. Thereby making one the server and others the client.
When commiting husky isn't properly called anymore.
The error is:
Can't find Husky, skipping pre-commit hook
You can reinstall it using 'npm install husky --save-dev' or delete this hook
Steps to reproduce the behavior: use any yarn commit-
script from monorepo or just commit from inside the specific package using cd packages/server && yarn commit
pre-commit hook working and checking build and tests
We are affected by this yarn issue yarnpkg/yarn#7734 since we are a monorepo and we use no-hoist on many build/dev packages. We will use this issue to track progresses on this yarn's regression. This bug is still present in the 1.21.x releases.
Worked up to version: yarn 1.19.1
Stopped working in version: 1.19.2
Steps to reproduce the behavior: just use yarn 1.19.2 or newer
Before you submit an issue we recommend you drop into our Slack workspace and ask any questions you have or mention any problems you've had getting started with HospitalRun.
Please read this entire template before posting any issue. If you ignore these instructions
and post an issue here that does not follow the instructions, your issue might be closed,
locked, and assigned the missing discussion
label.
I would like to recommend that the options to export reports should have additional formats like portable document format and spreadsheet.
This will allow for flexibility on how to work with the generated reports better.
Currently, reports are generated in comma separated values format.
There are some form input components that have inconsistent props or missing capabilities. For instance, Checkbox
has no way to set the initial value. I tried looking at the react-bootstrap docs and actually didn't see a way to set it there either, but there must be one. Because of this, Edit Patient doesn't populate the checkbox in GeneralInformation
with its correct initial value. Checkbox
also uses disabled
instead of isEditable
which is inconsistent with the other components.
Also, Typeahead
doesn't have a way to disable the input. This caused the need to conditionally render either Typeahead
or TextInputWithLabelFormGroup
in the AppointmentDetailsForm
component, which should be able to be done with a single component.
Neither Typeahead
nor Checkbox
currently use wrapper components in the frontend in the way TextInputWithLabelFormGroup
and others do, though I'm not sure if they are needed.
The various input elements should have a consistent API, at least to disable the input and populate the initial value.
Adding Patient B as a Related Person of Patient A should also add Patient A as a Related person to Patient B, with the appropriate Relationship Type also recorded.
Having to record the same relationship twice on two separate records creates extra work for the user.
Currently, if John Doe is added as a related person on Jane Doe's record, this relationship will not be recorded on John's record.
When a relationship is defined in a Patient record, that relationship should be mirrored on the record of the related person.
Not all relationships are 'symmetrical', so reference tables will need to be defined to determine the proper labelling, such as:
Partner : Partner
Spouse : Spouse
Sibling : Sibling
Parent : Child
Grandparent : Grandchild
Cousin : Cousin
Things get a little more complicated if gendered versions of the words are needed, especially for Uncle/Aunt/Niece/Nephew, which don't have commonly known gender-neutral equivalents (at least in English), but presumably we'd need a customisable "Other" option to cover all possibilities, anyway.
Further discussion and user stories are required to determine the most appropriate approach to the relationship system.
May affect or be affected by HospitalRun/hospitalrun-frontend#2106
Create end-users and developers documentation. The end-user documentation must also be navigable in offline mode.
The documentation will be hosted on:
Typescript Create React App that hosts docs.hospitalrun.io for general use and for sharing templates to other modules. Also a standard interface for collecting metadata about the current project via hospitalrun docs
command. Includes Shared StoryBook Components like ReadmePage.tsx
which uses the same templates as the cli readme generator.
Will host developers.hospitalrun.io for contribution guides and route to component storyboard/generic documentation. We can use the mono repo to generate it's documentation by using a standard ./docs
folder for each project. This would mean that @hospitalrun/frontend
's developer documentation would be hosted in it's local ./docs
folder with meta.json
data about it's routes\components. The metadata
would be loaded into the mono-repo documentation generator. See component documentation generation for an example of getting metadata from react documentation.
# Inside of package
hospitalrun docs
# outputs ./docs/meta.json and documentation for developers.hospitalrun.io/package-name
# inside of mono-repo
hospitalrun docs
# looks for all package metadata to build a "Shell" that links to each project page.
hospitalrun-docs
repositoryhospitalrun docs
hospitalrun-docs
github pageGreetings,
I am coming from an OSS community "Raid Group" that started in www.kentcdodds.com/discord we essentially look for OSS repositories that we can make a big to a huge impact in a short amount of time with us all working on a task together.
What was noticed with yours is the started conversion to Testing Library, this happens to by a specialty of ours.
Please let me know if your interested in this overhaul of your testing ecosystem from our group.
Regards.
We would develop some sort of "patient/appointment workflow" that allows these actions to facilitated.
Currently, HospitalRun v1 has a similar feature and it is executed through the Patient's module. There is the ability to checkin, checkout, discharge
Patient data save confirmation message toaster doesn't appear.
PR HospitalRun/hospitalrun-frontend#1703 should have added style to the confirmation toaster when creating a new patient record.
Add a Command Line Interface to Hospital Run
We should have a standard interface between the Core, Frontend and Backend developers. Any module that exports a bin: {}
configuration will be lazy loaded into the main cli if it has been installed.
#Install cli
npm install @hospitalrun-org/cli @hospitalrun-org/frontend --save-dev
# Start the frontend
npx hospitalrun start # Should fail if frontend is not installed
npm install @hospitalrun-org/server --save-dev
# Start the backend
npx hospitalrun server start # Should fail if server is not installed
I am putting this here so we keep it at the back of our minds. See this slack discussion: https://hospitalrun.slack.com/archives/CM82FL0FR/p1611862341014600
TBA
TBA
TBA
Dependabot couldn't authenticate with registry.npmjs.org.
Dependabot tried to authenticate with the details you previously provided, but authentication failed. If they are no longer valid you will need to provide Dependabot with new credentials.
You can provide authentication details in your Dependabot dashboard by clicking into the account menu (in the top right) and selecting 'Config variables'.
Hello everyone, I am currently using the hospital run for my class to show the features to my students, how can I see the database or where are the data being stored. Thanks for the help. P
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.