CareWell clinic / patients-query
patients-query
Query by example through the menu module: Records > Enter Query, a last name in the block, Records > Execute Query. File > Exit then closes CW_PATIENTS and returns to the home page.
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 | enter query | Step {"label": "enter query", "menu": "RECORDS.QUERY"} | |
| 5 | Type PATIENTS.LAST_NAME[0] = Banerjee | ||
| 6 | execute query | Step {"label": "execute query", "menu": "RECORDS.EXECUTE"} | |
| 7 | exit | Step {"label": "exit", "menu": "FILE.EXIT"} |
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: enter query
Step 5: type
Step 6: execute query
Step 7: exit
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 | enter query | Step {"label": "enter query", "menu": "RECORDS.QUERY"} | PATIENTS.MRN[0] | Enter a query; press Ctrl+F11 to execute, F4 to cancel. | |||
| 5 | Type PATIENTS.LAST_NAME[0] = Banerjee | PATIENTS.LAST_NAME[0] | PATIENTS.LAST_NAME[0] = Banerjee | Enter a query; press Ctrl+F11 to execute, F4 to cancel. | |||
| 6 | execute query | Step {"label": "execute query", "menu": "RECORDS.EXECUTE"} | PATIENTS.MRN[0] | CTL.COUNTER[0] = Patient 1 of 240PATIENTS.CITY[0] = PunePATIENTS.CITY[1] = HyderabadPATIENTS.CITY[2] = GurugramPATIENTS.CITY[3] = ChennaiPATIENTS.CITY[4] = HyderabadPATIENTS.CITY[5] = NoidaPATIENTS.CITY[6] = GurugramPATIENTS.CITY[7] = BengaluruPATIENTS.CITY[8] = DelhiPATIENTS.FIRST_NAME[0] = AishaPATIENTS.FIRST_NAME[1] = AishaPATIENTS.FIRST_NAME[2] = ArjunPATIENTS.FIRST_NAME[3] = DavidPATIENTS.FIRST_NAME[4] = FatimaPATIENTS.FIRST_NAME[5] = ImranPATIENTS.FIRST_NAME[6] = JuliaPATIENTS.FIRST_NAME[7] = LeilaPATIENTS.FIRST_NAME[8] = LeoPATIENTS.LAST_NAME[1] = BanerjeePATIENTS.LAST_NAME[2] = BanerjeePATIENTS.LAST_NAME[3] = BanerjeePATIENTS.LAST_NAME[4] = BanerjeePATIENTS.LAST_NAME[5] = BanerjeePATIENTS.LAST_NAME[6] = BanerjeePATIENTS.LAST_NAME[7] = BanerjeePATIENTS.LAST_NAME[8] = BanerjeePATIENTS.MRN[0] = CW100350PATIENTS.MRN[1] = CW100847PATIENTS.MRN[2] = CW100966PATIENTS.MRN[3] = CW101547PATIENTS.MRN[4] = CW101302PATIENTS.MRN[5] = CW100770PATIENTS.MRN[6] = CW100945PATIENTS.MRN[7] = CW100826PATIENTS.MRN[8] = CW100903PATIENTS.PHONE[0] = +91 9698396784PATIENTS.PHONE[1] = +91 9078161038PATIENTS.PHONE[2] = +91 9550902396PATIENTS.PHONE[3] = +91 9732765917PATIENTS.PHONE[4] = +91 9918174827PATIENTS.PHONE[5] = +91 9424835202PATIENTS.PHONE[6] = +91 9681383364PATIENTS.PHONE[7] = +91 9559794159PATIENTS.PHONE[8] = +91 9946103776PATIENTS.PLAN_ID[0] = 6PATIENTS.PLAN_ID[3] = 1PATIENTS.PLAN_ID[4] = 5PATIENTS.PLAN_ID[5] = 5PATIENTS.PLAN_ID[6] = 3PATIENTS.PLAN_ID[7] = 5 | |||
| 7 | exit | Step {"label": "exit", "menu": "FILE.EXIT"} | HOME.SCHEDULE[0] | HOME.WELCOME[0] = Welcome, |
Database effects
None: the scenario changes no row and draws no sequence value.
Classified diff against the migrated app
Diff: patients-query counts: match 317, tolerated 18, waived 9, 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 6 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 1 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 x6 [tolerated] ui.values.HOME.OPEN_AMOUNT rule=text x6 [tolerated] ui.values.HOME.TODAY_TOTAL rule=mask:today-counts x6 [waived] ui.values.HOME.COLLECTED rule=waiver:C2 x6 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' [waived] ui.values.HOME.WELCOME rule=waiver:C4 x1 step07.values.HOME.WELCOME[0]: source 'Welcome,' | target 'Welcome, Front Desk One' [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 | 6 | 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. |
| C4 | The home page forgets the user after File > Exit of a module | 1 | CW_PATIENTS, opened with OPEN_FORM after the NEW_FORM from CW_LOGIN, signs in its own library instance (P_USER); when it exits, CW_MAIN's WHEN-FORM-NAVIGATE (REFRESH_HOME) finds the library's package data empty and shows "Welcome," without a name. The target keeps the signed-in user's name on the home page. |







