228 lines
5.8 KiB
JavaScript
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);
|
|
});
|
|
};
|
|
*/ |