Commit 82d130a6 by arun.uday

v1

parents
# Default ignored files
/shelf/
/workspace.xml
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (task8redis) (2)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/task8redis.iml" filepath="$PROJECT_DIR$/.idea/task8redis.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
# using mongo aggregation operations
import uvicorn
# starting the application
if __name__ == "__main__":
print("Redis task")
uvicorn.run("scripts.services.app_services_run:app", port=8000)
# pip install python-multipart
[path]
base_path = scripts/
sub_path = temp/
[file]
file_name_json = data.json
[mqtt]
topic = receptionist
mqtt_host = 192.168.0.220
port = 1883
requests = 60
\ No newline at end of file
# reading conf file
import configparser
config = configparser.RawConfigParser()
config.read("conf/applications.conf")
# path
base_path = config.get("path", 'base_path')
sub_path = config.get("path", "sub_path")
# file name
file_name_json = config.get("file", "file_name_json")
full_path_json = base_path + sub_path + file_name_json
# mqtt
topic_name = config.get("mqtt", "topic")
mqtt_host = config.get("mqtt", "mqtt_host")
port = config.get("mqtt", "port")
request_no = config.get("mqtt", "requests")
import redis
conn = redis.Redis('127.0.0.1')
# model for the patient
from pydantic import BaseModel
class Patient(BaseModel):
patient_id: str
description: str
age: int
name: str
# generating new patient records
import json
def generate_patients(model_data):
dict_data = json.dumps(dict(model_data))
return dict_data
# generating json file
import json
def json_data(dict_data):
json_data_ = json.dumps(dict_data.to_dict(orient="records"))
return json_data_
from fastapi import FastAPI
import redis
from scripts.config.applications_config import full_path_json, mqtt_host, port, topic_name
from scripts.core.database.redis_db import conn
from scripts.core.engine.models.patient_model import Patient
from scripts.core.handlers.generating_patients_data import generate_patients
from paho.mqtt.client import Client
doctors_counter = 0
app = FastAPI()
# html form access using api
@app.get("/no_doctors/")
def get_doctors(no_doctors: int):
global doctors_counter
doctors_counter += no_doctors
conn.set("Doctors", no_doctors)
for doctors in range(0, no_doctors):
if not conn.exists(f'doctors_{doctors}'):
conn.set(f'doctors_{doctors}', 0)
else:
continue
@app.post("/close_day/")
def get_doctors():
global doctors_counter
for doctors in range(0, doctors_counter):
if not conn.exists(f'doctors_{doctors}'):
print(doctors)
else:
conn.delete(f'doctors_{doctors}')
doctors_counter -= 1
continue
@app.post("/patient_details/")
def patient_data(body: Patient):
global doctors_counter
patient_data_val = Patient(patient_id=body.patient_id, description=body.description,
age=body.age, name=body.name)
client = Client()
client.connect(mqtt_host, int(port))
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
# Subscribing in on_connect() means that if we lose the connection and
# reconnect then subscriptions will be renewed.
no_doctors = conn.get("Doctors")
for doctorsm in range(0, int(no_doctors)):
client.subscribe(f'doctors_{doctorsm}')
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))
client.on_connect = on_connect
client.on_message = on_message
dict_data = generate_patients(patient_data_val)
print(dict_data)
if not conn.exists(dict_data['patient_id']):
conn.hmset(dict_data['patient_id'], dict_data)
else:
for doctors in range(0, doctors_counter):
client.publish(topic_name, dict_data)
client.disconnect()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment