Info |
---|
A workflow management and medical assessment tool used to support the entire life-cycle of a medical report for licensed aviation personnel. Key functionality includes: |
System Profile
System Full Name | Civil Aviation Medical Information System |
---|---|
System Full Name (French) | Systeme d'information medicine de l'Aviation civile |
Subject Matter Expert | Michelle Coelho |
Web Team Expert | Michaud, Marcel |
Division | Medicine |
NTARS Code | CA09 |
Source Code Location (Archived) | |
Source Code Location | https://dev.azure.com/transport-canada/DSD-CIVAV%20Support/_git/CAMIS-SIMAC |
Technology Assessment
Platform Type | Web (Internal/Secure) |
---|---|
Database Platform and Version | Oracle 18C |
Development Language and Framework | ASP.NET + VB.NET |
Operating System and Version | Windows Server 2016 |
Additional Dependencies | |
Authentication | Entrust True Pass |
Environment Access Information
ENV | UNC | WWWFILES | URL | DB |
---|---|---|---|---|
DEV | \\tcwebscripts\tpwwwroot\eigdev\CAMIS-SIMAC | CAMISD | ||
PREACC | PREACC_CA | |||
ACC | \\tcwebscripts\tpwwwroot\eigacc\CAMIS-SIMAC | CAMISA | ||
TRAINING | CAMIST | |||
PROD | CAMISP |
Expand | ||
---|---|---|
| ||
PreAcc: http://catcpreaccpx.tc.gc.ca/Saf-Sec-Sur/2/camis-simac |
CAMIS Report Generator (CAMIS Weekly Auto-Accept report steps):
This program needs to be run weekly on Monday until the changes to CAMIS/eMER have been finalized.
System Overview
Info |
---|
To provide a secure method for the submission of electronic Medical Examination Reports (MERs) for licensed aviation personnel and supporting medical documentation to Civil Aviation Medicine (CAM). Its purpose was to keep track of these medical reports, provide automated approval or specialized scrutiny by CAM medical resources, and store tombstone information on Civil Aviation Medical Examiners (CAMEs). CAMIS Version 3.0 has been developed as a secure, thin-client, web-based, multi-tiered |
View file | ||
---|---|---|
|
The Civil Aviation Medical Information System (CAMIS) is a web based application used by the Civil Aviation Medicine (CAM) Group to track and assess medical reports of licensed aviation personnel.
...
Files for testing attachment types:
see Files for testing attachment types
How-To and Fixes
Deploying CAMIS to development, acceptance and production: |
---|
How-To and Fixes
Info |
---|
Suggested credential for any fix: |
...
Production data should be backed up before it is changed. This document provides the steps for backing up data using TOAD.
Backing up Production database data
...
Checklist for the business users to check first:
Account Access: CAME cannot access/login to eMER - preliminary troubleshooting for business
...
Account Creation for access to eMER:
...
Oracle errors: localhost and deployments (dev, acc, prod)
How to get CAMIS Working When it Runs with Oracle.DataAccess Error
Applies to:
localhost
publishing packages for development, acceptance and production
Overview of CAMIS User (internal) and eMER accounts
External (eMER) and Internal (CAMIS User) accounts are both added to AC040_STAKEHOLER because AC040 is the master account table.
-> External accounts are identified by STAKEHOLDER_TYPE_CD = 2
-> Internal accounts are identified by STAKEHOLDER_TYPE_CD = 1
Table AC043_INTERNAL_STAKEHOLDER is for internal (CAMIS User) accounts ONLY.
Table AC044_INTERNAL_STAKEHOLDER is for external (eMER - aka CAME Admin and CAME Associate Admin) only ONLY.
For a more detailed explanation of the accounts that are managed in CAMIS, please see,
Accounts that are managed in CAMIS
Account access issues:
CAME Accounts:
Checklist for the business users to check first:
Account Access: CAME cannot access/login to eMER - preliminary troubleshooting for business
Developer troubleshooting (queries)
Account Access: CAME cannot access/login to eMER (developer troubleshooting)
Account Creation for access to CAMIS:
Creating a CAMIS USER
Create 2FA admin account for CAMIS (for CAME and CAME associate account administration purposes)
...
Applicant merge
This is used for merging duplicate files. It is different from File Transfer
Merging duplicate applicant files
Expand
title | Fix incorrect eMER data in database and associated eMER HTML/PDF attachments |
---|
Overview
The support team occasionally receives requests to fix data that was been incorrectly submitted to CAMIS via an eMER.There are two parts to fixing this issue:
1) correct the data in the database.
2) correct the html and pdf files that are automatically attached when an eMER is submitted. These files are not automatically regenerated. It is necessary to make the correction manually and replace the incorrect documents stored in the database with the corrected files.
Once the correction is completed, the updated information should be verified in CAMIS.
Example: Bug 206143 CAME entered values that were incorrect by error
Pre-requisite:
The person who requests the task needs to provide the information (such as file number and applicant name/initials) in order to proceed. For some requests, additional information may be needed. This will have to be determined on a case by case basis based on each individual request.The requestor will usually send a “file” number. That file number corresponds with LICENCE_NUM in UA006_MEDICAL_EXAMINATION.Reproduce the issue
Use the information provided by the requestor to retrieve and view the data.
For the bug provided in the example, the requestor sent the file number and initials of the applicants provided in the example.
IMPORTANT: Backup PRODUCTION DATA before making any changes.Please refer to
child task 207061 Production: Backup and update Incorrect esophoria values in table UA006_MEDICAL_EXAMINATION for identified applicants
and child task 208272 Production - Backup the database data for the eMER HTML and PDF filesQueries to retrieve the record(s)
a) check which tables contain the column(s) with the value that needs to be changed).
Code Block |
---|
select distinct OWNER, TABLE_NAME, COLUMN_NAME
from all_tab_columns
where column_name = {'COLUMN_NAME'} --replace 'COLUMN_NAME' with actual column names and remember to remove the { and }
order by TABLE_NAME asc; |
select distinct OWNER, TABLE_NAME, COLUMN_NAME
from all_tab_columns
where column_name = 'ESOPHORIA_NBR'
order by TABLE_NAME asc;
Returns the names of the tables containing the column ESOPHORIA_NBR
The only table we need to be concerned with, in this result set, is UA006_MEDICAL_EXAMINATION
Obtain the MEDICAL_EXAMINATION_D from UA006_MEDICAL_EXAMINATION
Code Block |
---|
select MEDICAL_EXAMINATION_ID, MEDICAL_EXAMINATION_DTE, LICENCE_NUM, FIRST_NAME_NM, FAMILY_NAME_NM, STAMP_NUMBER_TXT, ESOPHORIA_NBR from UA006_MEDICAL_EXAMINATION
where LICENCE_NUM in {replace with file numbers from requestor}; |
select MEDICAL_EXAMINATION_ID, MEDICAL_EXAMINATION_DTE, LICENCE_NUM, FIRST_NAME_NM, FAMILY_NAME_NM, STAMP_NUMBER_TXT, ESOPHORIA_NBR from UA006_MEDICAL_EXAMINATION
where LICENCE_NUM in (1, 2, 3, 4);
Since there were multiple records associated with each file number, it was best to work with the MEDICAL_EXAMINATION_ID for the record(s).
Code Block |
---|
select MEDICAL_EXAMINATION_ID, MEDICAL_EXAMINATION_DTE, LICENCE_NUM, FIRST_NAME_NM, FAMILY_NAME_NM, STAMP_NUMBER_TXT, ESOPHORIA_NBR from UA006_MEDICAL_EXAMINATION
where LICENCE_NUM in ( 336002, 855969, 63424, 855523, 812436, 200546, 851754, 856404 )
and STAMP_NUMBER_TXT = {'STAMP_NUMBER'}
and ESOPHORIA_NBR=1 -- 1 represents Esophoria = Yes. |
select MEDICAL_EXAMINATION_ID, MEDICAL_EXAMINATION_DTE, LICENCE_NUM, FIRST_NAME_NM, FAMILY_NAME_NM, STAMP_NUMBER_TXT, ESOPHORIA_NBR from UA006_MEDICAL_EXAMINATION
where LICENCE_NUM in ( 1, 2, 3, 4 )
and STAMP_NUMBER_TXT = {'A123'}
and ESOPHORIA_NBR=1 -- 1 represents Esophoria = Yes.Query to obtain document ids:
Code Block |
---|
select UA006_MEDICAL_EXAMINATION.MEDICAL_EXAMINATION_ID, UA035_MEDICAL_EXAMINATION_DOC.MEDICAL_EXAMINATION_ID, UA006_MEDICAL_EXAMINATION.LICENCE_NUM,
UA006_MEDICAL_EXAMINATION.FIRST_NAME_NM, UA006_MEDICAL_EXAMINATION. FAMILY_NAME_NM, UA006_MEDICAL_EXAMINATION.STAMP_NUMBER_TXT, UA035_MEDICAL_EXAMINATION_DOC.DOCUMENT_NBR,
UA018_DOCUMENT.DOCUMENT_NBR, UA018_DOCUMENT.DOCUMENT_UPLOAD_DTE, UA018_DOCUMENT.FILENAME_TXT, UA018_DOCUMENT.FILE_CONTENT_TXT, UA018_DOCUMENT.RDIMS_NUM, UA018_DOCUMENT.DOCUMENT_TYPE_CD
from UA006_MEDICAL_EXAMINATION, UA035_MEDICAL_EXAMINATION_DOC, UA018_DOCUMENT
where UA006_MEDICAL_EXAMINATION.MEDICAL_EXAMINATION_ID in {(medical examination ids)}
and UA006_MEDICAL_EXAMINATION.MEDICAL_EXAMINATION_ID = UA035_MEDICAL_EXAMINATION_DOC.MEDICAL_EXAMINATION_ID
and UA035_MEDICAL_EXAMINATION_DOC.DOCUMENT_NBR = UA018_DOCUMENT.DOCUMENT_NBR
and FILENAME_TXT like '%mer%'; |
UA006_MEDICAL_EXAMINATION.FIRST_NAME_NM, UA006_MEDICAL_EXAMINATION. FAMILY_NAME_NM, UA006_MEDICAL_EXAMINATION.STAMP_NUMBER_TXT, UA035_MEDICAL_EXAMINATION_DOC.DOCUMENT_NBR,
UA018_DOCUMENT.DOCUMENT_NBR, UA018_DOCUMENT.DOCUMENT_UPLOAD_DTE, UA018_DOCUMENT.FILENAME_TXT, UA018_DOCUMENT.FILE_CONTENT_TXT, UA018_DOCUMENT.RDIMS_NUM, UA018_DOCUMENT.DOCUMENT_TYPE_CD
from UA006_MEDICAL_EXAMINATION, UA035_MEDICAL_EXAMINATION_DOC, UA018_DOCUMENT
where UA006_MEDICAL_EXAMINATION.MEDICAL_EXAMINATION_ID in (1234567, 2234567, 3234567)
and UA006_MEDICAL_EXAMINATION.MEDICAL_EXAMINATION_ID = UA035_MEDICAL_EXAMINATION_DOC.MEDICAL_EXAMINATION_ID
and UA035_MEDICAL_EXAMINATION_DOC.DOCUMENT_NBR = UA018_DOCUMENT.DOCUMENT_NBR
and FILENAME_TXT like '%mer%';
Backing up the tables:see also Production - Backup the database data, HTML and PDF files related to the incorrect value entries1) Query to back up affected record(s) in UA006_MEDICAL_EXAMINATION:
Code Block |
---|
select *
from UA006_MEDICAL_EXAMINATION
where MEDICAL_EXAMINATION_ID in {(medical examination id(s)}; |
Example (note: the numbers in the where clause are samples, not actual values in any db).
select *
from UA006_MEDICAL_EXAMINATIONwhere MEDICAL_EXAMINATION_ID in (1234567, 2234567, 3234567);
Code Block |
---|
select *
from UA035_MEDICAL_EXAMINATION_DOC
where MEDICAL_EXAMINATION_ID in {(medical examination id(s)} |
Code Block | ||
---|---|---|
| ||
select * from UA018_DOCUMENT
where DOCUMENT_NBR in (document number) |
Example:
select *
from UA018_DOCUMENTwhere DOCUMENT_NBR in (123456, 23456)
Example:
In UA018_DOCUMENT, double-click on "HUGEBLOB" in the FILENAME_CONTENT_TXT column.
for the records returned by the “Query to backup affected records in UA018_DOCUMENT”
A pop-up will appear.
Select “Save to file”.
Save the file with the original name from the FILENAME_TXT column (do this for all the relevant HTML Files.
Update the database data:
Update the appropriate column(s) in the database. Remember to commit the change (commit statement is not included in the queries)Code Block |
---|
update UA006_MEDICAL_EXAMINATION
set ESOPHORIA_NBR = NULL
where MEDICAL_EXAMINATION_ID in {(1234567, 2234567, 3234567)} |
For bug 206143 (CAME entered values that were incorrect by error), I updated the ESOPHORIA_NBR from “yes” to “No” depending on how the CAME set the related values of “HYPERPHORIA” and “EXOPHORIA. That was because I noticed that sometimes the CAME specifically entered "No" for Hyperphoria and Exophoria and in those cases I also specifically set Esophoria to No to keep the report consistent., For three of the records, Hyperphoria and Exophoria were NULL so I set Esophoria to NULL for those cases.
see also child task 207061: Backup and update Incorrect esophoria values in table UA006_MEDICAL_EXAMINATION for identified applicants
Update statements to set ESOPHORIA_NBR to NULL for the following three records.
update UA006_MEDICAL_EXAMINATION
set ESOPHORIA_NBR = NULL
where MEDICAL_EXAMINATION_ID in {(medical examination id(s))}
Update ESPOPHORIA_NBR to 0 (NO) for these five records)
update UA006_MEDICAL_EXAMINATION
set ESOPHORIA_NBR = 0
where MEDICAL_EXAMINATION_ID in {(medical examination id(s))}
Update the HTML and PDF files
To update the HTML and PDF files in the database:
Example:
open the HTML file in a plain text editor such as notepad or notepad++
update the value.
save the HTML file to the same filename that is already in the database (UA018_DOCUMENT in the FILENAME_TXT column)
open the HTML file in a browser.
print to PDF.
save the PDF file to the same filename that is already in the database (UA018_DOCUMENT in the FILENAME_TXT column)
Replace the Files in the database
Once the HTML and PDF files are updated they will have to be uploaded to the database. The replacement of these files has to be done from the schema browser. It cannot be done in a result set that was retrieved by a query.
Navigate to “UA018_DOCUMENT
To ensure I was replacing the correct files, I found it easiest to filter on the DOCUMENT_NBR of the files I was updating. As a reminder, the DOCUMENT_NBR is available in the query used to backup UA018_DOCUMENT (see Query to backup affected records in UA018_DOCUMENT earlier in this article).
Double click the n UA018_DOCUMENT, double-click on "HUGEBLOB" in the FILENAME_CONTENT_TXT column.
This time click “Load a file”
Load both the HTML file and the PDF files. (you will need to click the “X” in the upper right corner of the pop-up, to close it, after you load each file.
Commit the change.
Repeat as necessary, for affected file numbers in the request.
Testing that the file was correctly loaded to the database:
In UA018_DOCUMENT, double-click on "HUGEBLOB" in the FILE_CONTENT_TXT column for the file you want to check.
Select “Save to file” in the pop-up.
Save the file to a temporary name. For example, I saved the html files I was testing to h.html, and pdf files to p.pdf in the folders for each “file” I had to update
In one case, the browser could not open the html and pdf files I updated. This was because the file name contained multiple spaces in one spot. For example, instead of the FILENAME_TXT column’s filename having Text-Text Text--mer.html it had Text-Text Text--mer.html.
I removed the extra spaces in FILENAME_TXT and PATH_NAME_NM columns for the affected record.Checking the record(s) in CAMIS
The final step, before asking the requestor to review the change is to login to CAMIS (prod).
Important: clear the browser cache before performing the checks.
Retrieve the file.
. Verify that they contain the correct updates.
title | CAMIS/eMER Region Change |
---|
Required info: First and last name of applicant and their new region.
Within CAMISP.WORLD, in the table CAMIS.UA006_MEDICAL_EXAMINATION
, change the CAMIS_REGION_CD
to the requested region.
The region value list is available in CAMIS.TA057_CAMIS_REGION
. As of 2021-07-28, the region list is:
Code
Name (English)
431
Outside of Canada-Ottawa (HQ)
432
Quebec - Dorval (UL)
433
Ontario - Toronto (YZ)
434
Central - Winnipeg (WG)
435
Western - Edmonton (XD)
436
Pacific - Vancouver (VR)
437
Atlantic - Ottawa (QM)
3642
Account Creation for access to eMER:
Process for giving CAMES and CAME Associate Admins access to eMER on production.
The difference between CAMES and CAME Associates
CAME Associates are generally nurses/admin staff within a CAME's office, who do some data entry on behalf of the CAME(doctor).
CAMES and CAME Associates access eMER the same way: with a GCKey and 2FA authentication.
The processes for creating a CAME or CAME Associate profile can be used by developers for creating test accounts on development and acceptance but not Production as the names of developers are not supposed to appear in the list of CAMES in the existing CAME dropdown. |
---|
Creating a CAME profile
Creating a CAME Associate Profile
File transfer: reassigning a file (an eMER) to the correct applicant
This is the main process that we have been following:
Assigning an eMER to the correct applicant
Applicant merge
This is used for merging duplicate files. It is different from File Transfer
Merging duplicate applicant files
Incoming eMER lost after being accepted
Incoming eMER lost after being accepted.
ORACLE error when updating CAME profile
Solution for oracle error when updating CAME profile
CAMIS / eMER Region Change:
CAMIS / eMER Region Change - BSD - Civil Aviation - Confluence (atlassian.net)
Expand | |||||
---|---|---|---|---|---|
| |||||
The following script is used to fix an ongoing issue with the document naming scheme. The issue is that eMER adds the date of submission in the file name, but CAMIS doesn’t expect it. eMER does: CAMIS expects: Script to run:
|
Expand | ||
---|---|---|
| ||
User must be added into 2FA database before they are able to give eMER access to CAMEs To log in to eMER, the user must have a valid cell-phone number in their CAMIS profile in order to receive the 2FA SMS code.
6. If we can not find any error in above steps, and even if the eMer status is changed from Inactive to active and CAM still does not get the 2FA SMS code: Email to a CAMIS administrator to keep a copy of original number, modify that phone number in CAMIS to the different one (fake ones), with the “active” eMER status, click update, then put back original phone number, click update. CAMIS administrator then will need to generate a new activation code. CAM will sign in eMER using the new activation code and he/she would receive 2FA SMS codes after that. |
Expand | ||
---|---|---|
| ||
Note: The assignor is able to delete any tasks they created. Tasks are saved in |
Expand | |||||
---|---|---|---|---|---|
| |||||
Example: Open CAMIS, enter the file no, get to the specific MER record and “View eMER record”, the “Submit MER Confirmation” will show the Applicant Details' name is different from Applicant (on top of the page). On the same page, go to the “Documents” section, you must see the wronglastname-wrongfirstname--mer.html and wronglastname-wrongfirstname--mer.pdf. How this issue can happen: CAME (doctor) creates a new applicant on EMER application with the right name of applicant He enters medical data, however at Applicant Details section, he enters the wrong given name and wrong last name. He has to view, click the check box before click “Submit MER”. However, he might forget to review the names here After summitting MER, the file has been submitted to CAM (CAMIS client) and there is a wronglastname-wrongfirstname--mer.html which contains all medical data is saved in the UA018_document table with a document_nbr On CAMIS application, CAM is now opening the file, checking the “incoming eMER' and assigning the file to a specific CAM . At this point, I do not know yet that specific CAM has done something on the file (he might confirm it), then there is wronglastname-wrongfirstname--mer.pdf saved in the UA018_document table with the next document_nbr Database Notes We can find licence_nbr and medical_examination_id in UA006_medical_examination WE can find html and pdf file under UA018_document Here is the SQL we can use to check if the person has the right names in the medical files. These info will be shown on the file names This below SQL is from PK_EMER_MEDICAL_EXAMINATION.SP_get_mer_step6
Fix: Using database within CAMISP.WORLD,
|
Expand | ||
---|---|---|
| ||
The clients cannot modify eMer on Camis because submitted date of the eMER is before the medical examination date. This happens when CAM chooses the examination date in the future Fix: Find the medical_examination_id from the client’s information, on UA006_MEDICAL_EXAMINATION, change the medical_examination_dte is before or equal date_emer_submitted_dte |
Expand | ||||
---|---|---|---|---|
| ||||
Required info: The file no. that was incorrectly assigned and the correct file no., applicant id that the eMER should be assigned to.
Required info: The name of the applicant and stamp number of the examiner (or exam date). Within CAMISP.WORLD, in the table
Required info: The license number of the first applicant and of the second. Make sure to first check that both license numbers exist in CAMIS. If not, you will need to wait for it to get populated in DAPLS. The following script merges an applicant into another one (MERs, related activities, assessments, docs, etc.).
Create a related task and include the script you ran. Verify in the application if the changes were successful, you can search the correct file no. and look in the Tests & Docs. and MERs tabs to verify if the files are there. In CAMIS (prod): Enter the file number in the resulting form: |
Expand | ||
---|---|---|
| ||
On CAMIS, entering a file number, at Tombstone tab, click on “Add/Update Indicators”, if there are missing indicators: Check YA003_APPLICANT of that applicant, at date_deleted_dte to see whether the field is empty or not. If that field can be empty, then the missing indicators will appear |
Expand | |||||
---|---|---|---|---|---|
| |||||
When we have a task to delete address associated with stamp number (see bug # 244024 Delete address associated with stamp number) Within CAMISP.WORLD, in the table In the table
|
Expand | ||
---|---|---|
| ||
related DevOps Task: 201977 eMER found in applicant's Test & Docs tab not in MERs Tab If an eMER is not listed under “Incoming eMERs” in CAMIS:
2. If the eMER was deleted by the CAME (or business client) follow-up with the requestor to confirm if the record should be deleted. If the requestor confirms the record should be undeleted, update the DATE_DELETED_DTE to NULL.
|
CAMIS Report Generator
This program needs to be run weekly on Monday until the changes to CAMIS/eMER have been finalized.
CAMIS Report Generator: performing the weekly auto-accept
TFS Testing Plans, Suites and Test Cases imported:
...