ESOA IMPLEMENTATION (LORMA)----------------------------------------------------------------------------------------------------------------------------------- billing database: get from 6.206 CREATE sp_PARS_LoadSOA_PHIC_SPLIT_NewFormat_ESOA CREATE sp_PARS_RepSOASummarized_Columns_PHICVER2_SPLIT_ESOA CREATE sp_BILLING_GetPXinfo_Ver2 from 6.206 CREATE sp_MedicRep_ItemizedBilling medicare database and philhealth program: place rpt in Report folder : SOA_Summarized_Columns_PHIC_New_Split_VAT_NewFormat_PNF_ESOA.rpt place rpt in Report folder : SOA_Summarized_Columns_PHIC_New_Split_VAT_NewFormat_PNF_ESOA_DETAILED.rpt CREATED FUNCTION dbo.fn_isPxESOACirc20230021 CREATED INSERT INTO TBMED_MODULESETTINGS esoa script INSERT INTO CODE Public Function isPatient_ESOACirc20230021(stridnum As String) As Boolean Dim SQL As String isPatient_ESOACirc20230021 = False SQL = "Select Medicare.dbo.fn_isPxESOACirc20230021('" & stridnum & "') as isPatient_ESOACirc20230021" With Rec If .State > 0 Then .Close .CursorLocation = adUseClient .Open SQL, user.SQLConnection, adOpenDynamic, adLockReadOnly If .RecordCount > 0 Then isPatient_ESOACirc20230021 = !isPatient_ESOACirc20230021 End If .Close End With Set Rec = Nothing End Function created function CheckDcrDate source code CREATED Private Sub mnu_ESOA_Preprinted_Click() CREATED Private Sub mnu_ESOA_Complete_Click() run ESOASwitchForLMCandVSS.sql script('280','SOA Complete Version 6 ESOA Format','B','2','1') - LORMA - check menu first before inserting add column (ESOAStatus varchar(50),ESOAVerifiedOn datetime,ESOAVerifiedBy varchar(150)) in station..tbnurseprofile add data in station..tbnursesetup = insert into station..tbNurseSetup (field,value,status,description) values ('ESOARequireStart','2023-02-01','1','') add tables tbMedEClaimsESOAXml, tbMedEClaimsESOAXmlSeries ESOA IMPLEMENTATION (VSS/other clients)--------------------------------------------------------------------------------------------------------------------- billing database: get from 6.206 CREATE sp_PARS_LoadSOA_PHIC_SPLIT_NewFormat_ESOA CREATE sp_PARS_RepSOASummarized_Columns_PHICVER2_SPLIT_ESOA CREATE sp_BILLING_GetPXinfo_Ver2 from 6.206 CREATE sp_MedicRep_ItemizedBilling medicare database and philhealth program: place rpt in Report folder : SOA_Summarized_Columns_PHIC_New_Split_VAT_NewFormat_PNF_ESOA.rpt place rpt in Report folder : SOA_Summarized_Columns_PHIC_New_Split_VAT_NewFormat_PNF_ESOA_DETAILED.rpt CREATED FUNCTION dbo.fn_isPxESOACirc20230021 CREATED INSERT INTO TBMED_MODULESETTINGS esoa script INSERT INTO CODE Public Function isPatient_ESOACirc20230021(stridnum As String) As Boolean Dim SQL As String isPatient_ESOACirc20230021 = False SQL = "Select Medicare.dbo.fn_isPxESOACirc20230021('" & stridnum & "') as isPatient_ESOACirc20230021" With Rec If .State > 0 Then .Close .CursorLocation = adUseClient .Open SQL, user.SQLConnection, adOpenDynamic, adLockReadOnly If .RecordCount > 0 Then isPatient_ESOACirc20230021 = !isPatient_ESOACirc20230021 End If .Close End With Set Rec = Nothing End Function created function CheckDcrDate CREATED Private Sub mnu_ESOA_Preprinted_Click() CREATED Private Sub mnu_ESOA_Complete_Click() run ESOASwitchForLMCandVSS.sql script ('283','SOA Complete Version 4 ESOA Format','B','2','1') -VSS - check menu first before inserting add column (ESOAStatus(varchar50),ESOAVerifiedOn(datetime),ESOAVerifiedByv(varchar150)) in station..tbnurseprofile add data in station..tbnursesetup = insert into station..tbNurseSetup (field,value,status,description) values ('ESOARequireStart','2023-02-01','1','') add tables tbMedEClaimsESOAXml, tbMedEClaimsESOAXmlSeries eclaims module: 'arnold 1.17.2024 ECLAIMS part (TAKE NOTE ModLOcalDBNewFields soon to add ESOA settings) added in frmsupportingDocuments: -isEsoaPatient as boolean -isEsoaPatient = GetAdmDate(mvarIdNum) > EsoaImplementationDate -isAllowESOA = ProgSettingsGbl.IsProgramSettingExists("A0B2AD25-9H2Y-7AB4-45B7-5GT5D5X1C621") ' A0B2AD25-9H2Y-7AB4-45B7-5GT5D5X1C621 ECLAIMS : ESOA -cmdAction(6).Visible = isAllowESOA And isEsoaPatient -Private Function WithUploadedESOAXml() As Boolean -In procedure cmbDocumentType_click: cmdAction(6).Enabled = False If selectedDocumentCode = "ESOA" Then cmdAction(6).Enabled = True End If -In Private Function BrowseFile: ElseIf selectedDocumentCode = "ESOA" Then dlgFile.Filter = "Xml Files (*.xml)|*.xml" added in modGlobaVariable : -Global EsoaImplementationDate As Date added in clsXMLBuilder: -Friend Function CreateESOAXml add in tbmedeclaimsprogramsettings: - insert into medicare..tbMedEClaimsProgramSettings (ID,Description) values ('6905CE49-8YCV-KLA4-0BS3-LQM15BE84CCD','SUPPORTING DOCUMENTS : VALIDATE ESOA VERIFIED') - insert into medicare..tbMedEClaimsProgramSettings (ID,Description) values ('A0B2AD25-9H2Y-7AB4-45B7-5GT5D5X1C621','ECLAIMS : ESOA') 'arnold 1.17.2024 Property Get isESOASuccess() As Boolean isESOASuccess = blnESOASuccess End Property added functions HasESOATransNo,GetESOASeriesNo,SaveESOAXmlLog,IsEsoaVerified,GetESOAImplementationStartDate (soon check getESOAimplementationStartDate, then insert in that table) Create class ESOAXml CREATED PROCEDURE MEDICREP_ESOAXML USE ESOAXML dtd file sent by philhealth modified MedSys.PhicSoap.Gateway.dll in COM.ServiceWrapper>MedSysPhicSoapGateway>Implementations>C# ElectronicClaims.cs>ElectronicClaims: add //arnold added ESOA TEST 1.23.2024 private string _validatedESOAResult; public string ValidateESOAXmlToDtd(string sourceFile, string dtdFilePath) { string sourcePath = File.ReadAllText(sourceFile); string root = Path.GetDirectoryName(dtdFilePath); string resultPath = root + "\\ValidationResult.xml"; FileStream fs = null; System.Xml.XmlReaderSettings settings = null; System.Xml.XmlReader reader = null; _validatedESOAResult = ""; try { // Set the validation settings. settings = new System.Xml.XmlReaderSettings(); settings.ValidationType = System.Xml.ValidationType.DTD; settings.DtdProcessing = System.Xml.DtdProcessing.Parse; settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(ValidationESOACallBack); settings.IgnoreWhitespace = true; if (File.Exists(resultPath)) File.Delete(resultPath); using (fs = File.Create(resultPath)) { Byte[] info = new System.Text.UTF8Encoding(true).GetBytes(""); fs.Write(info, 0, info.Length); } fs = new FileStream(resultPath, FileMode.Create); using (StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.UTF8, 512, false)) { writer.Write(string.Format("", dtdFilePath)); writer.Write(sourcePath); } reader = System.Xml.XmlReader.Create(resultPath, settings); while (reader.Read()) { } } finally { if (fs != null) fs.Dispose(); if (reader != null) reader.Dispose(); if (settings != null) settings.Reset(); } return _validatedESOAResult; } private void ValidationESOACallBack(object sender, System.Xml.Schema.ValidationEventArgs e) { if (e.Severity == System.Xml.Schema.XmlSeverityType.Warning) { _validatedESOAResult = "Warning: Matching schema not found. No validation occurred." + e.Message; //Console.WriteLine("Warning: Matching schema not found. No validation occurred." + e.Message); //Console.ReadKey(); } else // Error { _validatedESOAResult = "Validation error: " + e.Message; //Console.WriteLine("Validation error: " + e.Message); //Console.ReadKey(); } } //arnold added ESOA TEST 1.23.2024 end in C# IElectronicClaims.cs>IElectronicClaims : add string ValidateESOAXmlToDtd(string sourceFile, string dtdFilePath); ESOA TEST PATIENT 6/18/2024 728346