Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module.exports = new (function() {// jshint ignore:line
- var _ = require('lodash');
- var csv = require('csv');
- var mysql = require('mysql');
- var Workflow = require('../Workflow');
- Workflow.call(this); //inherit Workflow
- var app = require(__dirname + "/../../../server/server");
- var dataSource = app.dataSources.paddingtonDB;
- var self = this;
- this.getBillingReportCSV = function(organizationId, accountId, filter, res, callback) {
- var columns = [
- { columnName: "SUBMITTED BY", value: "CONCAT(cb.firstName,\' ', cb.lastName)" },
- { columnName: "REF CLINIC", value: "rp_o.title" },
- { columnName: "INSURANCE", value: "ai.insuranceName" },
- { columnName: "CLINIC", value: "IF(cl.title IS NOT NULL, cl.title, IF(o.title IS NOT NULL, o.title, 'Consumer'))" },
- { columnName: "PATIENT NAME", value: "CONCAT(a.firstName,\' ', a.lastName)" },
- { columnName: "PATIENT ID", value: "IF(a.oldPatientId IS NULL, a.accountId, a.oldPatientId)" },
- { columnName: "PRIOR AUTH", value: "ai.insurancePriorAuth" },
- { columnName: "VALID DATES", value: "ai.insuranceExpireDate" },
- { columnName: "InsurancePlanName", value: "i.name" },
- { columnName: "InsurancePayerID", value: "i.payerId" },
- { columnName: "InsuranceStreetAddr", value: "IF(i.addressLine2 IS NULL, i.addressLine1, CONCAT(i.addressLine1, ' ', i.addressLine2))" },
- { columnName: "InsuranceCity", value: "i.city" },
- { columnName: "InsuranceState", value: "i_s.abbreviation" },
- { columnName: "InsuranceZip", value: "i.postalCode" },
- { columnName: "InsuranceCityStateZip", value: "" },
- { columnName: "InsurancePhone", value: "" },
- { columnName: "PlanMedicare", value: "IF(i.isMedicare=1, 'x', '')" },
- { columnName: "PlanMedicaid", value: "IF(i.isMedicaid=1, 'x', '')" },
- { columnName: "PlanChampus", value: "IF(i.isCHAMPUS=1, 'x', '')" },
- { columnName: "PlanChampVA", value: "IF(i.isCHAMPVA=1, 'x', '')" },
- { columnName: "PlanGroupHealthPlan", value: "IF(i.isGroupHealthPlan=1, 'x', '')" },
- { columnName: "PlanFECA", value: "IF(i.isFECA=1, 'x', '')" },
- { columnName: "PlanOther", value: "IF(i.isOther=1, 'x', '')" },
- { columnName: "PatientID", value: "ai.insuranceAccountNumber" },
- { columnName: "PatientLast", value: "a.lastName" },
- { columnName: "PatientFirst", value: "a.firstName" },
- { columnName: "PatientMidInit", value: "a.middleInitial" },
- { columnName: "PatientDOB", value: "DATE_FORMAT(a.birthDate, '%m/%d/%Y')" },
- { columnName: "patientMale", value: "IF(a.gender = 'male', 'x', '')" },
- { columnName: "patientFemale", value: "IF(a.gender = 'female', 'x', '')" },
- { columnName: "InsuredLast", value: "ai.insuredLastName" },
- { columnName: "InsuredFirst", value: "ai.insuredFirstName" },
- { columnName: "InsuredMidInit", value: "" },
- { columnName: "PatientStreetAddress", value: "IF(a.addressLine2 IS NULL, a.addressLine1, CONCAT(a.addressLine1, ' ', a.addressLine2))" },
- { columnName: "PatientCity", value: "a.city" },
- { columnName: "PatientState", value: "a_s.name" },
- { columnName: "PatientZip", value: "a.postalCode" },
- { columnName: "PatientPhone", value: "a.phoneNumber" },
- { columnName: "PatientRelationSELF", value: "IF((ai.insuredRelation is null OR (ai.insuredRelation <> 'Spouse' AND ai.insuredRelation <> 'Child' AND ai.insuredRelation <> 'Other') ), 'x', '')" },
- { columnName: "PatientRelationSPOUSE", value: "IF(ai.insuredRelation = 'Spouse', 'x', '')" },
- { columnName: "PatientRelationCHILD", value: "IF(ai.insuredRelation = 'Child', 'x', '')" },
- { columnName: "PatientRelationOTHER", value: "IF(ai.insuredRelation = 'Other', 'x', '')" },
- { columnName: "InsuredStreetAddress", value: "IF(insuredAddressLine2 IS NULL, insuredAddressLine1, CONCAT(insuredAddressLine1, ' ', insuredAddressLine2))" },
- { columnName: "InsuredCity", value: "ai.insuredCity" },
- { columnName: "InsuredState", value: "ai_s.name" },
- { columnName: "InsuredZip", value: "ai.insuredPostalCode" },
- { columnName: "InsuredPhone", value: "ai.insuredPhoneNumber" },
- { columnName: "PatientMaritalSingle", value: "" },
- { columnName: "PatientMaritalMarried", value: "" },
- { columnName: "PatientMaritalOther", value: "" },
- { columnName: "PatientEmploymentEmployed", value: "" },
- { columnName: "PatientEmploymentFullTimeStudent", value: "" },
- { columnName: "PatientEmploymentPartTimeStudent", value: "" },
- { columnName: "OtherInsuredLast", value: "" },
- { columnName: "OtherInsuredFirst", value: "" },
- { columnName: "OtherInsuredMidInit", value: "" },
- { columnName: "OtherInsuredPolicyOrGroupNumber", value: "" },
- { columnName: "OtherInsuredDOB", value: "" },
- { columnName: "OtherInsuredSexMale", value: "" },
- { columnName: "OtherInsuredSexFemale", value: "" },
- { columnName: "OtherInsuredEmlpoyerNameOrSchoolName", value: "" },
- { columnName: "OtherInsuredInsurancePlanorProgramName", value: "" },
- { columnName: "CondtionRelatedToEmlpoymentYes", value: "" },
- { columnName: "CondtionRelatedToEmlpoymentNo", value: "" },
- { columnName: "CondtionRelatedToAutoAccidentYes", value: "" },
- { columnName: "CondtionRelatedToAutoAccidentNo", value: "" },
- { columnName: "AutoAccidentState", value: "" },
- { columnName: "CondtionRelatedToOtherAccidentYes", value: "" },
- { columnName: "CondtionRelatedToOtherAccidentNo", value: "" },
- { columnName: "ReservedForLocalUse", value: "" },
- { columnName: "InsuredPolicyGroupOrFecaNumber", value: "" },
- { columnName: "InsuredDOB", value: "" },
- { columnName: "InsuredGenderMale", value: "" },
- { columnName: "InsuredGenderFemale", value: "" },
- { columnName: "InsuredEmployerNameOrSchoolName", value: "" },
- { columnName: "InsuredInsurancePlanNameOrProgramName", value: "" },
- { columnName: "IsThereAnotherHealhPlanBenefitYes", value: "" },
- { columnName: "IsThereAnotherHealhPlanBenefitNo", value: "" },
- { columnName: "PatientSignature", value: "'x'" },
- { columnName: "PatientSignatureDate", value: "DATE_FORMAT(c.startDate, '%m/%d/%Y')" },
- { columnName: "InsuredSignature", value: "'x'" },
- { columnName: "DateOfCurrent", value: "" },
- { columnName: "DateOfSimilarIllness", value: "" },
- { columnName: "UnableToWorkFromDate", value: "" },
- { columnName: "UnableToWorkToDate", value: "" },
- { columnName: "ReferringPhysician", value: "acc_rp.displayName" },
- { columnName: "ReferPhysQualifier", value: "" },
- { columnName: "ReferringPhysicianID", value: "" },
- { columnName: "Refer_Phys_NPI", value: "acc_rp.answer" },
- { columnName: "Super_Phys_NPI", value: "" },
- { columnName: "HospitalizationFromDate", value: "" },
- { columnName: "HospitalizationToDate", value: "" },
- { columnName: "Box19Notes", value: "" },
- { columnName: "OutsideLabChargesYes", value: "" },
- { columnName: "OutsideLabChargesNo", value: "" },
- { columnName: "OutsideLabFees", value: "" },
- { columnName: "DiagCode1", value: "cd.diagnosis" }, //This field needs to be exploded out into multiple columns
- { columnName: "DiagCode2", value: "" },
- { columnName: "DiagCode3", value: "" },
- { columnName: "DiagCode4", value: "" },
- { columnName: "DiagCode5", value: "" },
- { columnName: "DiagCode6", value: "" },
- { columnName: "DiagCode7", value: "" },
- { columnName: "DiagCode8", value: "" },
- { columnName: "MedicaidResubCode", value: "" },
- { columnName: "MedicaidRefNumber", value: "" },
- { columnName: "PriorAuthNo", value: "ai.insurancePriorAuth" },
- { columnName: "HCFACLIANumber", value: "" },
- { columnName: "FromDateOfService1", value: "DATE_FORMAT(c.completedDate, '%m/%d/%Y')" },
- { columnName: "ToDateOfService1", value: "DATE_FORMAT(c.completedDate, '%m/%d/%Y')" },
- { columnName: "PlaceOfService1", value: "11" },
- { columnName: "EMG1", value: "" },
- { columnName: "CPT1", value: "CASE i.insuranceId " +
- "WHEN 7 THEN CONCAT('99444 was ', cd.cptCode) " +
- "WHEN 36 THEN CONCAT('99444 was ', cd.cptCode) " +
- "WHEN 40 THEN CONCAT('99444 was ', cd.cptCode) " +
- "WHEN 28 THEN CONCAT('99203 was ', cd.cptCode) " +
- "WHEN 29 THEN CONCAT('99203 was ', cd.cptCode) " +
- "WHEN 30 THEN CONCAT('99203 was ', cd.cptCode) " +
- "WHEN 31 THEN CONCAT('99444 was ', cd.cptCode) " +
- "WHEN 32 THEN CONCAT('99444 was ', cd.cptCode) " +
- "WHEN 38 THEN CONCAT('99444 was ', cd.cptCode) " +
- "ELSE cd.cptCode " +
- "END" },
- { columnName: "ModifierA1", value: "CASE i.insuranceId " +
- "WHEN 7 THEN '' " +
- "WHEN 36 THEN '' " +
- "WHEN 40 THEN '' " +
- "WHEN 28 THEN 'GQ' " +
- "WHEN 29 THEN 'GQ' " +
- "WHEN 30 THEN 'GQ' " +
- "WHEN 31 THEN 'GQ' " +
- "WHEN 32 THEN 'GQ' " +
- "WHEN 38 THEN 'GQ' " +
- "ELSE 'GQ' " +
- "END" },
- { columnName: "ModifierB1", value: "" },
- { columnName: "ModifierC1", value: "" },
- { columnName: "ModifierD1", value: "" },
- { columnName: "DiagCodePointer1", value: "'1'" }, //comma separated count of diagnosis
- { columnName: "Charges1", value: "200.00" },
- { columnName: "Units1", value: "1" },
- { columnName: "EPSDT1", value: "" },
- { columnName: "RenderingPhysQualifier1", value: "" },
- { columnName: "RenderingPhysID1", value: "" },
- { columnName: "RenderingPhysNPI1", value: "de.nationalProviderId" },
- { columnName: "FromDateOfService2", value: "" },
- { columnName: "ToDateOfService2", value: "" },
- { columnName: "PlaceOfService2", value: "" },
- { columnName: "EMG2", value: "" },
- { columnName: "CPT2", value: "" },
- { columnName: "ModifierA2", value: "" },
- { columnName: "ModifierB2", value: "" },
- { columnName: "ModifierC2", value: "" },
- { columnName: "ModifierD2", value: "" },
- { columnName: "DiagCodePointer2", value: "" },
- { columnName: "Charges2", value: "" },
- { columnName: "Units2", value: "" },
- { columnName: "EPSDT2", value: "" },
- { columnName: "RenderingPhysQualifier2", value: "" },
- { columnName: "RenderingPhysID2", value: "" },
- { columnName: "RenderingPhysNPI2", value: "" },
- { columnName: "FromDateOfService3", value: "" },
- { columnName: "ToDateOfService3", value: "" },
- { columnName: "PlaceOfService3", value: "" },
- { columnName: "EMG3", value: "" },
- { columnName: "CPT3", value: "" },
- { columnName: "ModifierA3", value: "" },
- { columnName: "ModifierB3", value: "" },
- { columnName: "ModifierC3", value: "" },
- { columnName: "ModifierD3", value: "" },
- { columnName: "DiagCodePointer3", value: "" },
- { columnName: "Charges3", value: "" },
- { columnName: "Units3", value: "" },
- { columnName: "EPSDT3", value: "" },
- { columnName: "RenderingPhysQualifier3", value: "" },
- { columnName: "RenderingPhysID3", value: "" },
- { columnName: "RenderingPhysNPI3", value: "" },
- { columnName: "FromDateOfService4", value: "" },
- { columnName: "ToDateOfService4", value: "" },
- { columnName: "PlaceOfService4", value: "" },
- { columnName: "EMG4", value: "" },
- { columnName: "CPT4", value: "" },
- { columnName: "ModifierA4", value: "" },
- { columnName: "ModifierB4", value: "" },
- { columnName: "ModifierC4", value: "" },
- { columnName: "ModifierD4", value: "" },
- { columnName: "DiagCodePointer4", value: "" },
- { columnName: "Charges4", value: "" },
- { columnName: "Units4", value: "" },
- { columnName: "EPSDT4", value: "" },
- { columnName: "RenderingPhysQualifier4", value: "" },
- { columnName: "RenderingPhysID4", value: "" },
- { columnName: "RenderingPhysNPI4", value: "" },
- { columnName: "FromDateOfService5", value: "" },
- { columnName: "ToDateOfService5", value: "" },
- { columnName: "PlaceOfService5", value: "" },
- { columnName: "EMG5", value: "" },
- { columnName: "CPT5", value: "" },
- { columnName: "ModifierA5", value: "" },
- { columnName: "ModifierB5", value: "" },
- { columnName: "ModifierC5", value: "" },
- { columnName: "ModifierD5", value: "" },
- { columnName: "DiagCodePointer5", value: "" },
- { columnName: "Charges5", value: "" },
- { columnName: "Units5", value: "" },
- { columnName: "EPSDT5", value: "" },
- { columnName: "RenderingPhysQualifier5", value: "" },
- { columnName: "RenderingPhysID5", value: "" },
- { columnName: "RenderingPhysNPI5", value: "" },
- { columnName: "FromDateOfService6", value: "" },
- { columnName: "ToDateOfService6", value: "" },
- { columnName: "PlaceOfService6", value: "" },
- { columnName: "EMG6", value: "" },
- { columnName: "CPT6", value: "" },
- { columnName: "ModifierA6", value: "" },
- { columnName: "ModifierB6", value: "" },
- { columnName: "ModifierC6", value: "" },
- { columnName: "ModifierD6", value: "" },
- { columnName: "DiagCodePointer6", value: "" },
- { columnName: "Charges6", value: "" },
- { columnName: "Units6", value: "" },
- { columnName: "EPSDT6", value: "" },
- { columnName: "RenderingPhysQualifier6", value: "" },
- { columnName: "RenderingPhysID6", value: "" },
- { columnName: "RenderingPhysNPI6", value: "" },
- { columnName: "TaxID", value: "'27-3123104'" },
- { columnName: "SSN", value: "" },
- { columnName: "EIN", value: "'x'" },
- { columnName: "PatientAcctNumber", value: "CONCAT(IF(a.oldPatientId IS NULL, a.accountId, a.oldPatientId),'-',c.caseId)" },
- { columnName: "AcceptAssignYes", value: "'x'" },
- { columnName: "AcceptAssignNo", value: "" },
- { columnName: "TotalCharges", value: "200.00" },
- { columnName: "AmountPaid", value: "0.00" },
- { columnName: "BalanceDue", value: "200.00" },
- { columnName: "PhysicianSignature", value: "CONCAT(de.firstName,' ',de.lastname)" },
- { columnName: "PhysicianSignatureDate", value: "DATE_FORMAT(c.completedDate, '%m/%d/%Y')" },
- { columnName: "PhysicianLast", value: "de.lastname" },
- { columnName: "PhysicianFirst", value: "de.firstName" },
- { columnName: "PhysicianMidInit", value: "de.middleInitial" },
- { columnName: "FacilityName", value: "" },
- { columnName: "FacilityStreetAddr", value: "" },
- { columnName: "FacilityCity", value: "" },
- { columnName: "FacilityState", value: "" },
- { columnName: "FacilityZip", value: "" },
- { columnName: "FacilityCityStateZip", value: "" },
- { columnName: "FacilityNPI", value: "" },
- { columnName: "FacilityID", value: "" },
- { columnName: "MammographyCertification", value: "" },
- { columnName: "SupplierName", value: "de_o.title" },
- { columnName: "SupplierStreetAddr", value: "IF(de_o.addressLine2 IS NULL, de_o.addressLine1, CONCAT(de_o.addressLine1, ' ', de_o.addressLine2))" },
- { columnName: "SupplierCity", value: "de_o.city" },
- { columnName: "SupplierState", value: "de_o_s.name" },
- { columnName: "SupplierZip", value: "de_o.postalCode" },
- { columnName: "SupplierCityStateZip", value: "" },
- { columnName: "SupplierPhone", value: "de_o.phoneNumber" },
- { columnName: "SupplierNPI", value: "'1417263922'" },
- { columnName: "GroupID", value: "'ZZ207N00000X'" }
- ];
- var sql = 'SELECT ';
- for (var i = 0; i < columns.length; i++) {
- var column = columns[i];
- var value = column.value;
- if (!value || value.length == 0) continue;
- sql += value + ' as `' + column.columnName + '`';
- if (i < columns.length-1) {
- sql += ', ';
- }
- }
- sql += " FROM `Case` as c " +
- "LEFT JOIN Organization as o ON o.organizationId = c.organizationId " +
- "INNER JOIN Account as a ON a.accountId = c.accountId " +
- "INNER JOIN State as a_s ON a_s.stateId = a.stateId " +
- "INNER JOIN Account as de ON de.accountId = c.lastUpdatedBy " + // dermatologist who closed the case
- "INNER JOIN Organization as de_o ON de_o.organizationId = ? " +
- "INNER JOIN State as de_o_s ON de_o_s.stateId = de_o.stateId " +
- "LEFT JOIN Account as cb ON cb.accountId = c.createdBy " + // account of the person who created the case
- "LEFT JOIN AccountLocation as cb_al ON cb_al.accountId = cb.accountId " +
- "LEFT JOIN Location as cb_l on cb_l.locationId = cb_al.locationId AND cb_l.organizationId = o.organizationId " + // location of the person who created the case
- "LEFT JOIN Location as cl on cl.locationId = c.locationId " + // location of case
- "LEFT JOIN ( " +
- "SELECT IF(acco.displayName IS NULL, acco.displayName, CONCAT(acco.firstname, ' ', acco.lastName)) as displayName, a_rp.answer as answer, af_rp.accountId as accountId FROM Account as acco " +
- "LEFT JOIN Form as f_rp ON f_rp.title = 'Referring Provider' " +
- "LEFT JOIN Question as q_rp ON q_rp.field = 'nationalProviderId' AND q_rp.formId = f_rp.formId " +
- "LEFT JOIN AccountForm as af_rp ON f_rp.formId = af_rp.formId " +
- "LEFT JOIN Answer as a_rp On a_rp.questionId = q_rp.questionId AND a_rp.accountFormId = af_rp.accountFormId " +
- "WHERE a_rp.answer = acco.nationalProviderId " +
- "ORDER BY a_rp.lastUpdated DESC " +
- ") as acc_rp ON acc_rp.accountId = c.accountId " +
- "LEFT JOIN ( " +
- "SELECT " +
- "af.accountId, " +
- "af.accountFormId, " +
- "MAX(IF(q.field = 'insuranceId', aw.answer, NULL)) as insuranceId, " +
- "MAX(IF(q.field = 'insuranceName', aw.answer, NULL)) as insuranceName, " +
- "MAX(IF(q.field = 'insuranceAccountNumber', aw.answer, NULL)) as insuranceAccountNumber, " +
- "MAX(IF(q.field = 'insurancePriorAuth', aw.answer, NULL)) as insurancePriorAuth, " +
- "MAX(IF(q.field = 'insuranceExpireDate', aw.answer, NULL)) as insuranceExpireDate, " +
- "MAX(IF(q.field = 'insuredLastName', aw.answer, NULL)) as insuredLastName, " +
- "MAX(IF(q.field = 'insuredFirstName', aw.answer, NULL)) as insuredFirstName, " +
- "MAX(IF(q.field = 'insuredRelation', aw.answer, NULL)) as insuredRelation, " +
- "MAX(IF(q.field = 'insuredAddressLine1', aw.answer, NULL)) as insuredAddressLine1, " +
- "MAX(IF(q.field = 'insuredAddressLine2', aw.answer, NULL)) as insuredAddressLine2, " +
- "MAX(IF(q.field = 'insuredCity', aw.answer, NULL)) as insuredCity, " +
- "MAX(IF(q.field = 'insuredState', aw.answer, NULL)) as insuredState, " +
- "MAX(IF(q.field = 'insuredPostalCode', aw.answer, NULL)) as insuredPostalCode, " +
- "MAX(IF(q.field = 'insuredPhoneNumber', aw.answer, NULL)) as insuredPhoneNumber " +
- "FROM AccountForm as af " +
- "INNER JOIN Form as f ON f.formId = af.formId " +
- "INNER JOIN FormWorkflow as fw ON fw.formId = f.formId AND fw.module = 'Insurance' " +
- "INNER JOIN Answer as aw ON aw.accountFormId = af.accountFormId " +
- "INNER JOIN Question as q ON q.questionId = aw.questionId " +
- "GROUP BY af.accountFormId " +
- ") as ai ON ai.accountId = c.accountId " +
- "LEFT JOIN State as ai_s ON ai_s.stateId = ai.insuredState " +
- "LEFT JOIN Insurance as i ON i.insuranceId = ai.insuranceId " +
- "LEFT JOIN State as i_s ON i_s.stateId = i.stateId " +
- "LEFT JOIN ( " +
- "SELECT " +
- "af.caseId, " +
- "GROUP_CONCAT(DISTINCT IF(q.field = 'diagnosis', " +
- "(SELECT d.icd FROM Diagnosis as d WHERE d.diagnosisId = aw.answer), NULL)) as diagnosis, " +
- "MAX(IF(q.field = 'cptCode', aw.answer, NULL)) as cptCode " +
- "FROM AccountForm as af " +
- "INNER JOIN Form as f ON f.formId = af.formId " +
- "INNER JOIN FormWorkflow as fw ON fw.formId = f.formId AND fw.module = 'CaseComplaintDiagnosis' " +
- "INNER JOIN Answer as aw ON aw.accountFormId = af.accountFormId " +
- "INNER JOIN Question as q ON q.questionId = aw.questionId " +
- "WHERE q.field IN ('diagnosis', 'cptCode') " +
- "GROUP BY af.caseId " +
- ") as cd ON cd.caseId = c.caseId " +
- "LEFT JOIN ( " +
- "SELECT rp_o.title, af.accountId " +
- "FROM AccountForm AS af " +
- "INNER JOIN Form AS f " +
- "ON f.formid = af.formid " +
- "INNER JOIN FormWorkflow AS fw " +
- "ON fw.formid = f.formid " +
- "AND fw.module = 'ReferringProvider' " +
- "INNER JOIN Answer AS aw " +
- "ON aw.accountformid = af.accountformid " +
- "INNER JOIN Question AS q " +
- "ON q.questionid = aw.questionid " +
- "LEFT JOIN Account as rp " +
- "ON rp.accountId = aw.answer " +
- "LEFT JOIN AccountDepartment as rp_ad " +
- "ON rp_ad.accountId = rp.accountId " +
- "LEFT JOIN Department as rp_d " +
- "ON rp_d.departmentId = rp_ad.departmentId " +
- "LEFT JOIN Organization as rp_o " +
- "ON rp_o.organizationId = rp_d.organizationId " +
- "WHERE q.field = 'searchedProvider' " +
- ") as rp_o ON rp_o.accountId = c.accountId " +
- "WHERE " +
- "c.completedDate >= ? AND c.completedDate <= ? ";
- var params = [organizationId, filter.startDate, filter.endDate];
- if (filter.status) {
- if (filter.status == 'BILLING') {
- sql += ' AND c.status IN (\'FOR_BILLING_REVIEW\',\'BILLING_APPROVED\',\'CLOSED\')';
- } else {
- sql += " AND c.status = ? ";
- params.push(filter.status);
- }
- }
- if (filter.insuranceId) {
- sql += " AND ai.insuranceId = ? ";
- params.push(filter.insuranceId);
- }
- sql += "GROUP BY c.caseId ";
- sql += "ORDER BY c.completedDate";
- // console.log(mysql.format(sql, params));
- dataSource.connector.client.query(sql, params, function(error, results) {
- if (error) {
- callback(error);
- return;
- }
- //Get headers
- var headers = [];
- _.forEach(columns, function(column) {
- headers.push(column.columnName);
- });
- //Format CSV
- var data = [headers];
- for (var i in results) {
- var item = results[i];
- var row = [];
- for (var k in columns) {
- var column = columns[k];
- var nameArray=['DiagCode'];//add columns to expand by numbers
- for(var j in nameArray) {
- var title = nameArray[j];
- if (column.columnName == title+1 && item[title+1]) {
- var icds = item[title+1].split(",");
- var pointers = "";
- for (var index in icds) {
- var split = icds[index].replace(/"/g, "").replace(/[|]/g, "");
- if (split) {//creating empty string
- var x = Number(index) + 1;
- item[title + x] = split;
- if (pointers.length > 0) pointers +=',';
- pointers += x;
- }
- }
- if (title == 'DiagCode') item.DiagCodePointer1 = pointers; //save comma separated diag code pointers
- }
- }
- row.push(item[column.columnName]);
- }
- data.push(row);
- }
- res.setHeader('Content-disposition', 'attachment; filename=report.csv');
- res.writeHead(200, {
- 'Content-Type': 'text/csv'
- });
- csv.stringify(data, function(error, results) {
- if (error) {
- callback(error);
- return;
- }
- res.write(results);
- res.end();
- //console.log('csv', results);
- });
- });
- };
- })();
Add Comment
Please, Sign In to add comment