Page 1 of 2 12 LastLast
Results 1 to 25 of 41

Thread: HELP! -- A formula for choosing the best donated glasses for a prescription.

  1. #1
    OptiBoard Novice
    Join Date
    May 2014
    Location
    US
    Occupation
    Other Eyecare-Related Field
    Posts
    8

    Wave HELP! -- A formula for choosing the best donated glasses for a prescription.

    Help me figure out how to do a lot of good for people with vision problems in third-world countries.

    I'm working with a mission hospital in the Central African Republic. They have an ophthalmologist, thousands of pairs of donated glasses with known OD+OR SPH/CYL/AXIS and ADD, and lots of patients with bad vision.

    The plan: the ophthalmologist will determine the patient's prescription, enter it into the software that I will build, and the software will tell him which 5 glasses out of the thousands in the inventory are closest to the prescription. The ophthalmologist chooses the best pair, and the patient walks away with the best glasses available.

    The problem is, I'm not an optometrist, and so I don't know the best formula to determine the "error" between a prescription and a particular pair of glasses. I have the rest of the software complete, but without this formula, the eyeglasses are mostly useless, packed in giant boxes in the back of the two-room optometry clinic.

    If we can build it, this software will be available all over the third world, making donated glasses a lot more useful to the people who receive them. Can you help?

    Here's the basic formula I have so far for matching glasses to a prescription.

    Code:
    Ap,Ag = Axis for the prescription and the glasses
    Cp,Cg = Cylinder for prescription and glasses
    Sp,Sg = Sphere for prescription and glasses
    ABS = absolute value: get rid of any negative sign
    
    error_per_lens = ABS(Ap - Ag) + ABS(Cp - Cg) + ABS(Sp - Sg)
    Basically we add up the error in each of CYL/SPH/AXIS to determine total error per lens. We then sum the lenses' errors to get the total error for the glasses.

    This is too simplistic for a number of reasons that I'm aware of:
    • we should convert the AXIS/SPH/CYL units to be the same scale
    • the AXIS/SPH/CYL errors should be weighted by general importance
    • the greater a specific Cp, the more the AXIS error should be weighted
    • we ignore spherical equivalent


    When we try to address everything we can, we come up with a much more complicated formula:

    Code:
    Aunits,Cunits,Sunits = magic numbers to make the units all the same so we can add them together.  Using some statistics we have set these at 1/38.9, 0.5, and 1 respectively.
    Aweight,Cweight,Sweight = subjective numbers of how important each error is
    Ics = Importance of cylinder strength -- how much more to care about axis error when prescription cylinder is strong
    
    error_per_lens =
        ABS(Ap - Ag) * Aunits * Aweight * ABS(Cp * Ics) +
        ABS(Cp - Cg) * Cunits * Cweight +
        ABS(Sp - Sg) * Sunits * Sweight
    I have three questions for you, the experts :)

    1. What numbers should I use for Aweight/Cweight/Sweight? In other words, how important in your opinion is each error in determining how bad the glasses will deviate from the prescription?
    2. What number should I use for Ics???
    3. Can you think of a formula that would do a better job of matching glasses to prescriptions?


    * If you are really interested, here's our research on what formula to use and what numbers to plug in: http://goo.gl/Br0E4G .

  2. #2
    OptiBoardaholic vcom's Avatar
    Join Date
    Oct 2010
    Location
    Bangor, ME
    Occupation
    Dispensing Optician
    Posts
    225
    Well I have a few quick things to say from an optician's point of view, (I don't know anything about programming.)

    1) There are ANSI guidelines you could potentially use as a base for how much error you want to allow.
    2) I have worked with a woman who has gone on many international missions providing eyeglasses, and for many of the patients, something is better than nothing.
    3) If you want, I can give you her number so you can call her and she can give you a first hand account of how they have their system set up.
    Patient, ".. Doctor says I have a subscription for stigmata.. Can you fill that?"
    Me, "..Um.. "

  3. #3
    What's up? drk's Avatar
    Join Date
    Mar 2004
    Location
    Ohio
    Occupation
    Optometrist
    Posts
    9,419
    Mike, are you Grace Brethren? If so, I know you. PM me.

    Three Strands?
    Last edited by drk; 05-09-2014 at 01:29 PM.

  4. #4
    OptiBoard Novice
    Join Date
    May 2014
    Location
    US
    Occupation
    Other Eyecare-Related Field
    Posts
    8
    vcom: thanks! Can you point me to the ANSI spec? And yes, I'd love her number. PM me? It would be great to find that she's made some progress in this area, or else to provide her with the program once it's complete.

    re something better than nothing: Absolutely. Especially with readers. The program I'm building will record reader strength and bifocal info, so it should guide the optometrist to the *best* available glasses, rather than giving Patient A a pair of not-great glasses that would have been perfect for Patient B, next in line. They're hesitant to start handing out glasses at random because they know they'll be able to serve people so much better if they can zero in on the best glasses.

    drk: Nope, I attend Faith Presbyterian Church in Watkinsvilla Georgia :)

  5. #5
    OptiBoardaholic vcom's Avatar
    Join Date
    Oct 2010
    Location
    Bangor, ME
    Occupation
    Dispensing Optician
    Posts
    225
    http://www.opticampus.com/tools/ansi.php <- quick look at ANSI tolerances
    Patient, ".. Doctor says I have a subscription for stigmata.. Can you fill that?"
    Me, "..Um.. "

  6. #6
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    What programming language are you using?

    You could create a prescription class, a lens class, and eyeglass class to simplify the routine using OOP.

    I would use the following 3 components to compare a prescription:

    Mean Refractive Error = Sph + Cyl /2
    Cyl(180) = Cyl * cos(2*Axis)
    Cyl(045) = Cyl * sin(2*Axis)

    Create one for the prescription and the lens being checked. Subtract the two and you should have the remaining residual power components. Take those components and convert back to sphero-cylindrical power:

    Residual Cyl = Sqrt[Cyl(180) + Cyl(045)]
    Residual Sph = MRE - Residual Cyl/2
    Axis = (Tan-1(Cyl(045)/Cyl(180)))/2

    Now you can start giving merit to the residual powers remaining, I would weight sphere as twice as much as cyl power and axis could be weighted using the:

    Additional Cyl = sin(Angle Deviation)/(2 * Residual Cyl)

    This additional cyl due to deviation in axis can be weighted 1/2 of the Spherical error again.

    Then I would either use a blur formula like a sloan blur algorithm, don't have it on the top of my head to compare right to left for balance and give balance weight compared to best corrected visual acuity in the eye.

    This could all be iterated over a list of prescription glasses. With the winner being pop()ed out of a list, sorry Python pun intended.

    That's just a spit ball, you could also program this into a spread sheet and use the min function and conditional formatting to highlight the best fit or fits based on a merit score.
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

  7. #7
    What's up? drk's Avatar
    Join Date
    Mar 2004
    Location
    Ohio
    Occupation
    Optometrist
    Posts
    9,419
    I thought the man behind "Make Optics" would be the best for this inquiry and I was right.

    Hey, Mike, watch out in the CAR. That place is dangerous right now.

    I know another Mike with "Three Strands Ministry" which is a Grace Brethren, midwest-based medical mission that often goes there. Let me know if you want to communicate with him/them.

  8. #8
    What's up? drk's Avatar
    Join Date
    Mar 2004
    Location
    Ohio
    Occupation
    Optometrist
    Posts
    9,419
    I think I would write a program that treats all cyl under -0.75 as a sphere (and I'd recommend the ophthalmologist prescribe that way, too, and he's probably going to be a hand-held autorefractor).

    Next, I'd categorize it according to axis.
    Then, I'd categorize it according to cylinder power.
    Finally, by sphere power.

    That is the intuitive way for prescribers. It's also the way toric CL trial kits are set up.


    BTW, I also think I'd write the program such that a lens is categorized by meridian, and not in sphero-cylinder form. For example, if the desired Rx were -1.00-1.00 x 090, you could certainly use -1.00-0.50x090, but you should also consider -0.50-1.00x090. If you had the desired Rx entered in standard Rx form, it could be translated to: -1.00@090, -2.00@180. Then you could match either meridian individually. I think that would be easier to write a program that way.


    Another consideration is that ophthalmology is used to plus cylinder notation, so beware. Some refractive surgeons, however are cool enough to think in terms of minus cylinder. The ophthalmologists' preferences should be considered.

  9. #9
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    Quote Originally Posted by drk View Post
    I think I would write a program that treats all cyl under -0.75 as a sphere (and I'd recommend the ophthalmologist prescribe that way, too, and he's probably going to be a hand-held autorefractor).

    Next, I'd categorize it according to axis.
    Then, I'd categorize it according to cylinder power.
    Finally, by sphere power.

    That is the intuitive way for prescribers. It's also the way toric CL trial kits are set up.


    BTW, I also think I'd write the program such that a lens is categorized by meridian, and not in sphero-cylinder form. For example, if the desired Rx were -1.00-1.00 x 090, you could certainly use -1.00-0.50x090, but you should also consider -0.50-1.00x090. If you had the desired Rx entered in standard Rx form, it could be translated to: -1.00@090, -2.00@180. Then you could match either meridian individually. I think that would be easier to write a program that way.


    Another consideration is that ophthalmology is used to plus cylinder notation, so beware. Some refractive surgeons, however are cool enough to think in terms of minus cylinder. The ophthalmologists' preferences should be considered.
    Drk thanks for the vote of confidence. I helped out another person a little while back making printable snellen charts for a specific testing distance. She was an OMD I believe from out west very nice person doing great work. I have a week spot for charity so I am always game to help out.

    Drk I like your idea of cyl matching first, the axis is going to be a tricky part so instead I recommend a formula reference my above post that converts the deviation in cyl to a error component so that you can get close in power and axis. I would also start by narrowing the list twice one list of prescriptions that are the closest match to sph equiv or MRE hence the components used in my computations above. A second list comprised of balance prescriptions, 20/20 in one eye with 20/80 in the other is going to be more trouble some then the blur the patient would be used to. Then the two lists could be compared for an optimal script that incorporates both. A merit should be assigned to each Rx pair either was using both methods to try and match the best possible solution and maybe even return a set number of best solutions with the professional ultimately making the choice.

    I would without hesitation include some sort of blur function to ensure that 1 the lenses are a balance for the patient and that the pair does provide an improvement.

    If I knew the programming language I could write out a simple routine a function that can be passed the list of Rx pairs and the patients prescription.

    A second thought cvould also be to pass an array or list of patient parameters, so that patients can be batched. By batching patients you can ensure that you get the best fit for a number of patients not just one. The scenario will present where you give a patient a pair that's close when the next patient would have been significantly better suited for that Rx.

    To go a step further you could assign a male, female, unistyle property to each pair to ensure optimal cosmetics as well as optimal vision, although this would be more a customer service function than a needs based function. Either way it could mean the difference of a wildly successful trip compared to a successful one.

    You may even want to reach out to a company that provides the alvarez tech lens, Emergensees a limited number of donated pairs that are adjustable can help fill the gaps.
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

  10. #10
    OptiBoard Novice
    Join Date
    May 2014
    Location
    US
    Occupation
    Other Eyecare-Related Field
    Posts
    8
    Thanks so much to all who have replied! I have already gotten much more help than I expected. Cool people in this forum! :)

    Quote Originally Posted by MakeOptics View Post
    If I knew the programming language I could write out a simple routine a function that can be passed the list of Rx pairs and the patients prescription.
    A definition in code would be fantastic and would help me avoid errors due to my being over my head in the terminology. No better documentation than source code :) Pick your language, Python would be fine; I'll likely port it to Excel to simplify deployment and training (it's easier to open an Excel spreadsheet than install a Python app, especially when the extent of your computer training is probably MS Office.)

    Your ideas about batching patients and handling gender are excellent and I'll take them into account. In your sample code though, all I need is the implementation of

    Code:
    def fitness_for_prescription(prescription, glasses):
      """Return a fitness score representing how well the given |glasses|
      match the given |prescription|.
    
      |glasses| is a dictionary of data about one pair of glasses.
      |prescription| is a dictionary of data about a given prescription.
    
      MakeOptics, you pick whether fitness is a max or a min function,
      and you decide what keys+values make sense in the dicts.
      """
    and I can take it from there :) If you don't want to look up the sloan blur function you mentioned, feel free to call out to sloan_blur() and I'll try to figure out the implementation :)

    In case it is pertinent: the glasses measuring equipment is old technology. You look at the glasses through something like a microscope and read numbers in your field of view. The only measurements that we have are the SPH/CYL/AXIS per eye, plus ADD. I'm not familiar with the "meridian" concept.

    drk: re CAR: Thanks for the warning. The hospital is in Gamboula which has stayed more stable than the capital, but our missionary friends who help run the hospital tell us there's been an uprising in Gamboula this week :( The last time I was there was 2010 when all was peaceful. If you're the praying kind, pray that the hospital's work can proceed in the midst of chaos. And yes, I'd love to talk to your friend Mike. He may already know our missionary friends, Luke and Leanne Turk. PM me his contact info if you'd like -- thanks!

  11. #11
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    Here's a quick mockup, very verbose and only checks one eye but gives you an example. I would need some time to set up classes for prescriptions and glasses to make it a bit more streamlined and to cleanup the code but let me know what you think:

    Code:
    import math
    
    # single patient implementation patient prescription is in [sph, cyl, axis] notation as a list
    patient_prescription = [-2.00, -1.00, 25]
    
    
    # quick and simple list of glasses a list of prescription within a list, this could probably be
    # implemented as a class for prescriptions since all prescriptions glasses of patient will have
    # similar components
    list_of_glasses = [[-1.00, -2.00, 55], [-2.00, -1.00, 125], 
                       [-2.00, -1.00, 25], [-2.00, -0.50, 22], 
                       [-1.00, -1.00, 15], [-1.00, -0.50, 50]]
    
    
    def fitness_for_prescription(prescription, glasses):
        #list of top 5 glasses that fit the patients prescription the best
        fit = []
        
        #patient prescription parameters
        pat_sph = prescription[0]
        pat_cyl = prescription[1]
        pat_axis = math.radians(prescription[2])
        
        #MRE, Cyl@045, Cyl@180 for prescription
        pat_MRE = pat_sph + pat_cyl/2
        pat_C045 = pat_cyl * math.cos(2 * pat_axis)
        pat_C180 = pat_cyl * math.sin(2 * pat_axis)
        
        #iteration through the list of glasses to find the residual error
        for pairs in glasses:
            # set up eye glass rx and variables
            rx_sph = pairs[0]
            rx_cyl = pairs[1]
            rx_axis = math.radians(pairs[2])
            combined_error = 0
            
            #MRE, Cyl@045, Cyl@180 for each pair of glasses
            rx_MRE = rx_sph + rx_cyl/2
            rx_C045 = rx_cyl * math.cos(2 * rx_axis)
            rx_C180 = rx_cyl * math.sin(2 * rx_axis)
            
            #residual error calculations
            MRE_err = pat_MRE - rx_MRE
            C045_err = pat_C045 - rx_C045
            C180_err = pat_C180 - rx_C180
            
            #make sure we don't divide by 0 by adding a negligable amount
            if C180_err == 0:
                C180_err += 0.00001
            
            # convert errors back to spherocylindrical form
            combcyl = C180_err + C045_err
            
            #check to make sure we don't try and square root a negative number
            if combcyl < 0:
                combcyl *= -1
                
            cyl_err = math.sqrt(combcyl)
            sph_err = MRE_err - cyl_err / 2
            axis_err = math.atan(C045_err / C180_err) / 2
            
            #combine the spherical and cylindrical errors into a dioptric values
            combined_error += sph_err + (cyl_err / 2) + (axis_err / 2) 
            combined_error = abs(combined_error)
            
            #append the error to our fit list
            fit.append(combined_error)
        
        #minimum error in list    
        minimum = min(fit)
        
        #index of minimum error in glasses
        glasses_index = fit.index(minimum)
        
        return list_of_glasses[glasses_index]
    
    
        
    print fitness_for_prescription(patient_prescription, list_of_glasses)
    print "Dickus"
    As nice as it is to have it inside optiboard check it out at the following URL you can test the function:
    http://www.codeskulptor.org/#user31_Yvp7WB3xve_0.py
    Last edited by MakeOptics; 05-09-2014 at 09:24 PM. Reason: Obligatory Monty Python Quote.
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

  12. #12
    OptiBoard Professional
    Join Date
    Sep 2005
    Location
    St. Petersburg
    Occupation
    Optical Wholesale Lab (other positions)
    Posts
    134
    Very Nice MakeOptics. I have come to like python myself. Very simple and easy to read.

    I also like your solution for getting past the divide by zero error. They can be a royal pain. I don't know why I have never thought of that.

    Why not just run an absolute value on combcyl, instead of checking if it is less than zero? Just curious.

    James

  13. #13
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    Quote Originally Posted by jspayneii View Post
    Very Nice MakeOptics. I have come to like python myself. Very simple and easy to read.

    I also like your solution for getting past the divide by zero error. They can be a royal pain. I don't know why I have never thought of that.

    Why not just run an absolute value on combcyl, instead of checking if it is less than zero? Just curious.

    James
    Thanks James yeah I like python simple to learn my 7 yo uses it on a raspberry pi in the living room.

    Absolute value is without a doubt the best method and if you look at the code later I incorporate it. Dont know why I didnt use that other then I jist quickly hacked that out. I usually write something functional then go back and look at my code. I didnt really look back at this one yet. A little time and I will clean up the function.

    I think classes for prescription and glasses would be a simpler reusable way to go here to make future debelopment easier. Also I used lists instead to allow for iteration. Also I could see a mission having to identify glasses quickly so some sort of id in the list might be nice.

    Lots of possibilities, when I get a little time I'll refine and add more to it.

    James, I'll keep posting updates to this thread and if anyone is interested hack at it and upload this can be the start of an open source mission software for ECPs.
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

  14. #14
    Master OptiBoarder
    Join Date
    Oct 2005
    Location
    new york
    Occupation
    Optometrist
    Posts
    3,749
    Sounds way too complicated for me. And I am probably going to be of no help. But I served as an OD on one of these missions to Peru. It really helped to have a real optician in the dispensing area where the Rx selection was made against remaining inventory. They generally have a good idea of how close an Rx has to be to work. I also brought along an assistant who had a lot of experience in filing and retrieving toric CLs, which made it easy for her to find a pair of glasses close to the intended Rx. It's hard for the docs to prescribe a certain way...because they may not know what is even left in the inventory.

    I was doing at least a dozen "exams" per hour (that raises a whole nuther issue)...and we quickly ran out of glasses for compound hyperopic astigmats with with-the-rule astigmatism.

    There is a lot of criticism levied against this method of eyecare delivery in underdeveloped countries now.

  15. #15
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    Quote Originally Posted by fjpod View Post
    Sounds way too complicated for me. And I am probably going to be of no help. But I served as an OD on one of these missions to Peru. It really helped to have a real optician in the dispensing area where the Rx selection was made against remaining inventory. They generally have a good idea of how close an Rx has to be to work. I also brought along an assistant who had a lot of experience in filing and retrieving toric CLs, which made it easy for her to find a pair of glasses close to the intended Rx. It's hard for the docs to prescribe a certain way...because they may not know what is even left in the inventory.

    I was doing at least a dozen "exams" per hour (that raises a whole nuther issue)...and we quickly ran out of glasses for compound hyperopic astigmats with with-the-rule astigmatism.

    There is a lot of criticism levied against this method of eyecare delivery in underdeveloped countries now.
    1st hand experience makes for great suggestions and advice. What were some of the roadblocks you encountered?
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

  16. #16
    Master OptiBoarder OptiBoard Silver Supporter SharonB's Avatar
    Join Date
    Mar 2002
    Location
    Snow belt of NY
    Occupation
    Dispensing Optician
    Posts
    730
    Why does it have to be so complicated? I was on several missions in Honduras and Haiti, and we had a vast inventory supplied mostly by the Lions Club (all neutralized and labeled in - cyl. form). If we couldn't find an exact match (rarely) we used a spherical equivalent, or +/- .50D, and +/- 5 degrees on the cyl. That kept the circle of least confusion pretty much on the retina.
    Lost and confused in an optical wonderland!

  17. #17
    Master OptiBoarder OptiBoard Gold Supporter Judy Canty's Avatar
    Join Date
    May 2000
    Location
    Virginia Beach, VA
    Occupation
    Dispensing Optician
    Posts
    7,482
    Quote Originally Posted by SharonB View Post
    Why does it have to be so complicated? I was on several missions in Honduras and Haiti, and we had a vast inventory supplied mostly by the Lions Club (all neutralized and labeled in - cyl. form). If we couldn't find an exact match (rarely) we used a spherical equivalent, or +/- .50D, and +/- 5 degrees on the cyl. That kept the circle of least confusion pretty much on the retina.
    I was on a mission to Kenya, and I was thinking the same thing. It just wasn't that difficult.

  18. #18
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    Quote Originally Posted by SharonB View Post
    Why does it have to be so complicated? I was on several missions in Honduras and Haiti, and we had a vast inventory supplied mostly by the Lions Club (all neutralized and labeled in - cyl. form). If we couldn't find an exact match (rarely) we used a spherical equivalent, or +/- .50D, and +/- 5 degrees on the cyl. That kept the circle of least confusion pretty much on the retina.
    You wouldnt fit a +2.00 -4.00 x 180 on a patient with a plano script? A computer is not going to understand why thats absurd without being told how. In your mind you take the sph and add half the cyl to it then compare that to a patients Rx but you also preprocess that calculation by qualifying the pairs you would even consider viable first.

    I want to teach the computer to do what you do in your head, but since its a computer I expect more accuracy and repeatability.
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

  19. #19
    Master OptiBoarder
    Join Date
    Oct 2005
    Location
    new york
    Occupation
    Optometrist
    Posts
    3,749
    A computer may be more accurate and repeatable (if you give it good information and programming in the first place) but it will never have common sense.

  20. #20
    OptiBoard Professional
    Join Date
    Sep 2005
    Location
    St. Petersburg
    Occupation
    Optical Wholesale Lab (other positions)
    Posts
    134
    Quote Originally Posted by MakeOptics View Post
    Thanks James yeah I like python simple to learn my 7 yo uses it on a raspberry pi in the living room.
    I love my raspberry pi. I have used them several times around the lab.

    Quote Originally Posted by fjpod View Post
    A computer may be more accurate and repeatable (if you give it good information and programming in the first place) but it will never have common sense.
    As you say, a computer is only as good as its programming. The computer is going to search exactly the same every time.

  21. #21
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    Quote Originally Posted by fjpod View Post
    A computer may be more accurate and repeatable (if you give it good information and programming in the first place) but it will never have common sense.
    The computer is best used to take away the mundane repeatable tasks so that the operator can focus his/her attention towards higher level processing that requires common sense. You are right the computer is not a replacement for the human being, ultimately I like computers that help people not replace them.

    James,

    I have our Pi hooked up in the living room with a small wireless keyboard. I have thought of a man in the middle serial implementation to try and debug some lab equipment that was built troublesome but the boss is afraid of new tech so I don't push it.

    I have also thought of RFID tagging our trays and placing readers under the couter top that can auto load the job at the edger and blocker. It would be a simple implementation just read the RFID match it to a barcode in a file and sent out to the serial barcode port on the blocker and the edger. I brought my arduino into the office and tested to see if it would work with a simple routine to send out the barcode through serial. My blocker didn't know the difference between the barcode being scanned or input through the arduino. I have a bunch of simple routines that I could chain together to make some pretty neat optical programs but have never had the access to the equipment or the testing software.

    I have been trying to get a copy of hte OMA software from VCA that I could use to test things out but they are holding tight.
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

  22. #22
    OptiBoard Professional
    Join Date
    Sep 2005
    Location
    St. Petersburg
    Occupation
    Optical Wholesale Lab (other positions)
    Posts
    134
    Quote Originally Posted by MakeOptics View Post
    The computer is best used to take away the mundane repeatable tasks so that the operator can focus his/her attention towards higher level processing that requires common sense. You are right the computer is not a replacement for the human being, ultimately I like computers that help people not replace them.
    Very well said!

    I usually use a small favi wireless keyboard on our pis. I primarily use them as simple web browsers hooked up to tv screens to show the status of jobs around the lab. This way people can see how they are doing throughout the day.

    James

  23. #23
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    Quote Originally Posted by jspayneii View Post
    Very well said!

    I usually use a small favi wireless keyboard on our pis. I primarily use them as simple web browsers hooked up to tv screens to show the status of jobs around the lab. This way people can see how they are doing throughout the day.

    James
    Nice, I have an android app I created for measuring PD's that I have also thought of loading the code to a Pi with a IR touch screen overtop of a flat screen monitor I was thinking an interactive display that patients can use to measure their own PD's. My thought was maybe even charge to use the screen for those online buyers and use adverts on the equipment to try and persuade towards my online site. Possibilities are endless. My son loves to browse the web on it and use the scratch programming language. Matter fact I have used scratch every now and again.
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

  24. #24
    OptiBoardaholic
    Join Date
    Nov 2003
    Location
    St. Joseph, Michigan
    Occupation
    Dispensing Optician
    Posts
    244
    Quote Originally Posted by SharonB View Post
    Why does it have to be so complicated? I was on several missions in Honduras and Haiti, and we had a vast inventory supplied mostly by the Lions Club (all neutralized and labeled in - cyl. form). If we couldn't find an exact match (rarely) we used a spherical equivalent, or +/- .50D, and +/- 5 degrees on the cyl. That kept the circle of least confusion pretty much on the retina.
    Ditto. I've been to Honduras a couple times with Lion's Club donated glasses. Spherical equivalents saved the day every time. I was very surprised at how "close" was good enough. It was the best vision they have ever had, and they were very grateful. We heard "Si, muy claro!" many times throughout each day.
    We're now making SV lenses for an African mission using round frames we special ordered through China and lenses with a wide range of sphere powers, and cylinders at -.100, and -2.00 only. Again, spherical equivalents will be the rule.
    The bitterness of poor quality remains long after the sweetness of low price is forgotten.

  25. #25
    Master OptiBoarder MakeOptics's Avatar
    Join Date
    Aug 2011
    Location
    none
    Occupation
    Other Eyecare-Related Field
    Posts
    1,327
    Quote Originally Posted by icmor View Post
    Ditto. I've been to Honduras a couple times with Lion's Club donated glasses. Spherical equivalents saved the day every time. I was very surprised at how "close" was good enough. It was the best vision they have ever had, and they were very grateful. We heard "Si, muy claro!" many times throughout each day.
    We're now making SV lenses for an African mission using round frames we special ordered through China and lenses with a wide range of sphere powers, and cylinders at -.100, and -2.00 only. Again, spherical equivalents will be the rule.
    The OP asked for a better mouse trap. Sorry I offered, I didn't know it would make some opticians feel threatened.
    http://www.opticians.cc

    Creator of the industries 1st HTML5 Browser based tracer software.
    Creator of the industries 1st Mac tracer software.
    Creator of the industries 1st Linux tracer software.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Choosing Prescription Eyewear WI NPR
    By Robert Martellaro in forum General Optics and Eyecare Discussion Forum
    Replies: 2
    Last Post: 11-21-2013, 01:14 PM
  2. Optical term. Prescription glasses and safety glasses
    By Lawrence Yau in forum General Optics and Eyecare Discussion Forum
    Replies: 2
    Last Post: 05-18-2005, 03:26 AM
  3. Rx: Prescription or Formula
    By Homer in forum General Optics and Eyecare Discussion Forum
    Replies: 32
    Last Post: 09-23-2004, 10:35 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •