diff --git a/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
index 76014cc..3f32b10 100644
--- a/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
+++ b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
@@ -11,21 +11,32 @@
 test_dependencies = ["Company"]
 
 class TestFeeValidity(unittest.TestCase):
-	def test_fee_validity(self):
+	def setUp(self):
 		frappe.db.sql("""delete from `tabPatient Appointment`""")
 		frappe.db.sql("""delete from `tabFee Validity`""")
+
+	def test_fee_validity(self):
 		patient = get_random("Patient")
 		practitioner = get_random("Healthcare Practitioner")
-		department = get_random("Medical Department")
+		medical_department = get_random("Medical Department")
+
+		item = create_healthcare_service_items()
+		healthcare_settings = frappe.get_single("Healthcare Settings")
+		healthcare_settings.enable_free_follow_ups = 1
+		healthcare_settings.max_visits = 2
+		healthcare_settings.valid_days = 7
+		healthcare_settings.automate_appointment_invoicing = 1
+		healthcare_settings.op_consulting_charge_item = item
+		healthcare_settings.save(ignore_permissions=True)
 
 		if not patient:
 			patient = frappe.new_doc("Patient")
-			patient.patient_name = "_Test Patient"
+			patient.first_name = "_Test Patient"
 			patient.sex = "Male"
 			patient.save(ignore_permissions=True)
 			patient = patient.name
 
-		if not department:
+		if not medical_department:
 			medical_department = frappe.new_doc("Medical Department")
 			medical_department.department = "_Test Medical Department"
 			medical_department.save(ignore_permissions=True)
@@ -34,71 +45,53 @@
 		if not practitioner:
 			practitioner = frappe.new_doc("Healthcare Practitioner")
 			practitioner.first_name = "_Test Healthcare Practitioner"
+			practitioner.gender = 'Female'
 			practitioner.department = department
+			practitioner.op_consulting_charge = 500
 			practitioner.save(ignore_permissions=True)
 			practitioner = practitioner.name
 
-
-
-		frappe.db.set_value("Healthcare Settings", None, "max_visits", 2)
-		frappe.db.set_value("Healthcare Settings", None, "valid_days", 7)
-
-		appointment = create_appointment(patient, practitioner, nowdate(), department)
+		# appointment should not be invoiced as it is within fee validity
+		appointment = create_appointment(patient, practitioner, nowdate())
 		invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
 		self.assertEqual(invoiced, 0)
 
-		invoice_appointment(appointment)
-
-		appointment = create_appointment(patient, practitioner, add_days(nowdate(), 4), department)
-		invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
-		self.assertTrue(invoiced)
-
-		appointment = create_appointment(patient, practitioner, add_days(nowdate(), 5), department)
+		# appointment should not be invoiced as it is within fee validity
+		appointment = create_appointment(patient, practitioner, add_days(nowdate(), 4))
 		invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
 		self.assertEqual(invoiced, 0)
 
-		appointment = create_appointment(patient, practitioner, add_days(nowdate(), 10), department)
+		# appointment should be invoiced as it is within fee validity but the max_visits are exceeded
+		appointment = create_appointment(patient, practitioner, add_days(nowdate(), 5), invoice=1)
 		invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
-		self.assertEqual(invoiced, 0)
+		self.assertEqual(invoiced, 1)
 
-def create_appointment(patient, practitioner, appointment_date, department):
+		# appointment should be invoiced as it is not within fee validity and the max_visits are exceeded
+		appointment = create_appointment(patient, practitioner, add_days(nowdate(), 10), invoice=1)
+		invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
+		self.assertEqual(invoiced, 1)
+
+def create_appointment(patient, practitioner, appointment_date, invoice=0):
 	appointment = frappe.new_doc("Patient Appointment")
 	appointment.patient = patient
 	appointment.practitioner = practitioner
-	appointment.department = department
+	appointment.department = "_Test Medical Department"
 	appointment.appointment_date = appointment_date
 	appointment.company = "_Test Company"
 	appointment.duration = 15
+	if invoice:
+		appointment.mode_of_payment = "Cash"
+		appointment.paid_amount = 500
 	appointment.save(ignore_permissions=True)
 	return appointment
 
-def invoice_appointment(appointment_doc):
-	if not appointment_doc.name:
-		return False
-	sales_invoice = frappe.new_doc("Sales Invoice")
-	sales_invoice.customer = frappe.get_value("Patient", appointment_doc.patient, "customer")
-	sales_invoice.due_date = getdate()
-	sales_invoice.is_pos = 0
-	sales_invoice.company = appointment_doc.company
-	sales_invoice.debit_to = "_Test Receivable - _TC"
-
-	create_invoice_items(appointment_doc, sales_invoice)
-
-	sales_invoice.save(ignore_permissions=True)
-	sales_invoice.submit()
-
-def create_invoice_items(appointment, invoice):
-	item_line = invoice.append("items")
-	item_line.item_name = "Consulting Charges"
-	item_line.description = "Consulting Charges:  " + appointment.practitioner
-	item_line.uom = "Nos"
-	item_line.conversion_factor = 1
-	item_line.income_account = "_Test Account Cost for Goods Sold - _TC"
-	item_line.cost_center = "_Test Cost Center - _TC"
-	item_line.rate = 250
-	item_line.amount = 250
-	item_line.qty = 1
-	item_line.reference_dt = "Patient Appointment"
-	item_line.reference_dn = appointment.name
-
-	return invoice
+def create_healthcare_service_items():
+	if frappe.db.exists("Item", "HLC-SI-001"):
+		return "HLC-SI-001"
+	item = frappe.new_doc("Item")
+	item.item_code = "HLC-SI-001"
+	item.item_name = "Consulting Charges"
+	item.item_group = "Services"
+	item.is_stock_item = 0
+	item.save()
+	return item.name
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json
index 51db233..67712c9 100644
--- a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json
@@ -61,8 +61,7 @@
   {
    "fieldname": "last_name",
    "fieldtype": "Data",
-   "label": "Last Name",
-   "reqd": 1
+   "label": "Last Name"
   },
   {
    "fieldname": "image",
@@ -278,7 +277,7 @@
  ],
  "image_field": "image",
  "links": [],
- "modified": "2020-02-01 00:39:49.455988",
+ "modified": "2020-03-20 15:13:13.382212",
  "modified_by": "Administrator",
  "module": "Healthcare",
  "name": "Healthcare Practitioner",
diff --git a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py
index a5a675f..9bc68b6 100644
--- a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py
@@ -44,7 +44,10 @@
 			frappe.permissions.add_user_permission('Healthcare Practitioner', self.name, self.user_id)
 
 	def set_full_name(self):
-		self.practitioner_name = ' '.join(filter(None, [self.first_name, self.last_name]))
+		if self.last_name:
+			self.practitioner_name = ' '.join(filter(None, [self.first_name, self.last_name]))
+		else:
+			self.practitioner_name = self.first_name
 
 	def validate_user_id(self):
 		if not frappe.db.exists('User', self.user_id):
diff --git a/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py b/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py
index f10725e..1683492 100644
--- a/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py
+++ b/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py
@@ -79,7 +79,7 @@
 	patient = get_random("Patient")
 	if not patient:
 		patient = frappe.new_doc("Patient")
-		patient.patient_name = "Test Patient"
+		patient.first_name = "_Test Patient"
 		patient.sex = "Male"
 		patient.save(ignore_permissions=True)
 		return patient.name
diff --git a/erpnext/healthcare/doctype/patient/patient.json b/erpnext/healthcare/doctype/patient/patient.json
index 45a1379..c80efd3 100644
--- a/erpnext/healthcare/doctype/patient/patient.json
+++ b/erpnext/healthcare/doctype/patient/patient.json
@@ -342,8 +342,7 @@
   {
    "fieldname": "last_name",
    "fieldtype": "Data",
-   "label": "Last Name",
-   "reqd": 1
+   "label": "Last Name"
   },
   {
    "fieldname": "first_name",
@@ -362,7 +361,7 @@
  "image_field": "image",
  "links": [],
  "max_attachments": 50,
- "modified": "2020-02-25 17:56:46.351080",
+ "modified": "2020-03-20 14:59:53.945849",
  "modified_by": "Administrator",
  "module": "Healthcare",
  "name": "Patient",
diff --git a/erpnext/healthcare/doctype/patient/patient.py b/erpnext/healthcare/doctype/patient/patient.py
index e957a3f..d03a131 100644
--- a/erpnext/healthcare/doctype/patient/patient.py
+++ b/erpnext/healthcare/doctype/patient/patient.py
@@ -27,7 +27,10 @@
 		self.reload()
 
 	def set_full_name(self):
-		self.patient_name = ' '.join(filter(None, [self.first_name, self.last_name]))
+		if self.last_name:
+			self.patient_name = ' '.join(filter(None, [self.first_name, self.last_name]))
+		else:
+			self.patient_name = self.first_name
 
 	def add_as_website_user(self):
 		if self.email:
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
index 361a8d6..77b6b6a 100755
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
@@ -23,9 +23,9 @@
 		self.set_status()
 
 	def after_insert(self):
-		invoice_appointment(self)
 		self.update_prescription_details()
 		self.update_fee_validity()
+		invoice_appointment(self)
 		send_confirmation_msg(self)
 
 	def set_status(self):
@@ -105,6 +105,10 @@
 	automate_invoicing = frappe.db.get_single_value('Healthcare Settings', 'automate_appointment_invoicing')
 	appointment_invoiced = frappe.db.get_value('Patient Appointment', appointment_doc.name, 'invoiced')
 	fee_validity = check_fee_validity(appointment_doc)
+	if not fee_validity:
+		if frappe.db.exists('Fee Validity Reference', {'appointment': appointment_doc.name}):
+			return
+
 	if automate_invoicing and not appointment_invoiced and not fee_validity:
 		sales_invoice = frappe.new_doc('Sales Invoice')
 		sales_invoice.customer = frappe.get_value('Patient', appointment_doc.patient, 'customer')
diff --git a/erpnext/healthcare/utils.py b/erpnext/healthcare/utils.py
index 0ff86cb..0fedfcf 100644
--- a/erpnext/healthcare/utils.py
+++ b/erpnext/healthcare/utils.py
@@ -232,11 +232,11 @@
 
 
 def throw_config_service_item(is_inpatient):
-	service_item_lable = 'Out Patient Consulting Charge Item'
+	service_item_label = 'Out Patient Consulting Charge Item'
 	if is_inpatient:
-		service_item_lable = 'Inpatient Visit Charge Item'
+		service_item_label = 'Inpatient Visit Charge Item'
 
-	msg = _(('Please Configure {0} in ').format(service_item_lable) \
+	msg = _(('Please Configure {0} in ').format(service_item_label) \
 		+ '''<b><a href='#Form/Healthcare Settings'>Healthcare Settings</a></b>''')
 	frappe.throw(msg, title=_('Missing Configuration'))
 
