# openEHR Tools

## Dependencies: 
```
fhirpath
tree-model
lodash
ajv
luxon
yaml
chai
ts-morph [ do we really need ?]
zustand [ do we really need ?]
```

## Install:
```
npm i
```

## Run tests:
```
npm run test
```


## Specifications on what this transformation library should be able to do:

### Archetype based components:
- [ ] Support a data type that can be outputted from archetype components. This output should be able to serialize to standard openEHR JSON.
- [ ] Load up a composition in archetype components. The library should be able to parse the intermediate format and bind it back to archetype based components for future edits.

### Clinikk / Eka.care scenarios:
- [ ] Transfer medications from current one composition to another composition of a different template - Use floating compositions as intermediate format. Parse and serialize from and to desired template.
- [ ] Show suggestions for other sign / symptom based on the list of sign/symptom entered - Fever, Malise - clicking on these suggestions should add these as sign/symptom with the appropriate data elements to the UI while also altering the current working composition. Floating compositions can be used as the input format since its template agnostic.


### ABDM M2 scenarios:
Get a set of openEHR compositions with webtemplates -> Convert these to FHIR resource Bundles by looking at the archetypes that are contained in each resource (use a configurable YAML to actually store mapping knowledge)

### ABDM M3 scenarios:
Get a FHIR resource Bundle -> Convert to appropriate openEHR composition using configurable YAML