ref: 3dbf2f21c2fd84309d71826d053906e54b40c2f3
parent: dc58704308628f202b7496be7c2c6512a5a75912
author: Moses Olson, MD <52055478+nemo-olmax@users.noreply.github.com>
date: Mon Aug 12 06:50:23 PDT 2019
Add files via upload
--- /dev/null
+++ b/pages/doctor/application.go
@@ -1,0 +1,23 @@
+package doctor
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.DoctorAuth,
+ Css: "",
+ Path: "doctor/application",
+ Data: Application,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Application(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Application"),
+ }
+}
--- /dev/null
+++ b/pages/doctor/bookings.go
@@ -1,0 +1,25 @@
+package doctor
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.DoctorAuth,
+ Css: "",
+ Path: "doctor/bookings",
+ Data: Bookings,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Bookings(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Bookings"),
+ "mainHeader": p.Sprintf("Available patients"),
+ // more fields to populate when we have db access
+ }
+}
--- /dev/null
+++ b/pages/doctor/findpatients.go
@@ -1,0 +1,25 @@
+package doctor
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.DoctorAuth,
+ Css: "",
+ Path: "doctor/findpatients",
+ Data: Findpatients,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Findpatients(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Find Patients"),
+ "mainHeader": p.Sprintf("Available patients"),
+ // more fields to populate when we have db access
+ }
+}
--- /dev/null
+++ b/pages/help/appointments.go
@@ -1,0 +1,53 @@
+package help
+
+import (
+ "html/template"
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "help/appointments",
+ Data: Appointments,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Appointments(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | FAQ"),
+ "mainHeader": p.Sprintf("Olmax Medical"),
+ "requestHeader": p.Sprintf("Appointment Requests"),
+ "statusHeader": p.Sprintf("I am a patient. How do I check the status of my appointment?"),
+ "statusBody": p.Sprintf("Once an appointment request is submitted, the physician has 4 to 12 hrs to replay. Depending on the urgency. If you would like a reply within 4 hr for urgent consults, an extra fee can be payed. Otherwise doctors have 12 hrs to reply to appointment request."),
+ "scheduleHeader": p.Sprintf("Should I clear my schedule if I have no heard back from my doctor?"),
+ "scheduleBody": p.Sprintf("If you do not recieve a confimation email by 12 hrs, then a full refund will be returned to your bitcoin account along with an email stating that an appointment could not be made"),
+ "expiresHeader": p.Sprintf("What happens if my appointment request is declined or expires?"),
+ "expiresBody": p.Sprintf("If you recieve an email confirming a cancelation of decline, bitcoin will be returned to your account infull, then you may seek another appointment"),
+ "emailHeader": p.Sprintf("I did not recieve an email confirming nor denying my request"),
+ "emailBody1": p.Sprintf("Make sure your email address is correct"),
+ "emailBody2": p.Sprintf("We may be sending emails to an old or incorrect email address. To see or change the email address associated with your account, log in to your Olmax account from a desktop computer and follow the steps below:"),
+ "emailBody3": p.Sprintf("1.) Go to Edit Profile."),
+ "emailBody4": p.Sprintf("2.) Look for the Email Address field. Make sure your address is correct."),
+ "emailBody5": p.Sprintf("3.) If it is incorrect, add the correct address and click Save."),
+ "notifyHeader": p.Sprintf("Check your email notification settings"),
+ "notifyBody": p.Sprintf("We'll only send the emails you tell us you want. To check your email notification settings, log in to your Olmax account from a desktop computer and follow the steps below:"),
+ "notifyBody1": p.Sprintf("1.) Go to your Notification Settings."),
+ "notifyBody2": p.Sprintf("2.) Look for the \"Email Settings\" field. Make sure you have chosen the email types you want to receive."),
+ "notifyBody3": p.Sprintf("3.) After adding or removing checkmarks from the right boxes, scroll to the bottom of the page and click Save."),
+ "inboxSearchHeader": p.Sprintf("Search all messages in your email inbox"),
+ "inboxSearchBody": p.Sprintf("Sometimes emails can get lost in your inbox. In your email account, search for terms like \"Olmax Medical\", \"Appointment\", \"Verification\", or other words related to the email you're looking for."),
+ "checkSpamHeader": p.Sprintf("Check your spam and other email filters"),
+ "checkSpamBody": p.Sprintf("It's possible your email provider mistakenly sent our messages to your spam or junk folder. To avoid this:"),
+ "checkSpamBody1": p.Sprintf("1.) Remove Olmax messages from your spam list"),
+ "checkSpamBody2": p.Sprintf("2.) Add nemo@olmax.com, halfwit@olmax.com, and services@olmax.com to your personal email address book"),
+ "checkSpamAdd": p.Sprintf("If you have other filters or routing rules in your email account that may have sorted Olmax emails elsewhere, be sure to check those, too.</br>Check for issues with your email service provider."),
+ "deliveryHeader": p.Sprintf("Depending on your provider, emails can take up to a few hours to be delivered. If undelivered or delayed emails continue to be an issue, check with your provider to see if there are any configuration issues or problems with their network that might be affecting your account."),
+ "blockHeader": p.Sprintf("If your country blocks Olmax Medical?"),
+ "blockBody": p.Sprintf("You can bypass their firewall using tunnel software such as a VPN or %s software", template.HTML(`<a href="https://www.torproject.org">Tor</a>`)),
+ }
+}
--- /dev/null
+++ b/pages/help/catalog.go
@@ -1,0 +1,24 @@
+package help
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "help/catalog",
+ Data: Catalog,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Catalog(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Our Doctors"),
+ "mainHeader": p.Sprintf("Olmax Medical"),
+ }
+}
--- /dev/null
+++ b/pages/help/contacting.go
@@ -1,0 +1,35 @@
+package help
+
+import (
+ "html/template"
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "help/contacting",
+ Data: Contacting,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Contacting(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | FAQ"),
+ "mainHeader": p.Sprintf("Olmax Medical"),
+ "contactHeader": p.Sprintf("Contacting Physician"),
+ "contactBody": p.Sprintf("You may make contact with your doctor as soon as the appointment is confirmed."),
+ "scheduleHeader": p.Sprintf("Do I need to pay before scheduling an appointment?"),
+ "scheduleBody": p.Sprintf("Yes, you must submit payment in order to secure appointment contract. Your payment will be held in escrow until the visit is finalized. Once you submit fees, we will contact the physician and give him or her your medical information. The doctor will then confirm appointment, and an email or text will be sent to you, along with the physicians contact information. Fees are structured in amount of bitcoin (BTC) per unit(U) time (BTC/U). Every unit (U) is equivalent to 15 min, time spent in visit will be pre-determined, and visits going longer that what was agreed upon will not cost extra. All new consults must be a minimum of 2 units, and repeat visits can be a minimum of 1 unit."),
+ "chargedHeader": p.Sprintf("When will I be charged?"),
+ "chargedBody": p.Sprintf("Bitcoin must be paid in full upon deployment or acceptance of contract."),
+ "anycurrHeader": p.Sprintf("Can I pay with any currency?"),
+ "anycurrBody": p.Sprintf("No."),
+ "blocksHeader": p.Sprintf("If your country blocks Olmax Medical?"),
+ "blocksBody": p.Sprintf("You can bypass their firewall using tunnel software such as a VPN or %v software", template.HTML(`<a href="https://www.torproject.org">Tor</a>`)),
+ }
+}
--- /dev/null
+++ b/pages/help/help.go
@@ -1,0 +1,47 @@
+package help
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "help/faq",
+ Data: Faq,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Faq(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Help"),
+ "mainHeader": p.Sprintf("Olmax Medical"),
+ "helpHeader": p.Sprintf("How can we help?"),
+ "topics": p.Sprintf("Suggested Topics"),
+ "appointmentHeader": p.Sprintf("Appointment Requests"),
+ "appointmentStatus": p.Sprintf("I am a patient. How do I check the status of my appointment?"),
+ "appointmentClear": p.Sprintf("Should I clear my schedule if I have not heard back from the doctor?"),
+ "appointmentExpire": p.Sprintf("What happens if my appointment request is declined or expires?"),
+ "paymentHeader": p.Sprintf("Payment Methods"),
+ "paymentEdit": p.Sprintf("How do I edit or remove a payment method?"),
+ "paymentBitcoin": p.Sprintf("What is Bitcoin?"),
+ "paymentBitcoinHow": p.Sprintf("How do I use Bitcoin to pay?"),
+ "paymentAdd": p.Sprintf("How can I add another appointment or business address to my receipt?"),
+ "verify": p.Sprintf("Verification"),
+ "verifyPhone": p.Sprintf("How do I verify my phone number?"),
+ "verifyEmail": p.Sprintf("Why didn't I get my email notification?"),
+ "verifyLicense": p.Sprintf("What is a Verified Medical License?"),
+ "priceHeader": p.Sprintf("Prices & Fees"),
+ "priceDetermined": p.Sprintf("How is the price determined for my appointment?"),
+ "priceWhen": p.Sprintf("When will I be charged?"),
+ "priceCurrency": p.Sprintf("Can I pay with any currency?"),
+ "contactHeader": p.Sprintf("Contacting A Physician"),
+ "contactStatus": p.Sprintf("What does each appointment status mean?"),
+ "contactHow": p.Sprintf("How do I make an appointment on Olmax?"),
+ "viewall": p.Sprintf("-View all"),
+ }
+}
--- /dev/null
+++ b/pages/help/paymentmethods.go
@@ -1,0 +1,42 @@
+package help
+
+import (
+ "html/template"
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "help/paymentmethods",
+ Data: Paymethod,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Paymethod(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprint("Olmax Medical | FAQ"),
+ "mainHeader": p.Sprint("Olmax Medical"),
+ "paymentHeader": p.Sprint("Payment Methods"),
+ "paymentBody": p.Sprintf("All payments will be done via %v", template.HTML("<a href=\"https://bitcoin.org\">Bitcoin</a>")),
+ "whatBTCHeader": p.Sprintf("What is %v?", template.HTML(`<a href=\"https://en.wikipedia.org/wiki/Bitcoin\">Bitcoin</a>`)),
+ "whatBTCBody": p.Sprint("Bitcoin is a form of electronic cash without a central bank or single administrator that can be sent from user to user on the peer-to-peer bitcoin network without the need for intermediaries."),
+ "chargedHeader": p.Sprint("When will I be charged?"),
+ "chargedBody": p.Sprint("Once you decide on which doctor you would like to make an appointment with, you will be asked to deposit bitcoin fund into a dedicated wallet where it will be held in escrow until visit is complete. If visit is cannot be completed, the funds will be deposited back to the original wallet in full."),
+ "anyCoinHeader": p.Sprint("Can I pay with any currency?"),
+ "anyCoinBody": p.Sprint("No"),
+ "editWalletHeader": p.Sprint("How do I edit or remove a bitcoin wallet?"),
+ "editWalletBody": p.Sprint("If you choose to pay with a certain wallet address when you make an appointment request, you can edit or remove wallet address from your Olmax Medical account after bitcoin is out of escrow, pending or active consult."),
+ "delWalletHeader": p.Sprint("Removing or adding personal bitcoin wallets"),
+ "delWalletBody": p.Sprint("You can manage the bitcoin wallets in the Account section of your profile:"),
+ "delWalletBody1": p.Sprint("1.) Click Wallet"),
+ "delWalletBody2": p.Sprint("2.) Click Change Wallet Address to add a new wallet to your account"),
+ "otherCoinNote": p.Sprint("Note: At this time, it's only possible to make payments with bitcoin. All other currencies are not supported."),
+ "blockedHeader": p.Sprint("If your country blocks Olmax Medical?"),
+ "blockedBody": p.Sprintf("You can bypass their firewall using tunnel software such as a VPN or %v software", template.HTML("<a href=\"https://www.torproject.org\">Tor</a>")),
+ }
+}
--- /dev/null
+++ b/pages/help/pricesandfees.go
@@ -1,0 +1,35 @@
+package help
+
+import (
+ "html/template"
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "help/pricesandfees",
+ Data: Pricefee,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Pricefee(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | FAQ"),
+ "mainHeader": p.Sprintf("Olmax Medical"),
+ "priceHeader": p.Sprintf("Prices & Fees"),
+ "priceBody": p.Sprintf("Prices and fees are for the most part determined by doctors and patients."),
+ "determineHeader": p.Sprintf("How is the price determined for my appointment?"),
+ "determineBody": p.Sprintf("Prices are set by who deploys the contract (doctor or patient). Fees are structured in a amount of bitcoin (BTC) per unit. In which a unit of time equals 15 mins. All new consults must be a minimum of 2 units, and repeat visits can be 1 unit."),
+ "chargedHeader": p.Sprintf("When will I be charged?"),
+ "chargedBody": p.Sprintf("Bitcoin must be paid in full upon deployment or acceptance of contract."),
+ "currencyHeader": p.Sprintf("Can I pay with any currency?"),
+ "currencyBody": p.Sprintf("No"),
+ "blockHeader": p.Sprintf("If your country blocks Olmax Medical?"),
+ "blockBody": p.Sprintf("You can bypass their firewall using tunnel software such as a VPN or %v software", template.HTML(`<a href="https://www.torproject.org">Tor</a>`)),
+ }
+}
--- /dev/null
+++ b/pages/help/provider.go
@@ -1,0 +1,45 @@
+package help
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "help/provider",
+ Data: Provider,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Provider(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Become A Provider"),
+ "specialtyHeader": p.Sprintf("Specialty"),
+ "mainHeader": p.Sprintf("Become A Provider"),
+ "earn": p.Sprintf("Find out what you could earn"),
+ "getStartedHeader": p.Sprintf("Get Started"),
+ "getStartedlink": p.Sprintf("Get Started"),
+ "providerWhy": p.Sprintf("Why become a provider on Olmax?"),
+ "whyText": p.Sprintf("No matter what your specialty, Olmax makes it simple and secure to reach millions of patients looking for doctors with unique skills and specialties, just like yours."),
+ "control": p.Sprintf("You're in control"),
+ "controlText": p.Sprintf("With Olmax, you're in full control of your availability, prices, medical management, and how you interact with patients. You can set appointment times and handle the process however you like."),
+ "everyStep": p.Sprintf("We're there at every step"),
+ "everyStepText": p.Sprintf("Olmax offers tools, service tips, 24/7 support, and an on-line community of experienced physicians for questions and sharing ideas for success."),
+ "provider": p.Sprintf("How to become an Olmax Provider"),
+ "createProfile": p.Sprintf("Create your profile"),
+ "createProfileText": p.Sprintf("It's free and easy to create a profile on Olmax. Describe your resume, how many patients you can accomodate, set your own times, and add photos and details about yourself."),
+ "welcomePatient": p.Sprintf("Welcome patients"),
+ "welcomePatientText": p.Sprintf("Communicate with patients via 3rd party applications, or personal telephone."),
+ "getPaid": p.Sprintf("Get Paid"),
+ "getPaidText": p.Sprintf("Olmax's secure payment system means you will never see a patient without compensation, or have to deal with money directly. Patienst are charged before appointments, and you are paid after the visit is completed. We embrace the future, therefore payments will be via Bitcoin only."),
+ "safety": p.Sprintf("Safety on Olmax"),
+ "trust": p.Sprintf("Olmax is built on trust"),
+ "trustText": p.Sprintf("All Olmax physicians must: submit a profile photo, medical diplomas, residency certification or equivalent, verify their phone, email, government ID, and background checks. Patients and physicians can each publish reviews after visit conclusions keeping everyone accountable and respectful."),
+ "seeingPatients": p.Sprintf("Start seeing patients"),
+ }
+}
--- /dev/null
+++ b/pages/help/verification.go
@@ -1,0 +1,33 @@
+package help
+
+import (
+ "html/template"
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "help/verification",
+ Data: Verification,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Verification(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | FAQ"),
+ "mainHeader": p.Sprintf("Olmax Medical"),
+ "verifyHeader": p.Sprintf("Verification"),
+ "verifyBody": p.Sprintf("Profile information such as government ID, diplomas, phone numbers, and emails will will be verified before being posted on Olmax Medical website."),
+ "phoneHeader": p.Sprintf("How do I verify my phone number?"),
+ "phoneBody": p.Sprintf("Once you have submitted a phone number, you can either receive a text message or call with a confirmation number."),
+ "noNoteHeader": p.Sprintf("Why did I not get a notification email?"),
+ "noNoteBody": p.Sprintf("Please refer to the %v help page", template.HTML(`<a href="https://olmaxmedical.com/appointmentRequests.html">Appointment Requests</a>`)),
+ "blockHeader": p.Sprintf("If your country blocks Olmax Medical?"),
+ "blockBody": p.Sprintf("You can bypass their firewall using tunnel software such as a VPN or %v software", template.HTML(`<a href="https://www.torproject.org">Tor</a>`)),
+ }
+}
--- /dev/null
+++ b/pages/index.go
@@ -1,0 +1,47 @@
+package pages
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "index.css",
+ Path: "index",
+ Data: Index,
+ Extra: router.ListDoctors,
+ }
+ router.Add(b)
+}
+
+func Index(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Welcome"),
+ "name": p.Sprintf("Olmax Medical"),
+ "countryText": p.Sprintf("Country"),
+ "specialty": p.Sprintf("Specialty"),
+ "findDoctor": p.Sprintf("Find a Doctor"),
+ "appointmentDates": p.Sprintf("Appointment Dates:"),
+ "from": p.Sprintf("From:"),
+ "to": p.Sprintf("To:"),
+ "appointmentTimes": p.Sprintf("Appointment Times"),
+ "startTime": p.Sprintf("Start Time:"),
+ "endTime": p.Sprintf("End Time:"),
+ "search": p.Sprintf("Search"),
+ "whoWeAre": p.Sprintf("Who We Are"),
+ "aboutUs": p.Sprintf("Olmax Medical is a world wide network of physicians and patients that enables them to communicate, meet virtually, and negotiate payment on a peer to peer basis, without the interference of insurance giants. We provide a platform where the economics of <i>laissez-fairedes</i> (free-trade) will allow both physicians and patients to negotiate fee for service. Our website provide a platform where both patients and doctors form around the world can deploy customized contracts describing, in detail, the terms of health care. The cost, time, and duration of virtual clinic visits will be pre-determined on contracts posted on our website. The contracts are written by either doctor or patient. Contracts can be created, bought, and sold by anyone, because we believe health care should be available to everyone. It will be our work to investigate and verify physician status. Once doctors are verified, patients will have the opportunity to rate physician performance and bedside manners."),
+ "secondOpinions": p.Sprintf("Second Opinions"),
+ "fromHome": p.Sprintf("Since the time of Hippocrates, patients and doctors were limited to serving and receiving care from physician in their more local community. With our platform patients will not be tied to HMOs or managed health care. In other words, insurance companies or government decisions will no longer chain patients to the type and quality of health care they receive. Doctors with extremely rare specialties will be able to serve communities thousands of miles away from them, and from the comfort of their home if they so desire"),
+ "anonymity": p.Sprintf("Anonymity"),
+ "anonText": p.Sprintf("Patients will be encouraged to use anonymous names. Medical records are kept between patients and physicians, they are not stored on our servers."),
+ "wholeWorld": p.Sprintf("Access to Physicians from around the world"),
+ "wholeWorldText": p.Sprintf("Physicians from around the world will be able to join our network, see patients from anywhere at anytime."),
+ "payment": p.Sprintf("Payment"),
+ "paymentText": p.Sprintf("Payments will be made with Bitcoin. Minimal fees will be charged by our website for holding the cryptocurrency until clinical visits are complete."),
+ "copyright": p.Sprintf("Copyright 2017, 2018, 2019"),
+ "seeMore": p.Sprintf("See More"),
+ "doctorsFrom": p.Sprintf("What are patients saying about our doctors from"),
+ }
+}
--- /dev/null
+++ b/pages/login.go
@@ -1,0 +1,30 @@
+package pages
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "login",
+ Data: Login,
+ Extra: 0,
+ }
+ //router.AddGet(b)
+ router.Add(b)
+}
+
+func Login(p *message.Printer) map[string]interface{} {
+ // TODO: Also add in the error messages here
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Login"),
+ "greeting": p.Sprintf("Welcome back!"),
+ "email": p.Sprintf("Email:"),
+ "password": p.Sprintf("Password:"),
+ "forgotPassword": p.Sprintf("Forgot your password?"),
+ "login": p.Sprintf("Login"),
+ }
+}
--- /dev/null
+++ b/pages/messages.go
@@ -1,0 +1,25 @@
+package pages
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.PatientAuth | router.DoctorAuth,
+ Css: "",
+ Path: "messages",
+ Data: Messages,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Messages(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Messages"),
+ "mainHeader": p.Sprintf("You currently have no messages."),
+ "messages": p.Sprintf("Previous messages: Click here"),
+ }
+}
--- /dev/null
+++ b/pages/newpassword.go
@@ -1,0 +1,27 @@
+package pages
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "newpassword",
+ Data: NewPassword,
+ Extra: router.OneTimeToken,
+ }
+ router.Add(b)
+}
+
+func NewPassword(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Login"),
+ "reset": p.Sprint("Enter new password"),
+ "password": p.Sprint("Enter password"),
+ "reenter": p.Sprint("Re-enter password"),
+ "update": p.Sprint("Update"),
+ }
+}
--- /dev/null
+++ b/pages/patient/appointments.go
@@ -1,0 +1,26 @@
+package patient
+
+import (
+ "html/template"
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.PatientAuth,
+ Css: "",
+ Path: "patient/appointments",
+ Data: Appointments,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Appointments(p *message.Printer) map[string]interface{} {
+ return map[string]interface{} {
+ "title": p.Sprintf("Olmax Medical | Appointments"),
+ "mainHeader": p.Sprintf("You currently have no appointments pending."),
+ "mainBody": p.Sprintf("If you have submitted payment, and do not see appointment scheduled on this page; please refer to the %s section.", template.HTML(`<a href="help.html">help</a>`)),
+ }
+}
--- /dev/null
+++ b/pages/patient/offer.go
@@ -1,0 +1,30 @@
+package patient
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.PatientAuth,
+ Css: "",
+ Path: "patient/offer",
+ Data: Createoffer,
+ Extra: router.ListDoctors,
+ }
+ router.Add(b)
+}
+
+func Createoffer(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Create Offer"),
+ "mainHeader": p.Sprintf("Create An Offer"),
+ "specialtyHeader": p.Sprintf("Physician Specialty"),
+ "bcu": p.Sprintf("Bitcoin Per Unit <i>(15min)</i>"),
+ "dates": p.Sprintf("Dates"),
+ "from": p.Sprintf("From: "),
+ "to": p.Sprintf("To: "),
+ "deploy": p.Sprintf("Deploy Contract"),
+ }
+}
--- /dev/null
+++ b/pages/patient/profile.go
@@ -1,0 +1,31 @@
+package patient
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.PatientAuth,
+ Css: "",
+ Path: "patient/profile",
+ Data: Profile,
+ Extra: router.ListServices|router.ListCountries,
+ }
+ router.Add(b)
+}
+
+func Profile(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Profile"),
+ "greetingHeader": p.Sprintf("Hello "),
+ "legend": p.Sprintf("Find A Doctor"),
+ "specialty": p.Sprintf("Specialty"),
+ "country": p.Sprintf("Country"),
+ "apptLegend": p.Sprintf("Appointment Dates: "),
+ "from": p.Sprintf("From:"),
+ "to": p.Sprintf("To:"),
+ "search": p.Sprintf("Search"),
+ }
+}
--- /dev/null
+++ b/pages/patient/symptoms.go
@@ -1,0 +1,49 @@
+package patient
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.PatientAuth,
+ Css: "",
+ Path: "patient/symptoms",
+ Data: Symptoms,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Symptoms(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Create Profile"),
+ "createHeader": p.Sprintf("Create Patient Profile"),
+ "profileHeader": p.Sprintf("Create Patient Profile"),
+ "formHeader": p.Sprintf("Please submit some information regarding your consult."),
+ "birthdate": p.Sprintf("When were you born?"),
+ "gender": p.Sprintf("What is your biological gender?"),
+ "visitReason": p.Sprintf("Please give a brief statement regarding the main reason you would like to see your doctor:"),
+ "symptomStart": p.Sprintf("When did your symptoms start?"),
+ "symptomArea": p.Sprintf("Where are your symptoms located? <i>part of your body</i>"),
+ "symptomDuration": p.Sprintf("How long have these symptoms lasted?"),
+ "symptomDescription": p.Sprintf("How would you characterize your symptoms? <i>Sharp, Dull, Ache, twisting, ets.</i>"),
+ "symptomAugment": p.Sprintf("What makes your symptoms better, and What makes them worse?"),
+ "symptomProliferation": p.Sprintf("Does your pain travel or radiate to another part of your body?"),
+ "symptomTreatment": p.Sprintf("Have you taken any medications for these symptoms and how much have they worked?"),
+ "feversChills": p.Sprintf("Any fevers or Chills?"),
+ "wtGainLoss": p.Sprintf("Any weight gain or weight loss?"),
+ "vision": p.Sprintf("Any changes in vision?"),
+ "lung": p.Sprintf("Any lung issues?"),
+ "heart": p.Sprintf("Any heart problems?"),
+ "bowel": p.Sprintf("Any intestinal problems?"),
+ "renal": p.Sprintf("Any kidney problems?"),
+ "musSkel": p.Sprintf("Any problems with muscles or bones?"),
+ "neuro": p.Sprintf("Any nervous system problmes? <i>Strokes</i>"),
+ "psych": p.Sprintf("Any psychiatric problems? <i>Depression, anxiety</i>"),
+ "male": p.Sprintf("Male"),
+ "female": p.Sprintf("Female"),
+ "legend": p.Sprintf("Please check any of the following if you have experienced in the last 6 weeks:"),
+ }
+}
--- /dev/null
+++ b/pages/resetpassword.go
@@ -1,0 +1,28 @@
+package pages
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "resetpassword",
+ Data: ResetPassword,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func ResetPassword(p *message.Printer) map[string]interface{} {
+ // TODO: Also add in the error messages here
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Login"),
+ "reset": p.Sprintf("Enter Email"),
+ "resettext": p.Sprintf("We will send a reset code to the email provided"),
+ "email": p.Sprintf("Email:"),
+ "sendreset": p.Sprintf("Reset"),
+ }
+}
--- /dev/null
+++ b/pages/signup.go
@@ -1,0 +1,33 @@
+package pages
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.GuestAuth,
+ Css: "",
+ Path: "signup",
+ Data: Signup,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Signup(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Sign Up"),
+ "mainHeader": p.Sprintf("Sign Up for free"),
+ "fname": p.Sprintf("First Name:"),
+ "fnameph": p.Sprintf("Enter your first name"),
+ "lnameph": p.Sprintf("Enter your last name"),
+ "lname": p.Sprintf("Last Name:"),
+ "email": p.Sprintf("Email:"),
+ "emailph": p.Sprintf("Enter a valid email"),
+ "pass": p.Sprintf("Password:"),
+ "passph": p.Sprintf("Enter password (8+ chars)"),
+ "gobutton": p.Sprintf("Sign Up"),
+ }
+}
--- /dev/null
+++ b/pages/wallet.go
@@ -1,0 +1,29 @@
+package pages
+
+import (
+ "golang.org/x/text/message"
+ "olmax/router"
+)
+
+func init() {
+ b := &router.Page{
+ Access: router.PatientAuth | router.DoctorAuth,
+ Css: "",
+ Path: "wallet",
+ Data: Wallet,
+ Extra: 0,
+ }
+ router.Add(b)
+}
+
+func Wallet(p *message.Printer) map[string]interface{} {
+ return map[string]interface{}{
+ "title": p.Sprintf("Olmax Medical | Wallet"),
+ "mainHeader": p.Sprintf("Wallet"),
+ "funds": p.Sprintf("0 BTC"),
+ "current": p.Sprintf("NO FUNDS CURRENTLY HELD IN ESCROW"),
+ "deposit": p.Sprintf("Deposit Funds"),
+ "onlyHeader": p.Sprintf("Send only Bitcoin (BTC) to this address"),
+ "onlyBody": p.Sprintf("Sending any other digital asset, including Bitcoin Cash (BCH), will result in permanent loss."),
+ }
+}