CareWell clinic / patients-find
patients-find
Search patients. FIND_PATIENTS builds the WHERE clause from the criteria the user filled (name, city, born from, born to), counts the hits (COUNT_QUERY, message level 25) and queries. Moving to another row fires WHEN-NEW-RECORD-INSTANCE, which shows "Patient n of total".
Three runs from a fresh database gave byte-identical diffs. Behaviour that looks odd in the migrated app but is the original's: faithful to the original and waivers. Files: scenario, golden record, target record, diff (JSON).
Scenario steps
Items are addressed by their Forms name (BLOCK.ITEM[row]), the same name in the
original and, through the mapping, in the migrated app.
| # | Step | Action | Checked on the original |
|---|---|---|---|
| 0 | Open form cw_login | ||
| 1 | Type CTL.USERNAME = ADMIN | ||
| 2 | sign in | Click CTL.SIGN_IN | |
| 3 | patients | Click HOME.PATIENTS | |
| 4 | Type CTL.NAME = ali | ||
| 5 | find by name | Click CTL.FIND | |
| 6 | Type CTL.NAME = x | ||
| 7 | empty the name | Press BackSpace | |
| 8 | Type CTL.CITY = Delhi, CTL.BORN_FROM = 01-JAN-1970, CTL.BORN_TO = 31-DEC-1980 | ||
| 9 | find by city and birth date | Click CTL.FIND | |
| 10 | second row | Click PATIENTS.MRN[1] |
Screens, step by step
Left: the original Oracle Forms application, recorded on a virtual display. Right: the migrated application in headless Chromium. Screenshots are evidence only; the comparison works on the recorded values.
No step screenshots of the original were kept for this app; the comparison uses the recorded values, which are in the golden record below.
Step 0: open cw_login
Step 1: type
Step 2: sign in
Step 3: patients
Step 4: type
Step 5: find by name
Step 6: type
Step 7: empty the name
Step 8: type
Step 9: find by city and birth date
Step 10: second row
Golden record of the original
After each step: the focus, the displayed values that changed, the message line and any alert. The full record (every item of every step, windows, lists of values) is in the JSON file.
| # | Step | Action (by name) | Focus after | Displayed values that changed | Message line | Alert | Expect |
|---|---|---|---|---|---|---|---|
| 0 | Open form cw_login | CTL.USERNAME[0] | |||||
| 1 | Type CTL.USERNAME = ADMIN | CTL.USERNAME[0] | CTL.USERNAME[0] = ADMIN | ||||
| 2 | sign in | Click CTL.SIGN_IN | HOME.SCHEDULE[0] | HOME.CHECKED_IN[0] = <any>HOME.OPEN_AMOUNT[0] = 15,015HOME.OPEN_INVOICES[0] = 180HOME.TODAY_TOTAL[0] = <any>HOME.WELCOME[0] = Welcome, Clinic Administrator | |||
| 3 | patients | Click HOME.PATIENTS | PATIENTS.MRN[0] | CTL.COUNTER[0] = Patient 1 of 240PATIENTS.CITY[0] = NoidaPATIENTS.CITY[1] = GurugramPATIENTS.CITY[2] = DelhiPATIENTS.CITY[3] = BengaluruPATIENTS.CITY[4] = DelhiPATIENTS.CITY[5] = PunePATIENTS.CITY[6] = HyderabadPATIENTS.CITY[7] = GurugramPATIENTS.CITY[8] = ChennaiPATIENTS.FIRST_NAME[0] = AdamPATIENTS.FIRST_NAME[1] = MeeraPATIENTS.FIRST_NAME[2] = RiyaPATIENTS.FIRST_NAME[3] = SamuelPATIENTS.FIRST_NAME[4] = SaraPATIENTS.FIRST_NAME[5] = AishaPATIENTS.FIRST_NAME[6] = AishaPATIENTS.FIRST_NAME[7] = ArjunPATIENTS.FIRST_NAME[8] = DavidPATIENTS.LAST_NAME[0] = AliPATIENTS.LAST_NAME[1] = AliPATIENTS.LAST_NAME[2] = AliPATIENTS.LAST_NAME[3] = AliPATIENTS.LAST_NAME[4] = AliPATIENTS.LAST_NAME[5] = BanerjeePATIENTS.LAST_NAME[6] = BanerjeePATIENTS.LAST_NAME[7] = BanerjeePATIENTS.LAST_NAME[8] = BanerjeePATIENTS.MRN[0] = CW100686PATIENTS.MRN[1] = CW100791PATIENTS.MRN[2] = CW100427PATIENTS.MRN[3] = CW100014PATIENTS.MRN[4] = CW100084PATIENTS.MRN[5] = CW100350PATIENTS.MRN[6] = CW100847PATIENTS.MRN[7] = CW100966PATIENTS.MRN[8] = CW101547PATIENTS.PHONE[0] = +91 9714247138PATIENTS.PHONE[1] = +91 9747265671PATIENTS.PHONE[2] = +91 9319917758PATIENTS.PHONE[3] = +91 9239366764PATIENTS.PHONE[4] = +91 9231537636PATIENTS.PHONE[5] = +91 9698396784PATIENTS.PHONE[6] = +91 9078161038PATIENTS.PHONE[7] = +91 9550902396PATIENTS.PHONE[8] = +91 9732765917PATIENTS.PLAN_ID[1] = 5PATIENTS.PLAN_ID[3] = 6PATIENTS.PLAN_ID[5] = 6PATIENTS.PLAN_ID[8] = 1 | |||
| 4 | Type CTL.NAME = ali | CTL.NAME[0] | CTL.NAME[0] = ali | ||||
| 5 | find by name | Click CTL.FIND | PATIENTS.MRN[0] | CTL.COUNTER[0] = Patient 1 of 5 | |||
| 6 | Type CTL.NAME = x | CTL.NAME[0] | CTL.NAME[0] = x | ||||
| 7 | empty the name | Press BackSpace | CTL.NAME[0] | ||||
| 8 | Type CTL.CITY = Delhi, CTL.BORN_FROM = 01-JAN-1970, CTL.BORN_TO = 31-DEC-1980 | CTL.BORN_TO[0] | CTL.BORN_FROM[0] = 01-JAN-1970CTL.BORN_TO[0] = 31-DEC-1980CTL.CITY[0] = Delhi | ||||
| 9 | find by city and birth date | Click CTL.FIND | PATIENTS.MRN[0] | CTL.COUNTER[0] = Patient 1 of 6PATIENTS.CITY[0] = DelhiPATIENTS.CITY[1] = DelhiPATIENTS.CITY[3] = DelhiPATIENTS.CITY[5] = DelhiPATIENTS.FIRST_NAME[0] = RiyaPATIENTS.FIRST_NAME[1] = SaraPATIENTS.FIRST_NAME[2] = IshaPATIENTS.FIRST_NAME[3] = KavyaPATIENTS.FIRST_NAME[4] = RaviPATIENTS.FIRST_NAME[5] = SaraPATIENTS.LAST_NAME[2] = BrownPATIENTS.LAST_NAME[3] = MehtaPATIENTS.LAST_NAME[4] = MenonPATIENTS.LAST_NAME[5] = ShahPATIENTS.MRN[0] = CW100427PATIENTS.MRN[1] = CW100084PATIENTS.MRN[2] = CW100910PATIENTS.MRN[3] = CW100448PATIENTS.MRN[4] = CW100861PATIENTS.MRN[5] = CW101204PATIENTS.PHONE[0] = +91 9319917758PATIENTS.PHONE[1] = +91 9231537636PATIENTS.PHONE[2] = +91 9151564479PATIENTS.PHONE[3] = +91 9553973116PATIENTS.PHONE[4] = +91 9610995157PATIENTS.PHONE[5] = +91 9038442171PATIENTS.PLAN_ID[4] = 4PATIENTS.PLAN_ID[5] = 1 | |||
| 10 | second row | Click PATIENTS.MRN[1] | PATIENTS.MRN[1] | CTL.COUNTER[0] = Patient 2 of 6 |
Database effects
None: the scenario changes no row and draws no sequence value.
Classified diff against the migrated app
Diff: patients-find counts: match 580, tolerated 27, waived 11, defect 0, unmapped 0, harness 0 generated-id pairs (source -> target): none waivers: C1 [proposed] Oracle's frame title before sign-in: applied to 2 value(s) C2 [proposed] The home page's collected-today gauge reads empty: applied to 9 value(s) C3 [proposed] Help > About names nobody: applied to 0 value(s) C4 [proposed] The home page forgets the user after File > Exit of a module: applied to 0 value(s) C5 [proposed] No item has the focus after a fetched record is refused: applied to 0 value(s) C6 [proposed] The second payment of billing-pay is lost: applied to 0 value(s) [tolerated] ui.values.HOME.CHECKED_IN rule=mask:today-counts x9 [tolerated] ui.values.HOME.OPEN_AMOUNT rule=text x9 [tolerated] ui.values.HOME.TODAY_TOTAL rule=mask:today-counts x9 [waived] ui.values.HOME.COLLECTED rule=waiver:C2 x9 step02.values.HOME.COLLECTED[0]: source '' | target '83' step03.values.HOME.COLLECTED[0]: source '' | target '83' step04.values.HOME.COLLECTED[0]: source '' | target '83' step05.values.HOME.COLLECTED[0]: source '' | target '83' step06.values.HOME.COLLECTED[0]: source '' | target '83' step07.values.HOME.COLLECTED[0]: source '' | target '83' step08.values.HOME.COLLECTED[0]: source '' | target '83' step09.values.HOME.COLLECTED[0]: source '' | target '83' step10.values.HOME.COLLECTED[0]: source '' | target '83' [waived] ui.windows rule=waiver:C1 x2 step00.windows: source [["FRAME", "Oracle Fusion Middleware Forms Services"], ["MAIN_WIN",... | target [["FRAME", "CareWell Clinic"], ["MAIN_WIN", "CareWell Clinic - Sign... step01.windows: source [["FRAME", "Oracle Fusion Middleware Forms Services"], ["MAIN_WIN",... | target [["FRAME", "CareWell Clinic"], ["MAIN_WIN", "CareWell Clinic - Sign...
Waivers
| Id | Waiver | Values | Reason |
|---|---|---|---|
| C1 | Oracle's frame title before sign-in | 2 | Until CW_NAV.START_FORM sets the MDI title, the Forms frame shows the runtime's own title "Oracle Fusion Middleware Forms Services". The target's frame reads "CareWell Clinic" from the start: the web page is the clinic's application, not Oracle's runtime. From sign-in on, both show the same title. |
| C2 | The home page's collected-today gauge reads empty | 9 | HOME.COLLECTED is a display item drawn as a half gauge on the original canvas; the Forms client's component tree exposes no text for it, so the source records '' at every step. The target shows the amount REFRESH_HOME computes (the same query as the source), as a number with a bar. |










