//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.296
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Pluto.Api {
    using System;
    using RemObjects.SDK;
    using RemObjects.SDK.Types;
    using RemObjects.SDK.Server;
    
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class Authentication_Invoker : RemObjects.SDK.Server.Invoker {
        public Authentication_Invoker() : 
                base() {
        }
        public static void Invoke_Login1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(2);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                PracticeInfo1 practiceInfo = ((PracticeInfo1)(@__Message.Read("practiceInfo", typeof(PracticeInfo1), RemObjects.SDK.StreamingFormat.Default)));
                string userId = @__Message.ReadAnsiString("userId");
                string password = @__Message.ReadAnsiString("password");
                @__ObjectDisposer.Add(practiceInfo);
                UserInfo1 userInfo;
                userInfo = ((IAuthentication)(@__Instance)).Login1(apiKey, practiceInfo, userId, password);
                @__ObjectDisposer.Add(userInfo);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Authentication", "Login1Response");
                @__Message.Write("userInfo", userInfo, typeof(UserInfo1), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetPracticeList1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                PracticeInfo1[] PracticeList;
                PracticeList = ((IAuthentication)(@__Instance)).GetPracticeList1(apiKey);
                @__ObjectDisposer.Add(PracticeList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Authentication", "GetPracticeList1Response");
                @__Message.Write("PracticeList", PracticeList, typeof(PracticeInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_CreatePin1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                PracticeInfo1 practiceInfo = ((PracticeInfo1)(@__Message.Read("practiceInfo", typeof(PracticeInfo1), RemObjects.SDK.StreamingFormat.Default)));
                string userID = @__Message.ReadAnsiString("userID");
                string fourdigitpin = @__Message.ReadAnsiString("fourdigitpin");
                @__ObjectDisposer.Add(practiceInfo);
                bool Result;
                Result = ((IAuthentication)(@__Instance)).CreatePin1(apiKey, practiceInfo, userID, fourdigitpin);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Authentication", "CreatePin1Response");
                @__Message.WriteBoolean("Result", Result);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_ValidatePin1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(2);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                PracticeInfo1 practiceInfo = ((PracticeInfo1)(@__Message.Read("practiceInfo", typeof(PracticeInfo1), RemObjects.SDK.StreamingFormat.Default)));
                string userID = @__Message.ReadAnsiString("userID");
                string pin = @__Message.ReadAnsiString("pin");
                @__ObjectDisposer.Add(practiceInfo);
                UserInfo1 UserInfo;
                UserInfo = ((IAuthentication)(@__Instance)).ValidatePin1(apiKey, practiceInfo, userID, pin);
                @__ObjectDisposer.Add(UserInfo);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Authentication", "ValidatePin1Response");
                @__Message.Write("UserInfo", UserInfo, typeof(UserInfo1), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_PinIsSet1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                PracticeInfo1 practiceInfo = ((PracticeInfo1)(@__Message.Read("practiceInfo", typeof(PracticeInfo1), RemObjects.SDK.StreamingFormat.Default)));
                string userID = @__Message.ReadAnsiString("userID");
                @__ObjectDisposer.Add(practiceInfo);
                bool Result;
                Result = ((IAuthentication)(@__Instance)).PinIsSet1(apiKey, practiceInfo, userID);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Authentication", "PinIsSet1Response");
                @__Message.WriteBoolean("Result", Result);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetAPIVersion(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            string Result;
            Result = ((IAuthentication)(@__Instance)).GetAPIVersion();
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Authentication", "GetAPIVersionResponse");
            @__Message.WriteAnsiString("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_IsAPIOutOfDate(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            bool Result;
            Result = ((IAuthentication)(@__Instance)).IsAPIOutOfDate();
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Authentication", "IsAPIOutOfDateResponse");
            @__Message.WriteBoolean("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class Authentication_Activator : RemObjects.SDK.Server.ServiceActivator {
        public Authentication_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new Authentication();
        }
    }
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class Schedule_Invoker : RemObjects.SDK.Server.Invoker {
        public Schedule_Invoker() : 
                base() {
        }
        public static void Invoke_GetAppointments1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(3);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                ProviderInfo1[] providerInfos = ((ProviderInfo1[])(@__Message.Read("providerInfos", typeof(ProviderInfo1[]), RemObjects.SDK.StreamingFormat.Default)));
                ResourceInfo1[] resourecInfos = ((ResourceInfo1[])(@__Message.Read("resourecInfos", typeof(ResourceInfo1[]), RemObjects.SDK.StreamingFormat.Default)));
                System.DateTime startDate = @__Message.ReadDateTime("startDate");
                System.DateTime endDate = @__Message.ReadDateTime("endDate");
                @__ObjectDisposer.Add(providerInfos);
                @__ObjectDisposer.Add(resourecInfos);
                AppointmentInfo1[] AppointmentList;
                AppointmentList = ((ISchedule)(@__Instance)).GetAppointments1(apiKey, providerInfos, resourecInfos, startDate, endDate);
                @__ObjectDisposer.Add(AppointmentList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Schedule", "GetAppointments1Response");
                @__Message.Write("AppointmentList", AppointmentList, typeof(AppointmentInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetAppointmentDetail1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int ApptID = @__Message.ReadInt32("ApptID");
                bool CalculateBalance = @__Message.ReadBoolean("CalculateBalance");
                AppointmentDetail1 Result;
                Result = ((ISchedule)(@__Instance)).GetAppointmentDetail1(apiKey, ApptID, CalculateBalance);
                @__ObjectDisposer.Add(Result);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Schedule", "GetAppointmentDetail1Response");
                @__Message.Write("Result", Result, typeof(AppointmentDetail1), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_AddAppointment1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                AppointmentInfo1 appointmentInfo = ((AppointmentInfo1)(@__Message.Read("appointmentInfo", typeof(AppointmentInfo1), RemObjects.SDK.StreamingFormat.Default)));
                @__ObjectDisposer.Add(appointmentInfo);
                bool Result;
                Result = ((ISchedule)(@__Instance)).AddAppointment1(apiKey, appointmentInfo);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Schedule", "AddAppointment1Response");
                @__Message.WriteBoolean("Result", Result);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class Schedule_Activator : RemObjects.SDK.Server.ServiceActivator {
        public Schedule_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new Schedule();
        }
    }
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class Practice_Invoker : RemObjects.SDK.Server.Invoker {
        public Practice_Invoker() : 
                base() {
        }
        public static void Invoke_GetPracticeList1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                PracticeInfo1[] PracticeList;
                PracticeList = ((IPractice)(@__Instance)).GetPracticeList1(apiKey);
                @__ObjectDisposer.Add(PracticeList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Practice", "GetPracticeList1Response");
                @__Message.Write("PracticeList", PracticeList, typeof(PracticeInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetProviderList1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(2);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                PracticeInfo1 practiceInfo = ((PracticeInfo1)(@__Message.Read("practiceInfo", typeof(PracticeInfo1), RemObjects.SDK.StreamingFormat.Default)));
                @__ObjectDisposer.Add(practiceInfo);
                ProviderInfo1[] ProviderList;
                ProviderList = ((IPractice)(@__Instance)).GetProviderList1(apiKey, practiceInfo);
                @__ObjectDisposer.Add(ProviderList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Practice", "GetProviderList1Response");
                @__Message.Write("ProviderList", ProviderList, typeof(ProviderInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetPatientList1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                string lastName = @__Message.ReadAnsiString("lastName");
                string firstName = @__Message.ReadAnsiString("firstName");
                string dateOfBirth = @__Message.ReadAnsiString("dateOfBirth");
                PatientInfo1[] PatientList;
                PatientList = ((IPractice)(@__Instance)).GetPatientList1(apiKey, lastName, firstName, dateOfBirth);
                @__ObjectDisposer.Add(PatientList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Practice", "GetPatientList1Response");
                @__Message.Write("PatientList", PatientList, typeof(PatientInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetMessageRecipientList(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                MessageRecipientInfo1[] MessageRecipients;
                MessageRecipients = ((IPractice)(@__Instance)).GetMessageRecipientList(apiKey);
                @__ObjectDisposer.Add(MessageRecipients);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Practice", "GetMessageRecipientListResponse");
                @__Message.Write("MessageRecipients", MessageRecipients, typeof(MessageRecipientInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetResourcesList1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                ResourceInfo1[] Result;
                Result = ((IPractice)(@__Instance)).GetResourcesList1(apiKey);
                @__ObjectDisposer.Add(Result);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Practice", "GetResourcesList1Response");
                @__Message.Write("Result", Result, typeof(ResourceInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetFacilitiesList1(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                FacilityInfo1[] Result;
                Result = ((IPractice)(@__Instance)).GetFacilitiesList1(apiKey);
                @__ObjectDisposer.Add(Result);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Practice", "GetFacilitiesList1Response");
                @__Message.Write("Result", Result, typeof(FacilityInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class Practice_Activator : RemObjects.SDK.Server.ServiceActivator {
        public Practice_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new Practice();
        }
    }
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class Patient_Invoker : RemObjects.SDK.Server.Invoker {
        public Patient_Invoker() : 
                base() {
        }
        public static void Invoke_GetMedications(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int chartId = @__Message.ReadInt32("chartId");
                PrescribedMedicationInfo1[] MedicationList;
                MedicationList = ((IPatient)(@__Instance)).GetMedications(apiKey, chartId);
                @__ObjectDisposer.Add(MedicationList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "GetMedicationsResponse");
                @__Message.Write("MedicationList", MedicationList, typeof(PrescribedMedicationInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetAllergies(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int chartId = @__Message.ReadInt32("chartId");
                AllergyInfo1[] AllergyList;
                AllergyList = ((IPatient)(@__Instance)).GetAllergies(apiKey, chartId);
                @__ObjectDisposer.Add(AllergyList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "GetAllergiesResponse");
                @__Message.Write("AllergyList", AllergyList, typeof(AllergyInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetProblems(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int chartId = @__Message.ReadInt32("chartId");
                ProblemInfo1[] ProblemList;
                ProblemList = ((IPatient)(@__Instance)).GetProblems(apiKey, chartId);
                @__ObjectDisposer.Add(ProblemList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "GetProblemsResponse");
                @__Message.Write("ProblemList", ProblemList, typeof(ProblemInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetProcedures(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int chartId = @__Message.ReadInt32("chartId");
                ProcedureInfo1[] Procedures;
                Procedures = ((IPatient)(@__Instance)).GetProcedures(apiKey, chartId);
                @__ObjectDisposer.Add(Procedures);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "GetProceduresResponse");
                @__Message.Write("Procedures", Procedures, typeof(ProcedureInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetChart(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int patientId = @__Message.ReadInt32("patientId");
                int chartId = @__Message.ReadInt32("chartId");
                ChartInfo1 chart;
                chart = ((IPatient)(@__Instance)).GetChart(apiKey, patientId, chartId);
                @__ObjectDisposer.Add(chart);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "GetChartResponse");
                @__Message.Write("chart", chart, typeof(ChartInfo1), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetVitalSigns(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int patientId = @__Message.ReadInt32("patientId");
                int chartId = @__Message.ReadInt32("chartId");
                VitalSignInfo1[] VitalSigns;
                VitalSigns = ((IPatient)(@__Instance)).GetVitalSigns(apiKey, patientId, chartId);
                @__ObjectDisposer.Add(VitalSigns);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "GetVitalSignsResponse");
                @__Message.Write("VitalSigns", VitalSigns, typeof(VitalSignInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_AddNote(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int patientId = @__Message.ReadInt32("patientId");
                int chartId = @__Message.ReadInt32("chartId");
                PatientNoteInfo1 patientNote = ((PatientNoteInfo1)(@__Message.Read("patientNote", typeof(PatientNoteInfo1), RemObjects.SDK.StreamingFormat.Default)));
                @__ObjectDisposer.Add(patientNote);
                ((IPatient)(@__Instance)).AddNote(apiKey, patientId, chartId, patientNote);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "AddNoteResponse");
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roNoResponse;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetNotes(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int patientId = @__Message.ReadInt32("patientId");
                int chartId = @__Message.ReadInt32("chartId");
                PatientNoteInfo1[] Notes;
                Notes = ((IPatient)(@__Instance)).GetNotes(apiKey, patientId, chartId);
                @__ObjectDisposer.Add(Notes);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "GetNotesResponse");
                @__Message.Write("Notes", Notes, typeof(PatientNoteInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetPatientDetail(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                string chartID = @__Message.ReadAnsiString("chartID");
                PatientDetail1 Result;
                Result = ((IPatient)(@__Instance)).GetPatientDetail(apiKey, chartID);
                @__ObjectDisposer.Add(Result);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "GetPatientDetailResponse");
                @__Message.Write("Result", Result, typeof(PatientDetail1), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_CreatePatient(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                PatientInfo1 basicPatientInfo = ((PatientInfo1)(@__Message.Read("basicPatientInfo", typeof(PatientInfo1), RemObjects.SDK.StreamingFormat.Default)));
                @__ObjectDisposer.Add(basicPatientInfo);
                string ChartID;
                ChartID = ((IPatient)(@__Instance)).CreatePatient(apiKey, basicPatientInfo);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Patient", "CreatePatientResponse");
                @__Message.WriteAnsiString("ChartID", ChartID);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class Patient_Activator : RemObjects.SDK.Server.ServiceActivator {
        public Patient_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new Patient();
        }
    }
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class Medication_Invoker : RemObjects.SDK.Server.Invoker {
        public Medication_Invoker() : 
                base() {
        }
        public static void Invoke_Search(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                string searchString = @__Message.ReadAnsiString("searchString");
                MedicationInfo1[] MedicationSearchResults;
                MedicationSearchResults = ((IMedication)(@__Instance)).Search(apiKey, searchString);
                @__ObjectDisposer.Add(MedicationSearchResults);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Medication", "SearchResponse");
                @__Message.Write("MedicationSearchResults", MedicationSearchResults, typeof(MedicationInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class Medication_Activator : RemObjects.SDK.Server.ServiceActivator {
        public Medication_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new Medication();
        }
    }
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class Terminology_Invoker : RemObjects.SDK.Server.Invoker {
        public Terminology_Invoker() : 
                base() {
        }
        public static void Invoke_SearchTerminology(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(3);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                string searchString = @__Message.ReadAnsiString("searchString");
                TerminologySearchTypeEnum searchType = ((TerminologySearchTypeEnum)(@__Message.Read("searchType", typeof(TerminologySearchTypeEnum), RemObjects.SDK.StreamingFormat.Default)));
                TerminologyDomainEnum terminologyDomain = ((TerminologyDomainEnum)(@__Message.Read("terminologyDomain", typeof(TerminologyDomainEnum), RemObjects.SDK.StreamingFormat.Default)));
                string chartID = @__Message.ReadAnsiString("chartID");
                @__ObjectDisposer.Add(searchType);
                @__ObjectDisposer.Add(terminologyDomain);
                TerminologyInfo1[] Terms;
                Terms = ((ITerminology)(@__Instance)).SearchTerminology(apiKey, searchString, searchType, terminologyDomain, chartID);
                @__ObjectDisposer.Add(Terms);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Terminology", "SearchTerminologyResponse");
                @__Message.Write("Terms", Terms, typeof(TerminologyInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class Terminology_Activator : RemObjects.SDK.Server.ServiceActivator {
        public Terminology_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new Terminology();
        }
    }
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class Provider_Invoker : RemObjects.SDK.Server.Invoker {
        public Provider_Invoker() : 
                base() {
        }
        public static void Invoke_GetMailboxFoldersInfo(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                int providerId = @__Message.ReadInt32("providerId");
                MailboxFolderInfo1[] MailboxFoldersInfo;
                MailboxFoldersInfo = ((IProvider)(@__Instance)).GetMailboxFoldersInfo(apiKey, providerId);
                @__ObjectDisposer.Add(MailboxFoldersInfo);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Provider", "GetMailboxFoldersInfoResponse");
                @__Message.Write("MailboxFoldersInfo", MailboxFoldersInfo, typeof(MailboxFolderInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetMailboxItems(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(2);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                MailboxFolderTypeEnum folderType = ((MailboxFolderTypeEnum)(@__Message.Read("folderType", typeof(MailboxFolderTypeEnum), RemObjects.SDK.StreamingFormat.Default)));
                @__ObjectDisposer.Add(folderType);
                FolderItemInfo1[] FolderItems;
                FolderItems = ((IProvider)(@__Instance)).GetMailboxItems(apiKey, folderType);
                @__ObjectDisposer.Add(FolderItems);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Provider", "GetMailboxItemsResponse");
                @__Message.Write("FolderItems", FolderItems, typeof(FolderItemInfo1[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetMessage(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                long messageId = @__Message.ReadInt64("messageId");
                MessageInfo1 MessageInfo;
                MessageInfo = ((IProvider)(@__Instance)).GetMessage(apiKey, messageId);
                @__ObjectDisposer.Add(MessageInfo);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Provider", "GetMessageResponse");
                @__Message.Write("MessageInfo", MessageInfo, typeof(MessageInfo1), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_SendMessage(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                MessageInfo1 message = ((MessageInfo1)(@__Message.Read("message", typeof(MessageInfo1), RemObjects.SDK.StreamingFormat.Default)));
                @__ObjectDisposer.Add(message);
                ((IProvider)(@__Instance)).SendMessage(apiKey, message);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Provider", "SendMessageResponse");
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roNoResponse;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class Provider_Activator : RemObjects.SDK.Server.ServiceActivator {
        public Provider_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new Provider();
        }
    }
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class Billing_Invoker : RemObjects.SDK.Server.Invoker {
        public Billing_Invoker() : 
                base() {
        }
        public static void Invoke_LoadSuperBill(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                string Name = @__Message.ReadAnsiString("Name");
                System.Xml.XmlNode Result;
                Result = ((IBilling)(@__Instance)).LoadSuperBill(apiKey, Name);
                @__ObjectDisposer.Add(Result);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Billing", "LoadSuperBillResponse");
                @__Message.WriteXml("Result", Result);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_SaveSuperBill(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                string Name = @__Message.ReadAnsiString("Name");
                System.Xml.XmlNode Data = @__Message.ReadXml("Data");
                @__ObjectDisposer.Add(Data);
                ((IBilling)(@__Instance)).SaveSuperBill(apiKey, Name, Data);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Billing", "SaveSuperBillResponse");
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roNoResponse;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GetListOfAvailableSuperBills(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                string[] CSVList;
                CSVList = ((IBilling)(@__Instance)).GetListOfAvailableSuperBills(apiKey);
                @__ObjectDisposer.Add(CSVList);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Billing", "GetListOfAvailableSuperBillsResponse");
                @__Message.Write("CSVList", CSVList, typeof(string[]), RemObjects.SDK.StreamingFormat.AnsiString);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_PostBilling(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string apiKey = @__Message.ReadAnsiString("apiKey");
                string user = @__Message.ReadAnsiString("user");
                BillingPost1 billingPost = ((BillingPost1)(@__Message.Read("billingPost", typeof(BillingPost1), RemObjects.SDK.StreamingFormat.Default)));
                @__ObjectDisposer.Add(billingPost);
                bool Result;
                Result = ((IBilling)(@__Instance)).PostBilling(apiKey, user, billingPost);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Billing", "PostBillingResponse");
                @__Message.WriteBoolean("Result", Result);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_DeleteSuperbill(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            string apiKey = @__Message.ReadAnsiString("apiKey");
            string Name = @__Message.ReadAnsiString("Name");
            ((IBilling)(@__Instance)).DeleteSuperbill(apiKey, Name);
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "Billing", "DeleteSuperbillResponse");
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roNoResponse;
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class Billing_Activator : RemObjects.SDK.Server.ServiceActivator {
        public Billing_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new Billing();
        }
    }
    [RemObjects.SDK.Server.Invoker()]
    [System.Reflection.ObfuscationAttribute(Exclude=true)]
    public class MSLSpecific_Invoker : RemObjects.SDK.Server.Invoker {
        public MSLSpecific_Invoker() : 
                base() {
        }
        public static void Invoke_ProductSetupCompleted(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            string SharedConnectionDataSource = @__Message.ReadAnsiString("SharedConnectionDataSource");
            string RegisteredName = @__Message.ReadAnsiString("RegisteredName");
            bool Result;
            Result = ((IMSLSpecific)(@__Instance)).ProductSetupCompleted(SharedConnectionDataSource, RegisteredName);
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "ProductSetupCompletedResponse");
            @__Message.WriteBoolean("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_PracticeNameChangeOccured(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            string SharedConnectionDataSource = @__Message.ReadAnsiString("SharedConnectionDataSource");
            string NewPracticeName = @__Message.ReadAnsiString("NewPracticeName");
            string DataBaseNameOrDataSetName = @__Message.ReadAnsiString("DataBaseNameOrDataSetName");
            bool Result;
            Result = ((IMSLSpecific)(@__Instance)).PracticeNameChangeOccured(SharedConnectionDataSource, NewPracticeName, DataBaseNameOrDataSetName);
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "PracticeNameChangeOccuredResponse");
            @__Message.WriteBoolean("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_MobileAboutDialogCalled(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                string SharedConnectionDataSource = @__Message.ReadAnsiString("SharedConnectionDataSource");
                string RegisteredName = @__Message.ReadAnsiString("RegisteredName");
                string PracticeName = @__Message.ReadAnsiString("PracticeName");
                string DataBaseNameOrDataSetName = @__Message.ReadAnsiString("DataBaseNameOrDataSetName");
                ApiKeyNPin Result;
                Result = ((IMSLSpecific)(@__Instance)).MobileAboutDialogCalled(SharedConnectionDataSource, RegisteredName, PracticeName, DataBaseNameOrDataSetName);
                @__ObjectDisposer.Add(Result);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "MobileAboutDialogCalledResponse");
                @__Message.Write("Result", Result, typeof(ApiKeyNPin), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_IsServerReachableFromTheInternet(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            string SharedConnectionDataSource = @__Message.ReadAnsiString("SharedConnectionDataSource");
            bool Result;
            Result = ((IMSLSpecific)(@__Instance)).IsServerReachableFromTheInternet(SharedConnectionDataSource);
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "IsServerReachableFromTheInternetResponse");
            @__Message.WriteBoolean("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_UpdateServiceIfNeeded(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            ((IMSLSpecific)(@__Instance)).UpdateServiceIfNeeded();
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "UpdateServiceIfNeededResponse");
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roNoResponse;
        }
        public static void Invoke_GetHostSpecGUID(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            string Result;
            Result = ((IMSLSpecific)(@__Instance)).GetHostSpecGUID();
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "GetHostSpecGUIDResponse");
            @__Message.WriteAnsiString("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_GetLocalIP(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            string Result;
            Result = ((IMSLSpecific)(@__Instance)).GetLocalIP();
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "GetLocalIPResponse");
            @__Message.WriteAnsiString("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_GetExternalIP(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            string Result;
            Result = ((IMSLSpecific)(@__Instance)).GetExternalIP();
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "GetExternalIPResponse");
            @__Message.WriteAnsiString("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_GetExternalPort(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            int Result;
            Result = ((IMSLSpecific)(@__Instance)).GetExternalPort();
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "GetExternalPortResponse");
            @__Message.WriteInt32("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_SetExternalPort(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            int Port = @__Message.ReadInt32("Port");
            bool Result;
            Result = ((IMSLSpecific)(@__Instance)).SetExternalPort(Port);
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "SetExternalPortResponse");
            @__Message.WriteBoolean("Result", Result);
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
        }
        public static void Invoke_GetLoadedCredentials(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                ApiKeyNCredential[] Result;
                Result = ((IMSLSpecific)(@__Instance)).GetLoadedCredentials();
                @__ObjectDisposer.Add(Result);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "GetLoadedCredentialsResponse");
                @__Message.Write("Result", Result, typeof(ApiKeyNCredential[]), RemObjects.SDK.StreamingFormat.Default);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_AddSharedCredential(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            RemObjects.SDK.ObjectDisposer @__ObjectDisposer = new RemObjects.SDK.ObjectDisposer(1);
            try {
                ApiKeyNCredential credential = ((ApiKeyNCredential)(@__Message.Read("credential", typeof(ApiKeyNCredential), RemObjects.SDK.StreamingFormat.Default)));
                @__ObjectDisposer.Add(credential);
                bool Result;
                Result = ((IMSLSpecific)(@__Instance)).AddSharedCredential(credential);
                @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "AddSharedCredentialResponse");
                @__Message.WriteBoolean("Result", Result);
                @__Message.FinalizeMessage();
                @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roDefault;
            }
            finally {
                @__ObjectDisposer.Dispose();
            }
        }
        public static void Invoke_GenerateApiKeysForPracticesInLoadedSharedCredentials(RemObjects.SDK.IROService @__Instance, RemObjects.SDK.IMessage @__Message, RemObjects.SDK.Server.IServerChannelInfo @__ServerChannelInfo, out RemObjects.SDK.Server.ResponseOptions @__oResponseOptions) {
            ((IMSLSpecific)(@__Instance)).GenerateApiKeysForPracticesInLoadedSharedCredentials();
            @__Message.InitializeResponseMessage(@__ServerChannelInfo, "PlutoApi", "MSLSpecific", "GenerateApiKeysForPracticesInLoadedSharedCredentialsResponse");
            @__Message.FinalizeMessage();
            @__oResponseOptions = RemObjects.SDK.Server.ResponseOptions.roNoResponse;
        }
    }
    [RemObjects.SDK.Activator()]
    [System.Reflection.ObfuscationAttribute(Exclude=true, ApplyToMembers=false)]
    public class MSLSpecific_Activator : RemObjects.SDK.Server.ServiceActivator {
        public MSLSpecific_Activator() : 
                base() {
        }
        public override RemObjects.SDK.IROService CreateInstance() {
            return new MSLSpecific();
        }
    }
}
