ohmyform/scripts/oscarhost/test_headless.js
2015-09-10 15:06:28 -07:00

228 lines
5.8 KiB
JavaScript

var request = require('request'),
async = require('async'),
jsdom = require('jsdom-compat'),
url = require('url');
var url_base = 'https://secure11.oscarhost.ca/'
url_login_crsf = url_base+'kensington',
url_login = url_base+'kensington/login.do',
url_demo = url_base+'demographic/demographiccontrol.jsp';
var args_searchDemo = {'search_mode': 'search_hin', 'keyword': '', 'orderby': 'last_name,first_name', 'dboperation': 'search_titlename', 'limit1': 0, 'limit2': 10, 'displaymode': 'Search', 'ptstatus': 'active', 'fromMessenger': 'false'},
args_login = {'authenticity_token': '', 'username': 'kensington', 'password': 'Temppass4', 'pin': 6448, 'commit': 'Login'};
/*
var args_updateDemo =
{
'demographic_no':189164,
'last_name':'TEST1',
'first_name':'ACCOUNT1',
'title':'MR',
'official_lang':'English',
'spoken_lang':'English',
'address':'500 Somewhere Ave',
'city':'TEST CITY',
'province':'BC',
'postal':'V6V262',
'phone':'604-123-4333',
'hPhoneExt':''
'hPhoneExtOrig':'',
'phone2':'',
'wPhoneExt':'',
'wPhoneExtOrig':'',
'demo_cell':6041118888,
'demo_cellOrig':6041118888,
'countryOfOrigin':'AT',
'email':'someone@tsnstnhs.com',
'myOscarUserName':''
'newsletter':'No',
'sin':'',
'year_of_birth':1994,
'month_of_birth':06,
'date_of_birth':15,
'age':21,
'sex':'M',
'hin':9146509343,
'ver':'',
'eff_date_year':2015,
'eff_date_month':05,
'eff_date_date':01,
'hc_renew_date_year':'',
'hc_renew_date_month':'',
'hc_renew_date_date':'',
'hc_type':'BC',
'cytolNum':'',
'cytolNumOrig':'',
'provider_no':'',
'resident':'',
'midwife':'',
'nurse':'',
'r_doctor':'',
'r_doctor_ohip':'',
'initial_rosterstatus':'',
'roster_status':''
'roster_date_year':'',
'roster_date_month':'',
'roster_date_day':'',
'roster_termination_date_year':'',
'roster_termination_date_month':'',
'roster_termination_date_day':'',
'roster_termination_reason':'',
'initial_patientstatus':'AC',
'patient_status':'AC',
'patientstatus_date_year':2015,
'patientstatus_date_month':09,
'patientstatus_date_day':10,
'chart_no':''
'wlId':''
'list_id':0,
'waiting_list_note':''
'waiting_list_referral_date':''
'date_joined_year':2015,
'date_joined_month':09,
'date_joined_date':10,
'end_date_year':2016,
'end_date_month':09,
'end_date_date':10,
'rxInteractionWarningLevelOrig':0,
'rxInteractionWarningLevel':0,
'alert':'',
'notes':'',
'dboperation':'update_record'
'displaymode':'Update Record'
};
var _processDemo = function(newDemographic){
};
*/
module.exports.getDemoByHIN = function (hin, cb){
var cookieJar = request.jar(),
responseHeaders;
async.waterfall([
function (callback) {
request.get({url: url_login, jar: cookieJar}, function (err, httpResponse, body) {
if (err) {
callback(err, 'Error in HTTP POST of Login');
}
jsdom.env(
body,
function (err, window) {
if (err) {
callback(err, 'Error in Getting AuthenticityToken');
}
args_login.authenticity_token = window.document.querySelector('input[name="authenticity_token"]').value;
callback();
}
);
});
},
function (callback) {
request.post({url: url_login, jar: cookieJar, form: args_login}, function (err, httpResponse, body) {
if (err) {
callback(err, 'Error in HTTP POST of Login');
}
responseHeaders = httpResponse.toJSON().headers;
callback();
});
},
function (callback) {
var urlTemplate = url.parse(url_demo);
args_searchDemo.keyword = hin+'';
urlTemplate.query = args_searchDemo;
var compiledSearchUrl = urlTemplate.format();
request.get({url: compiledSearchUrl, jar: cookieJar, header: responseHeaders}, function (err, httpResponse, body) {
if (err) {
callback(err, 'Error in HTTP Get of Search');
}
jsdom.env(
body,
["http://code.jquery.com/jquery.js"],
function (err, window) {
if(err){
callback(err);
}
console.log(body);
//var demogp_number = window.document.querySelectorAll("li > .demoIdSearch > a[title='Master Demo File']")[0].innerText;
//demogp_number = parseInt(demogp_number, 10);
callback(null, 8);
}
);
});
}
], function(err, result) {
if(err) throw err;
if( (typeof result) != 'number'){
throw new Error('Demographic number not captured');
}
cb(result);
});
};
/*
module.exports.updateDemo = function (newDemo){
async.waterfall([
function (callback) {
request.get({url: url_login, jar: cookieJar}, function (err, httpResponse, body) {
if (err) {
callback(err, 'Error in HTTP POST of Login');
}
jsdom.env(
body,
function (err, window) {
if (err) {
callback(err, 'Error in Getting AuthenticityToken');
}
args_login.authenticity_token = window.document.querySelector('input[name="authenticity_token"]').value;
callback();
}
);
});
},
function (callback) {
request.post({url: url_login, jar: cookieJar, form: args_login}, function (err, httpResponse, body) {
if (err) {
callback(err, 'Error in HTTP POST of Login');
}
responseHeaders = httpResponse.toJSON().headers;
callback();
});
},
function (callback) {
var urlTemplate = url.parse(url_demo);
urlTemplate.query = args_search;
var compiledSearchUrl = urlTemplate.format();
request.get({url: urlSearchStr, jar: cookieJar, header: responseHeaders}, function (err, httpResponse, body) {
if (err) {
callback(err, 'Error in HTTP Get of Search');
}
jsdom.env(
body,
function (err, window) {
if(err){
callback(err);
}
var urlDemo =
callback(null, demogp_number);
}
);
});
}
], function(err, result) {
if(err) throw err;
if( (typeof result) != 'number'){
throw new Error('Demographic number not captured');
}
cb(result);
});
};
*/