Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mskcc/smile-label-generator
SMILE messaging service for handling CMO label generation
https://github.com/mskcc/smile-label-generator
Last synced: about 1 month ago
JSON representation
SMILE messaging service for handling CMO label generation
- Host: GitHub
- URL: https://github.com/mskcc/smile-label-generator
- Owner: mskcc
- License: agpl-3.0
- Created: 2021-06-08T19:04:20.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-11-07T18:55:35.000Z (about 2 months ago)
- Last Synced: 2024-11-07T19:44:15.007Z (about 2 months ago)
- Language: Java
- Homepage:
- Size: 239 KB
- Stars: 0
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CMO Label Generator 🔍
CMO Label Generator is a distributed microservices system. It receives messages from LIMS when a request is marked delivered. This message is processed and a unique CMO label Id is generated based on specifications that can be found in CMOPatientIDandSampleIDgeneration.pdf. Any new message is then published to downstream subscribers. The message published is a JSON reqpresentation of SmileRequest (more details can be found in smile-server repository).
Label Generator is dependent on SMILE, Nats Jetstream and Nats RequestReply.
## Run
### Custom properties
Make an `application.properties` based on [application.properties.EXAMPLE](src/main/resources/application.properties.EXAMPLE).
Nats Pub/Sub topics:
- `igo.cmo_label_generator_topic` : receives requests to process
- `request_reply.patient_samples_topic` : used to patient samples set from SMILE Server
- `igo.new_request_topic` : publishes the processed request to this topicAll properties are required with the exception of some NATS connection-specific properties. The following are only required if `nats.tls_channel` is set to `true`:
Nats Connection props:
- `nats.keystore_path` : path to client keystore
- `nats.truststore_path` : path to client truststore
- `nats.key_password` : keystore password
- `nats.store_password` : truststore password### Locally
**Requirements:**
- maven 3.6.1
- java 8Add `application.properties` to the local application resources: `src/main/resources`
Build with
```
mvn clean install
```Run with
```
java -jar server/target/smile_label_generator.jar
```### With Docker
**Requirements**
- dockerBuild image with Docker
```
docker build -t /: .
```Push image to DockerHub
```
docker push /:
```If the Docker image is built with the properties baked in then simply run with:
```
docker run --name cmo-label-generator /: \
-jar /label-generator/smile_label_generator.jar
```Otherwise use a bind mount to make the local files available to the Docker image and add `--spring.config.location` to the java arg
```
docker run --mount type=bind,source=,target=/label-generator/src/main/resources \
--name label-generator /: \
-jar /label-generator/smile_label_generator.jar \
--spring.config.location=/label-generator/src/main/resources/application.properties
```