public static void ActivityStart(string activityid = "") { MetricEvent newEvent = new MetricEvent(); ActivityStart metricData = new ActivityStart(activityid); newEvent.SetEventInfo(uuid, user, sessionID, null); newEvent.Timestamp(DateTime.UtcNow); newEvent.Data(metricData); //Keep a tally of the events in a session in the case of time race conditions to still know which event occured first newEvent.SessionIndex(sessionMetricList.Count); APIManager.SubmitMetrics((new MetricEvent[1] { newEvent }), (res) => HandleResponse(res)); sessioncount++; }
public void InsertDHACopyClaims(string FilePath, long Sys_File_Source) { string ClaimID, ClaimIDPayer, ClaimMemberID, ClaimPayerID, ClaimProviderID, ClaimEmiratesIDNumber; double ClaimGross, ClaimPatientShare, ClaimNet; string EncounterFacilityID = "", EncounterType = "", EncounterPatientID = "", EncounterStartType = "", EncounterEndType = "", EncounterTransferSource = "", EncounterTransferDestination = ""; DateTime EncounterStart = DateTime.Now, EncounterEnd = DateTime.Now; DataSet ds = new DataSet(); DAL _da = new DAL(); string xmlString = System.IO.File.ReadAllText(FilePath); xmlString = EscapeXMLValue(xmlString); TextReader txtReader = new StringReader(xmlString); XmlReader reader = new XmlTextReader(txtReader); ds.ReadXml(reader); DataTable header = ds.Tables["Header"]; #region Header string SenderID = header.Rows[0]["SenderID"].ToString(); string ReceiverID = header.Rows[0]["ReceiverID"].ToString(); DateTime TransactionDate = ValueHandler.ToClaimDate(header.Rows[0]["TransactionDate"]); long RecordCount = Convert.ToInt32(header.Rows[0]["RecordCount"]); string DispositionFlag = header.Rows[0]["DispositionFlag"].ToString(); #endregion long Sys_Claim_ID = _da.ExecuteScalar("Select nvl(max(SYS_CLAIM_ID),0)+1 from ECLAIMS"); #region Claims foreach (DataRow claim in ds.Tables["Claim"].Rows) { try { ClaimID = claim["ID"].ToString(); try { ClaimIDPayer = claim["IDPayer"].ToString(); } catch { ClaimIDPayer = claim["PayerID"].ToString(); } ClaimMemberID = claim["MemberID"].ToString(); ClaimPayerID = claim["PayerID"].ToString(); ClaimProviderID = claim["PayerID"].ToString(); ClaimEmiratesIDNumber = claim["EmiratesIDNumber"].ToString(); ClaimGross = Convert.ToDouble(claim["Gross"].ToString()); ClaimPatientShare = Convert.ToDouble(claim["PatientShare"].ToString()); ClaimNet = Convert.ToDouble(claim["Net"].ToString()); #region Encounter foreach (DataRow Encounter in claim.GetChildRows("Claim_Encounter")) { EncounterFacilityID = Encounter["FacilityID"].ToString(); EncounterType = Encounter["Type"].ToString(); EncounterPatientID = Encounter["PatientID"].ToString(); EncounterStart = ValueHandler.ToClaimDate(claim["Start"].ToString()); try { EncounterEnd = ValueHandler.ToClaimDate(claim["End"].ToString()); } catch { } try { EncounterStartType = Encounter["StartType"].ToString(); } catch { } try { EncounterEndType = Encounter["EndType"].ToString(); } catch { } try { EncounterTransferSource = Encounter["TransferSource"].ToString(); } catch { } try { EncounterTransferDestination = Encounter["TransferDestination"].ToString(); } catch { } } #endregion string ProviderTypeFK = @"SELECT NVL(PROVIDERTYPE,2) FROM TABLE(SF_GETCLAIMPROVIDER_FNC('" + SenderID + "'))"; int ClaimProviderType = Convert.ToInt32(_da.ExecuteScalar(ProviderTypeFK)); string cmd1 = " INSERT INTO ECLAIMS (SYS_CLAIM_ID,SENDER_ID, RECEIVER_ID, TRANSACTION_DATE, DISPOSITION_FLAG, CLAIM_ID, ID_PAYER, MEMBER_ID, " + " PAYER_ID, PROVIDER_ID, EMIRATES_ID_NUMBER,CLAIM_GROSS, CLAIM_PATIENT_SHARE, CLAIM_NET, ENCOUNTER_FACILITY_ID, ENCOUNTER_FACILITY_TYPE, " + " ENCOUNTER_PATIENT_ID, ENCOUNTER_START, ENCOUNTER_END, ENCOUNTER_START_TYPE, ENCOUNTER_END_TYPE, ENCOUNTER_TRANSFER_SOURCE, " + " ENCOUNTER_TRANSFER_DESTINATION, SYS_CLAIM_STATUS, SYS_CLAIM_SOURCE, PROVIDERTYPE, CEEDSTATUS) " + " VALUES (" + Sys_Claim_ID + ",'" + SenderID + "','" + ReceiverID + "',to_date('" + TransactionDate.ToShortDateString() + "','mm-dd-yyyy'),'" + DispositionFlag + "','" + ClaimID + "','" + ClaimIDPayer + "','" + ClaimMemberID + "', " + " '" + ClaimPayerID + "','" + ClaimProviderID + "','" + ClaimEmiratesIDNumber + "'," + ClaimGross + "," + ClaimPatientShare + "," + ClaimNet + ",'" + EncounterFacilityID + "', '" + EncounterType + "' " + " '" + EncounterPatientID + "',to_date('" + EncounterStart.ToShortDateString() + " " + EncounterStart.ToLongTimeString() + "','mm-dd-yyyy HH:MI:SS AM'),to_date('" + EncounterEnd.ToShortDateString() + " " + EncounterEnd.ToLongTimeString() + "','mm-dd-yyyy HH:MI:SS AM'),'" + EncounterStartType + "','" + EncounterEndType + "','" + EncounterTransferSource + "', " + " '" + EncounterTransferDestination + "',277," + Sys_File_Source + "," + ClaimProviderType + ",0)"; string Result = _da.ExecuteQuery(cmd1); #region Diagnosis foreach (DataRow diag in claim.GetChildRows("Claim_Diagnosis")) { long Sys_Diag_ID = _da.ExecuteScalar("Select nvl(max(SYS_Diagnosis_ID),0)+1 from Eclaim_Diagnosis"); string DiagnosisType, DiagnosisCode, DxInfoType = "", DxInfoCode = ""; DiagnosisType = diag["Type"].ToString(); DiagnosisCode = diag["Code"].ToString(); string cmd2 = "Insert Into Eclaim_Diagnosis (SYS_Diagnosis_ID,Sys_Claim_ID,Diagnosis_Type,Diagnosis_Code) Values " + "(" + Sys_Diag_ID + "," + Sys_Claim_ID + ",'" + DiagnosisType + "','" + DiagnosisCode + "')"; Result = _da.ExecuteQuery(cmd2); } #endregion #region Activity foreach (DataRow act in claim.GetChildRows("Claim_Activity")) { long Sys_Act_ID = _da.ExecuteScalar("Select nvl(max(SYS_Activity_ID),0)+1 from Eclaim_Activities"); string ActivityID, ActivityType, ActivityCode, ActivityClinician = "", ActivityPriorAuthorizationID = "", ActivityOrderingClinician = ""; double ActivityQty, ActivityNet; DateTime ActivityStart; ActivityID = act["ID"].ToString(); ActivityStart = ValueHandler.ToClaimDate(claim["Start"].ToString()); ActivityType = act["Type"].ToString(); ActivityCode = act["Code"].ToString(); ActivityQty = (Convert.ToDouble(act["Quantity"].ToString())); ActivityNet = Convert.ToDouble(act["Net"].ToString()); try { ActivityClinician = act["Clinician"].ToString(); } catch { } try { ActivityPriorAuthorizationID = act["PriorAuthorizationID"].ToString(); } catch { } try { ActivityOrderingClinician = (act["OrderingClinician"].ToString()); } catch { } string cmd3 = "Insert Into Eclaim_Activities (Sys_Activity_Id,Sys_Claim_ID,Activity_ID,Activity_Start,Activity_Type,Activity_Code, " + " Quantity,Activity_Net,Clinician,Prior_Authorization_Id,OrderingClinician) Values " + "(" + Sys_Act_ID + "," + Sys_Claim_ID + ",'" + ActivityID + "',to_date('" + ActivityStart.ToShortDateString() + " " + ActivityStart.ToLongTimeString() + "','mm-dd-yyyy HH:MI:SS AM') , " + " '" + ActivityType + "','" + ActivityCode + "'," + ActivityQty + "," + ActivityNet + ",'" + ActivityClinician + "','" + ActivityPriorAuthorizationID + "','" + ActivityOrderingClinician + "')"; Result = _da.ExecuteQuery(cmd3); #region Activity Observation foreach (DataRow observ in act.GetChildRows("Activity_Observation")) { long Sys_Obs_ID = _da.ExecuteScalar("select NVL(Max(Sys_Observation_ID),0) from ACTIVITY_OBSERVATIONS"); string ObsType, ObsCode = "", ObsValue = "", ObsValueType; ObsType = observ["Type"].ToString(); ObsValueType = observ["ValueType"].ToString(); if (string.IsNullOrEmpty(ObsType)) { ObsType = ObsType.Replace("'", ""); } if (string.IsNullOrEmpty(observ["Code"].ToString())) { ObsCode = observ["Code"].ToString().Replace("'", ""); } if (string.IsNullOrEmpty(ObsValueType)) { ObsValueType = ObsValueType.Replace("'", ""); } if (ObsType == "File") { string filename = ConfigurationSettings.AppSettings["ClaimObservation"].ToString() + "\\" + Guid.NewGuid().ToString() + "." + ObsValueType; WriteObservationAttachment(filename, observ["Value"].ToString()); ObsValue = filename; } string cmd4 = "Insert Into ACTIVITY_OBSERVATIONS (Sys_Observation_ID,Sys_Activity_ID,Observation_Type,Observation_Code, " + " ValueType,Value) Values " + " (" + Sys_Obs_ID + "," + Sys_Act_ID + ",'" + ObsType + "','" + ObsCode + "','" + ObsValueType + "','" + ObsValue + "')"; Result = _da.ExecuteQuery(cmd4); } #endregion } #endregion #region Resubmission foreach (DataRow resub in claim.GetChildRows("Claim_Resubmission")) { string ResubType, ResubComment; ResubType = resub["Type"].ToString(); ResubComment = resub["Comment"].ToString(); Result = _da.ExecuteQuery("Update Eclaims Set Resubmission_type = '" + ResubType + "',Resubmission_Comment = '" + ResubComment + "',ISResubmission = 1 Where Sys_Claim_ID = " + Sys_Claim_ID); try { if (resub["Attachment"].ToString() != string.Empty) { string PDFFilePath = ConfigurationSettings.AppSettings["ResubmissionClaims"].ToString(); if (!Directory.Exists(PDFFilePath)) { Directory.CreateDirectory(PDFFilePath); } try { string AttachmentPath = PDFFilePath + "\\" + claim["ID"].ToString() + ".pdf"; byte[] toEncodeAsBytes = System.Convert.FromBase64String(resub["Attachment"].ToString()); File.WriteAllBytes(AttachmentPath, toEncodeAsBytes); } catch { } } } catch { } } #endregion } catch { } } #endregion }