Update app.py
Browse files
app.py
CHANGED
@@ -3,6 +3,7 @@ import gradio as gr
|
|
3 |
import cv2
|
4 |
import easyocr
|
5 |
from simple_salesforce import Salesforce
|
|
|
6 |
|
7 |
# Salesforce credentials
|
8 |
Salesforce_User_Name = '[email protected]' # Your Salesforce username
|
@@ -29,32 +30,45 @@ def extract_patient_info(image):
|
|
29 |
result = reader.readtext(image_rgb)
|
30 |
extracted_text = " ".join([detection[1] for detection in result])
|
31 |
|
32 |
-
#
|
33 |
-
inputs = tokenizer(extracted_text, return_tensors="pt")
|
34 |
-
outputs = model(**inputs)
|
35 |
-
|
36 |
-
# Here, extracted_text is already available from EasyOCR, we can extract relevant details
|
37 |
details = extract_details_from_text(extracted_text)
|
38 |
|
39 |
# Create a record in Salesforce using the extracted details
|
40 |
create_salesforce_record(details)
|
41 |
|
42 |
-
# Return the extracted text
|
43 |
return extracted_text
|
44 |
|
45 |
-
# Function to extract details from the extracted text
|
46 |
def extract_details_from_text(extracted_text):
|
47 |
-
#
|
48 |
details = {}
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
return details
|
55 |
|
56 |
-
# Function to create a record in Salesforce
|
57 |
def create_salesforce_record(details):
|
|
|
58 |
data = {
|
59 |
'Name__c': details['Name'],
|
60 |
'Age__c': int(details['Age']),
|
|
|
3 |
import cv2
|
4 |
import easyocr
|
5 |
from simple_salesforce import Salesforce
|
6 |
+
import re
|
7 |
|
8 |
# Salesforce credentials
|
9 |
Salesforce_User_Name = '[email protected]' # Your Salesforce username
|
|
|
30 |
result = reader.readtext(image_rgb)
|
31 |
extracted_text = " ".join([detection[1] for detection in result])
|
32 |
|
33 |
+
# Extract relevant details (Name, Age, Gender, Phone number) from the extracted text
|
|
|
|
|
|
|
|
|
34 |
details = extract_details_from_text(extracted_text)
|
35 |
|
36 |
# Create a record in Salesforce using the extracted details
|
37 |
create_salesforce_record(details)
|
38 |
|
39 |
+
# Return the extracted text for display
|
40 |
return extracted_text
|
41 |
|
42 |
+
# Function to extract details from the extracted text using regex
|
43 |
def extract_details_from_text(extracted_text):
|
44 |
+
# Regex patterns to match Name, Age, Gender, and Phone number
|
45 |
details = {}
|
46 |
+
|
47 |
+
# Extract Name
|
48 |
+
name_match = re.search(r"Name[:\s]*([A-Za-z\s]+)", extracted_text)
|
49 |
+
if name_match:
|
50 |
+
details['Name'] = name_match.group(1)
|
51 |
+
|
52 |
+
# Extract Age
|
53 |
+
age_match = re.search(r"Age[:\s]*([\d]+)", extracted_text)
|
54 |
+
if age_match:
|
55 |
+
details['Age'] = age_match.group(1)
|
56 |
+
|
57 |
+
# Extract Gender
|
58 |
+
gender_match = re.search(r"Gender[:\s]*(Male|Female)", extracted_text, re.IGNORECASE)
|
59 |
+
if gender_match:
|
60 |
+
details['Gender'] = gender_match.group(1)
|
61 |
+
|
62 |
+
# Extract Phone number
|
63 |
+
phone_match = re.search(r"Phone number[:\s]*([\d]+)", extracted_text)
|
64 |
+
if phone_match:
|
65 |
+
details['Phone Number'] = phone_match.group(1)
|
66 |
+
|
67 |
return details
|
68 |
|
69 |
+
# Function to create a record in Salesforce using the extracted details
|
70 |
def create_salesforce_record(details):
|
71 |
+
# Prepare the data to be inserted into Salesforce
|
72 |
data = {
|
73 |
'Name__c': details['Name'],
|
74 |
'Age__c': int(details['Age']),
|