Practice Velocity

Overview

Over 800 urgent care centers in 50 states have turned to Practice Velocity for multiple software solutions (including EMR and practice management), contracting, credentialing and billing services. Practice Velocity provides clinical dispensing, medication inventory management and ePrescribing solutions.

Question of the Day: How can programming languages hide complicated patterns so that it is easier to program?

After a brief review of how they used the counter pattern to move sprites in previous lessons, students are introduced to the idea of hiding those patterns in a single block. Students then head to Code Studio to try out new blocks that set a sprite's velocity directly, and look at various ways that they are able to code more complex behaviors in their sprites.

Purpose

This lesson launches a major theme of the chapter: that complex behavior can be represented in simpler ways to make it easier to write and reason about code.

In this lesson students are taught to use the velocity blocks to simplify the code for moving a sprite across the screen. This marks a shift in how new blocks are introduced. Whereas previously blocks were presented as enabling completely new behaviors, they are now presented as simplifying code students could have written with the blocks previously available. Over the next several lessons, students will see how this method of managing complexity allows them to produce more interesting sprite behaviors.

Assessment Opportunities

  1. Use the velocity and rotationSpeed blocks to create and change sprite movements

    See Level 10 in Code Studio. (Level 6 can be used to check rotationSpeed.)

  2. Describe the advantages of simplifying code by using higher level blocks

    In the wrap up, check students' descriptions of the blocks that they would create and why they would want to create them.

Agenda

Lesson Modifications

Warm Up (5 min)

Activity (30 min)

Wrap Up (5 min)

View on Code Studio

Objectives

Students will be able to:

  • Use the velocity and rotationSpeed blocks to create and change sprite movements
  • Describe the advantages of simplifying code by using higher level blocks

Links

Heads Up! Please make a copy of any documents you plan to share with students.

For the Teachers

  • Velocity - Slides

Introduced Code

Lesson Modifications

Attention, teachers! If you are teaching virtually or in a socially-distanced classroom, please see these modifications for Unit 3.

Warm Up (5 min)

Demonstrate: Ask for a volunteer to come to the front of the class and act as your 'sprite'. Say that you will be giving directions to the sprite as though you're a Game Lab program.

When your student is ready, face them so that they have some space in front of them and ask them to 'Move forward by 1'. They should take one step forward. Then repeat the command several times, each time waiting for the student to move forward by 1 step. You should aim for the repetitiveness of these instructions to be clear. After your student has completed this activity, have them come back to where they started. This time repeat the demonstration but asking the student to 'Move forward by 2' and have the student take 2 steps each time. Once the student has done this multiple times ask the class to give them a round of applause and invite them back to their seat.

Prompt: I was just giving instructions to my 'sprite', but they seemed to get pretty repetitive. How could I have simplified my instructions?

Discussion Goal

Goal: The earlier demonstration should have reinforced the fact that repeatedly giving the same instruction is something you would never do in real life. You would instead come up with a way to capture that the instruction should be repeated, like 'keep moving forward by 1.'

Discuss: Give students a minute to write down thoughts before inviting them to share with a neighbor. Then have the class share their thoughts. You may wish to write their ideas on the board.

Remarks

Programming languages also have ways to simplify things for us. Today, we're going to look at some blocks in Game Lab that hide complicated coding patterns to make things easier for programmers.

Question of the Day: How can programming languages hide complicated patterns so that it is easier to program?

Activity (30 min)

Remarks

One way to simplify these instructions is to just tell our 'sprite' to keep moving by 1 or 2, or however many steps we want. As humans, this would make instructions easier to understand, and as we're about to see there's a similar way to make our code simpler as well.

Transition: Move students to Code Studio

Circulate: These levels introduce the velocityX, velocityY, and rotationSpeed properties that you just discussed with students. Check in with students to see how they are doing and keep track of when everyone has made it to the end of level 10.

Wrap Up (5 min)

Journal

Assessment Opportunity

Www.practicevelocity.com

As students describe the blocks that they would make, ensure that they are relating the specific code that a block would use to the higher-level concept of what it would do. For example, a 'velocity' block would move a sprite across the screen, and it would include blocks that use the counter pattern on a position property.

Students should describe the advantages of having these blocks, such as not needing to re-write the code all the time, or making it easier to read what the program is doing.

Prompt: You learned a few new blocks today. At first glance, these blocks did the same sorts of things we'd already done with the counter pattern, but made it simpler for us to do them. As you went through the puzzles, though, you started doing some interesting movements that we hadn't been able to do before.

  • Describe one of those movements, and how you made it.
  • Describe another block that you'd like to have.
    • What would you name it?
    • What would it do?
    • What code would it hide inside?
    • How would it help you?

Remarks

All of the movements that we did today are possible without the new blocks, but it would be very complicated to code them. One of the benefits of blocks like velocity is that when we don't have to worry about the details of simple movements and actions, we can use that extra brainpower to solve more complicated problems. As you build up your side scroller game, we'll keep looking at new blocks that make things simpler, so we can build more and more complicated games.

  • Lesson Overview
  • (click tabs to see student view)
View on Code Studio
  • Skill Building
  • (click tabs to see student view)
View on Code Studio

Student Instructions

One way to move sprites in Game Lab is with the counter pattern. For example sprite1.x = sprite1.x + 1 moves a sprite by 1 pixel each frame of the draw loop. This pattern is so common that sprites have a velocityX property that does this for you.

  • Drag a sprite.velocityX block directly below where your sprite is created. ( Show me where )
  • Write the name of your sprite in the block.
  • Assign the velocityX property a value of 1.
  • Run the code. What happens?
  • Re-run the code giving the velocityX property a different value. What's changing?
  • Video: Velocity
  • (click tabs to see student view)
View on Code Studio

Teaching Tip

Discussion Goals

It may not be obvious to students why the velocity block is so powerful. The immediate answer is that the velocity block allows a programmer to set the velocity at the beginning of the program and not have to worry about the counter pattern inside the draw loop (as Game Lab will take care of that). If students are having trouble of thinking of situations in which the velocity block provides a big advantage, assure them that they will tackle some problems in the coming lesson that they will need this block for.

As students give you examples, try to elicit answers that use both positive and negative numbers, and that use the x and y positions as well as sprite rotation.

Student Instructions

Practice Velocity

Questions to Consider

  • Why might you want to use a velocity block instead of the counter pattern?
  • Give an example of a counter pattern and how you could use a velocity block instead.
  • Skill Building
  • (click tabs to see student view)
View on Code Studio

Student Instructions

Here is a feather sprite that should be floating down the screen. If velocityX makes a sprite move to the right, can you find the block that will make the feather move down?

Find the block that will make the feather sprite go down the screen, and use it outside the draw loop. ( Show me where )

View on Code Studio

Student Instructions

You can use rotationSpeed to make your sprites spin. If you want your sun to rotate by two degrees each time it's drawn, you can use sun.rotationSpeed = 2 before the draw loop, after you create your sprite.

Make the sun rotate by 3 degrees each time using the rotationSpeed block. ( Show me where )

View on Code Studio

Teaching Tip

This is a good time to remind students that code outside the draw loop is used to set up the program. It is for how you want your program to start. Code inside the draw loop is for things that are changing as the program is running, user interaction.

There may be some confusion that the new blocks are animation (changing position) and yet have gone outside the draw loop up until this point. That is because up until this point, the velocity has been set at the beginning of the program and not changed. When students want the velocity to change during the program, it will need to go inside the draw loop.

Student Instructions

You used rotationSpeed outside the draw loop to make your sprite rotate when your program started. You can also use rotationSpeedinside the draw loop to change the speed of the sprite during the game. For example, a sprite can start rotating when the user presses the space bar, and it will keep rotating until it's told to stop.

  • Look at the if statement inside the draw loop that checks whether the space bar has been pressed. ( Show me where )
  • Use the rotationSpeed block to make the color wheel start spinning when the user presses the space bar.
View on Code Studio

Student Instructions

One advantage to using the velocity blocks inside conditionals (if blocks) is that your sprite keeps moving, even after the condition stops being true. For example, you only had to press a key once to start the color wheel spinning, and it kept spinning forever. The code below uses if statements to make a fish sprite move in different directions.

  • Look at if statements that check the sprite's position and set its velocity.
  • With your partner, discuss what you think the code will do, and write your answer below.
  • Once you have submitted your answer, run the code.
View on Code Studio

Student Instructions

This ball bounces back when it hits the bottom of the screen. Can you make it bounce back when it hits the top of the screen?

  • Run the code and see how it works.
  • Look at how conditionals and velocity are used to make the ball bounce at the bottom of the screeen.
  • Add code to make the ball bounce at the top of the screen.
  • Velocity Practice
View on Code Studio

Practice using the velocity blocks with these activities.


Choose from the following activities:
Controlling Speed

Make the robot fly once the space bar has been pressed at least once.

Paint Brush

Dip the paint brush in the paint.

View on Code Studio

Student Instructions

For this animation, you'll help the 'Flybot' to take off. It should start moving up when the space bar is pressed, and it should continue moving up even after the space bar is released.

  • Use an if statement inside the draw loop to check when the space bar is pressed.
  • Use the velocityY block to make the sprite move up when the user presses the space bar.
  • Check that your animation behaves the way you'd expect.
View on Code Studio

Student Instructions

Dip the paintbrush in the paint.

  • Use a conditional to send the paint brush down if the down arrow is pressed.
  • Use a different conditional to send the paint brush up if it reaches the palette.
  • Hint: You will need to check its y property.
  • Assessment
  • (click tabs to see student view)
View on Code Studio

Assessment Opportunities

Key Concepts:

Use conditionals to control the flow of a program; model two dimensional movement on a coordinate plane.

Assessment Criteria:Extensive Evidence

The fish swims to the right side of the screen, turns and swims to the left side of the screen, then repeats. The sprite appears to face the appropriate direction at all times. There are no extra blocks in the program, and the counter pattern is not used.

Convincing Evidence

The fish swims to the right side of the screen, turns and swims to the left side of the screen, but perhaps does not face the right direction while moving. The counter pattern is not used.

Limited Evidence

The fish swims to the right side of the screen, turns and swims to the left side of the screen, but does not repeat. The student only changed its velocity by using the provided first conditional statement.

No Evidence

The fish just moves right across the screen, then disappears.

Student Instructions

The code below should make the fish start moving right as soon as you press 'Run'. Using conditional statements and the .velocity block, you can make it continually swim back and forth.

  • Look at the three if statements inside the draw loop.

  • Use a sprite.velocityX block inside each if statement to make the three following movements:

  • If the user presses the right arrow key, move the fish to the right.
  • If the fish gets to the right-hand side of the screen, move the fish to the left.
  • If the fish gets to the left-hand side of the screen, stop the fish.
  • Velocity Challenges
View on Code Studio

Try out these new blocks and challenges with velocity.


Choose from the following activities:
Changing Course

Can you change velocities four separate times?

Free Play

None

View on Code Studio

Student Instructions

Study the animation to the right. Notice that the purple alien sprite changes between x and y velocities when it is near each corner of the screen.

  • Run the program and to understand how it works so far.
  • Add .velocityX and .velocityY blocks to each conditional to make the alien complete the full circuit.

Www.practicevelocity.com

Be careful! If the sprite starts moving diagonally, it might mean it has both an x and y velocity. In the first corner the alien needs to stop moving up and start moving right.

View on Code Studio

Student Instructions

Use what you've learned to create whatever you like. When you're finished, you can click to send your creation to a friend, or to send it to your Projects Gallery.

Standards Alignment

View full course alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
  • 2-AP-12 - Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

Open Questions

  • Is more clarification needed to run the warm-up demonstration? Does this activity actually help scaffold the introduction of the velocity blocks?

Practice Velocity Machesney Park Il

Practice Velocity’s eRegistration feature fast-tracks your patient flow by getting your patients out of the waiting room faster. Patients quickly register themselves on a tablet right as they walk into your clinic, freeing your front desk staff to work on more complicated registration and insurance issues.

How does it work? Here’s an overview of the process; a more complete, step-by-step look at the eRegistration process was provided in your release notes.

Like with any other patient, your front desk staff verifies your patient hasn’t visited your clinic before. However, instead of choosing “register,” they choose “eRegister” so they can get an eRegistration PIN for the patient.

The front desk staff person obtains the PIN and enters it into the tablet and then hands the tablet to the patient so the patient can move to the waiting room to complete eRegistration. Some urgent care centers choose to exchange the tablets for patients’ driver’s licenses to ensure the tablets are returned.

The first screen asks the patient if they are experiencing a medical emergency. If the answer is “yes,” the patient is instructed to immediately return to the front desk. If the answer is “no,” the patient continues with eRegistration.

The next few screens in the eRegistration system are really similar to how patient information collection is set up in PVM. Patients fill out their contact information, their emergency contact information and employer information (particularly if they are registering under a worker’s compensation claim). If you have a database of employers already built into PVM, patients can start to type in the name of the company to find the company. They can then select the company, and the company’s information will auto-fill.

This section is especially beneficial for existing patients because their information will auto-populate; they just need to review and update their information.

Again, like PVM, patients can then enter their primary care physician and pharmacy information. There are search functions for both, so patients can find the correct providers and facilities. If your urgent care center offers in-office medication dispensing, there’s an option for patients to indicate they are interested in purchasing medications right at your center.

The next screen allows the patient to fill out guarantor information. When designing this section of the eRegistration system, Practice Velocity kept the patient in mind and made the language as simple as possible to minimize confusion.

Next, patients can electronically sign any forms you require at your urgent care center, such as HIPAA forms or financial policies. The eRegistration system allows patients to review the documents right on the tablet so they know exactly what they are accepting.

If a patient doesn’t e-sign a document during the eRegistration process, front desk staff will be notified through PVM when reviewing the information the patient entered on the tablet. They can then start a conversation with the patient to make sure they understand the documents. If the patient then chooses to sign, staff can either easily pull those documents back up on the tablet or print and scan them.

The next step after the eSign process is for patients to enter their insurance information, including insurance policy information, policy holder information, policy holder address, and any secondary insurance. Like the primary care provider and pharmacy section, there is a search function that allows patients to search for their insurance carrier.

If the patient selects “cannot find my insurance” or “no address on insurance card,” your front desk staff can help the patient once they return to the front desk. Otherwise, a database of insurance carriers will appear based on the information the patient enters in the search boxes.

At this point, the eRegistration process will start taking patients through their primary complaint and histories, so the data will populate in VelociDoc. Some urgent care centers prefer to have clinicians take this kind of information, so you might want to have the eRegistration process stop your patients right here and have them hand the tablets back to the front desk. The eRegistration system is built to stop at various points throughout the eRegistration process, so this is perfectly fine.

If you want your patients to continue with the eRegistration process, you’ll have them choose an historian – patient, mother, father or other – before proceeding with the eRegistration process.

On the next screen, the patient will see a human figure on the left. They’ll select the area of their body that is affected (head, neck, arm, etc.), which will prompt several options to appear on the right side of the screen. The patient will then select the specific problem before proceeding to the next screen. For example, let’s say the patient selects the neck as the area of their body that is affected. From the options on the right that appear, they then select “sore throat.” This will tell the provider the specific reason why the patient has come for medical care.

The “Severity” screen takes patients through HPI questions, such as how often the complaint affects the patient, its severity on a 0-10 scale, whether the complaint is an injury, etc.

The patient will then describe the onset of the problem by providing either a specific or approximate date and time.

If the patient is currently taking any medications, they can search for their medication by typing in the name of the medication or selecting the letter the medication starts with. Once the patient finds the correct medication, they specify the medication route, the dosage, the number of pills and the frequency. If the patient selected the wrong medication, they can select “Oops, I’m not taking this” to go back.

Practice Velocity Support

The eRegistration system then takes the patient through the review of symptoms (ROS) process with color-coded buttons: red for “yes, I’m having this symptom,” and green for “no, I’m not having this symptom.”

To make the process as easy and convenient for the patient as possible, there is an option at the bottom of the screen for the patient to select “No To All Unanswered.

So instead of having to manually click “No” to any symptom they aren’t experiencing, the patient can click “No To All Unanswered.” This will automatically click “No” for any symptom the patient did not already click “yes.”

The next step is the patient’s surgical history. If the patient has never had surgery, they can select “no” and proceed to their Social History.

If the patient has had surgery in the past, they can select “yes” to be taken to the Surgical History section, where they will provide further details on any past surgeries.

Practice Velocity Urgent Care

The patient will then fill out their social history, such as tobacco, alcohol and drug use, and whether they are currently breastfeeding,

Practice Velocity

followed by their medical history. As with most of the screens in the eRegistration system, patients can fill out the Medical History section quite quickly by using the “No To All Unanswered” button, which auto-selects “No” for any unanswered medical history question.

The last section of the eRegistration process requires patients to answer family history questions about their biological fathers and mothers.

This completes the eRegistration process. The screen notifies the patient that their portion of registration is done, and the front desk staff member will prompt the patient to return the tablet.

It should be noted that there is an option for the patient or the urgent care staff to stop the eRegistration process at any time using the “Exit and Come Back Later” or “Abort” buttons at the bottom of every screen, so if the patient gets called back into an exam room before they complete this process, the information they have entered will be saved in the system.

Once the patient completes the eRegistration process and returns the tablet, the front desk staff goes into PVM and reviews the information they entered. The logbook will show that eRegistration is complete.

Your urgent care practice can decide which of your patients are right for the eRegistration process. There are certainly some patients who will still want to go through the standard, face-to-face registration process with your front desk staff, but those who are comfortable with technology can zip through registration by sitting down with a tablet and quickly answering some standard registration questions. The technology investment for your urgent care practice is quite minimal because low-end tablets will work just fine; all you need is a set of tablets capable of supporting an internet connection.

Practice Velocity Api

Integrating the eRegistration process into your urgent care practice will get your patients in and out of your center so much faster, increasing patient satisfaction and, ultimately, your bottom line.