Example #1
0
        public ViralLoadResultEntity ViralLoadResults(ViralLoadResultEntity entity)
        {
            var internalIdentifiers = new List <INTERNALPATIENTID>();

            foreach (var identifier in internalIdentifiers)
            {
                var internalIdentity = new INTERNALPATIENTID()
                {
                    ID = identifier.ID,
                    IDENTIFIER_TYPE     = identifier.IDENTIFIER_TYPE,
                    ASSIGNING_AUTHORITY = identifier.ASSIGNING_AUTHORITY
                };
                internalIdentifiers.Add(internalIdentity);
            }

            var vlResultsDto = new ViralLoadResultEntity()
            {
                MESSAGE_HEADER =
                {
                    SENDING_APPLICATION   = entity.MESSAGE_HEADER.SENDING_APPLICATION,
                    SENDING_FACILITY      = entity.MESSAGE_HEADER.SENDING_FACILITY,
                    RECEIVING_APPLICATION = entity.MESSAGE_HEADER.RECEIVING_APPLICATION,
                    RECEIVING_FACILITY    = entity.MESSAGE_HEADER.RECEIVING_FACILITY,
                    MESSAGE_DATETIME      = entity.MESSAGE_HEADER.MESSAGE_DATETIME, //DateTime.Now.ToString("yyyyMMddHHmmss");
                    SECURITY      = entity.MESSAGE_HEADER.SECURITY,
                    MESSAGE_TYPE  = entity.MESSAGE_HEADER.MESSAGE_TYPE,
                    PROCESSING_ID = entity.MESSAGE_HEADER.PROCESSING_ID
                },
                PATIENT_IDENTIFICATION =
                {
                    PATIENT_NAME        =
                    {
                        FIRST_NAME  = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME,
                        MIDDLE_NAME = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME,
                        LAST_NAME   = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME
                    },
                    INTERNAL_PATIENT_ID = internalIdentifiers
                },
                VIRAL_LOAD_RESULT =
                {
                    DATE_SAMPLE_COLLECTED = entity.VIRAL_LOAD_RESULT.DATE_SAMPLE_COLLECTED,
                    DATE_SAMPLE_TESTED    = entity.VIRAL_LOAD_RESULT.DATE_SAMPLE_TESTED,
                    JUSTIFICATION         = entity.VIRAL_LOAD_RESULT.JUSTIFICATION,
                    LAB_TESTED_IN         = entity.VIRAL_LOAD_RESULT.LAB_TESTED_IN,
                    REGIMEN     = entity.VIRAL_LOAD_RESULT.REGIMEN,
                    SAMPLE_TYPE = entity.VIRAL_LOAD_RESULT.SAMPLE_TYPE
                }
            };

            return(vlResultsDto);
        }
        public static INTERNALPATIENTID getInternalPatientIdCCC(PatientMessage patientMessage)
        {
            try
            {
                INTERNALPATIENTID internalPatientId = new INTERNALPATIENTID();
                internalPatientId.ID = patientMessage.IdentifierValue;
                internalPatientId.IDENTIFIER_TYPE     = "CCC_NUMBER";
                internalPatientId.ASSIGNING_AUTHORITY = "CCC";

                return(internalPatientId);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public static INTERNALPATIENTID getInternalPatientIdNationalId(PatientMessage patientMessage)
        {
            try
            {
                INTERNALPATIENTID internalNationalId = new INTERNALPATIENTID();
                if (!String.IsNullOrWhiteSpace(patientMessage.NATIONAL_ID) && patientMessage.NATIONAL_ID != "99999999")
                {
                    internalNationalId.ID = patientMessage.NATIONAL_ID;
                    internalNationalId.IDENTIFIER_TYPE     = "NATIONAL_ID";
                    internalNationalId.ASSIGNING_AUTHORITY = "GOK";
                }

                return(internalNationalId);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public static PatientRegistrationDTO Get(int patientId)
        {
            PatientMessageManager  patientMessageManager = new PatientMessageManager();
            PatientMessage         patientMessage        = patientMessageManager.GetPatientMessageByEntityId(patientId);
            PatientRegistrationDTO registration          = new PatientRegistrationDTO();
            var personIdentifierManager = new PersonIdentifierManager();

            if (patientMessage != null)
            {
                IdentifierManager identifierManager = new IdentifierManager();
                Identifier        identifier        = identifierManager.GetIdentifierByCode("GODS_NUMBER");
                var personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patientMessage.Id, identifier.Id);

                INTERNALPATIENTID internalPatientId = new INTERNALPATIENTID();
                internalPatientId.ID = patientMessage.IdentifierValue;
                internalPatientId.IDENTIFIER_TYPE     = "CCC_NUMBER";
                internalPatientId.ASSIGNING_AUTHORITY = "CCC";


                registration.PATIENT_IDENTIFICATION = registration.PATIENT_IDENTIFICATION == null ? new PATIENTIDENTIFICATION() : registration.PATIENT_IDENTIFICATION;
                registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID = registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID == null ? new List <INTERNALPATIENTID>() : registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID;
                registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID == null ? new EXTERNALPATIENTID() : registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID;
                registration.PATIENT_IDENTIFICATION.PATIENT_NAME        = registration.PATIENT_IDENTIFICATION.PATIENT_NAME == null ? new PATIENTNAME() : registration.PATIENT_IDENTIFICATION.PATIENT_NAME;
                registration.PATIENT_IDENTIFICATION.MOTHER_NAME         = registration.PATIENT_IDENTIFICATION.MOTHER_NAME == null ? (dynamic)null : registration.PATIENT_IDENTIFICATION.MOTHER_NAME;
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS     = registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS == null ? new PATIENTADDRESS() : registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS;
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS = registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS == null ? new PHYSICAL_ADDRESS() : registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS;
                registration.PATIENT_VISIT = registration.PATIENT_VISIT == null ? new VISIT() : registration.PATIENT_VISIT;
                registration.NEXT_OF_KIN   = registration.NEXT_OF_KIN == null ? new List <NEXTOFKIN>() : registration.NEXT_OF_KIN;

                //External Patient Id
                registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID = personIdentifiers.Count > 0 ? personIdentifiers[0].IdentifierValue : String.Empty;
                registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY = "MPI";
                registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE     = "GODS_NUMBER";
                //Start setting values
                registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalPatientId);
                if (!String.IsNullOrWhiteSpace(patientMessage.NATIONAL_ID) && patientMessage.NATIONAL_ID != "99999999")
                {
                    INTERNALPATIENTID internalNationalId = new INTERNALPATIENTID();
                    internalNationalId.ID = patientMessage.NATIONAL_ID;
                    internalNationalId.IDENTIFIER_TYPE     = "NATIONAL_ID";
                    internalNationalId.ASSIGNING_AUTHORITY = "GOK";

                    registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalNationalId);
                }
                //set names
                registration.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME  = !string.IsNullOrWhiteSpace(patientMessage.FIRST_NAME) ? patientMessage.FIRST_NAME: "";
                registration.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME = !string.IsNullOrWhiteSpace(patientMessage.MIDDLE_NAME) ? patientMessage.MIDDLE_NAME : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME   = !string.IsNullOrWhiteSpace(patientMessage.LAST_NAME) ? patientMessage.LAST_NAME : "";
                //set DOB
                registration.PATIENT_IDENTIFICATION.DATE_OF_BIRTH           = !string.IsNullOrWhiteSpace(patientMessage.DATE_OF_BIRTH) ? patientMessage.DATE_OF_BIRTH : "";
                registration.PATIENT_IDENTIFICATION.DATE_OF_BIRTH_PRECISION = !string.IsNullOrWhiteSpace(patientMessage.DATE_OF_BIRTH_PRECISION) ? patientMessage.DATE_OF_BIRTH_PRECISION : "";
                //set sex
                registration.PATIENT_IDENTIFICATION.SEX = !string.IsNullOrWhiteSpace(patientMessage.SEX) ? patientMessage.SEX : "";
                //set phone number
                registration.PATIENT_IDENTIFICATION.PHONE_NUMBER = !string.IsNullOrWhiteSpace(patientMessage.MobileNumber) ? patientMessage.MobileNumber : "";
                //set marital status
                registration.PATIENT_IDENTIFICATION.MARITAL_STATUS = !string.IsNullOrWhiteSpace(patientMessage.MARITAL_STATUS) ? patientMessage.MARITAL_STATUS : "";
                //set patient address variables
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.POSTAL_ADDRESS                    = !string.IsNullOrWhiteSpace(patientMessage.PhysicalAddress) ? patientMessage.PhysicalAddress : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.VILLAGE          = !string.IsNullOrWhiteSpace(patientMessage.Village) ? patientMessage.Village : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.WARD             = !string.IsNullOrWhiteSpace(patientMessage.WardName) ? patientMessage.WardName : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.SUB_COUNTY       = !string.IsNullOrWhiteSpace(patientMessage.Subcountyname) ? patientMessage.Subcountyname : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.COUNTY           = !string.IsNullOrWhiteSpace(patientMessage.CountyName) ? patientMessage.CountyName : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.NEAREST_LANDMARK = !string.IsNullOrWhiteSpace(patientMessage.Landmark) ? patientMessage.Landmark : "";
                //set visit variables
                registration.PATIENT_VISIT.HIV_CARE_ENROLLMENT_DATE = !string.IsNullOrWhiteSpace(patientMessage.DateOfEnrollment) ? patientMessage.DateOfEnrollment : "";
                registration.PATIENT_VISIT.PATIENT_SOURCE           = !string.IsNullOrWhiteSpace(patientMessage.EntryPoint) ? patientMessage.EntryPoint : "";
                registration.PATIENT_VISIT.PATIENT_TYPE             = !string.IsNullOrWhiteSpace(patientMessage.PatientType) ? patientMessage.PatientType : "";
                registration.PATIENT_VISIT.VISIT_DATE = !string.IsNullOrWhiteSpace(patientMessage.DateOfRegistration) ? patientMessage.DateOfRegistration : "";
                //set if patient is dead
                registration.PATIENT_IDENTIFICATION.DEATH_DATE      = !string.IsNullOrWhiteSpace(patientMessage.DateOfDeath) ? patientMessage.DateOfDeath : "";
                registration.PATIENT_IDENTIFICATION.DEATH_INDICATOR = !string.IsNullOrWhiteSpace(patientMessage.DeathIndicator) ? patientMessage.DeathIndicator : "";

                if (!string.IsNullOrWhiteSpace(patientMessage.TFIRST_NAME) && !string.IsNullOrWhiteSpace(patientMessage.TLAST_NAME))
                {
                    NEXTOFKIN treatmentSupporter = new NEXTOFKIN();
                    treatmentSupporter.NOK_NAME.FIRST_NAME  = !string.IsNullOrWhiteSpace(patientMessage.TFIRST_NAME) ? patientMessage.TFIRST_NAME : "";
                    treatmentSupporter.NOK_NAME.MIDDLE_NAME = !string.IsNullOrWhiteSpace(patientMessage.TMIDDLE_NAME) ? patientMessage.TMIDDLE_NAME : "";
                    treatmentSupporter.NOK_NAME.LAST_NAME   = !string.IsNullOrWhiteSpace(patientMessage.TLAST_NAME) ? patientMessage.TLAST_NAME : "";
                    treatmentSupporter.DATE_OF_BIRTH        = !string.IsNullOrWhiteSpace(patientMessage.TDATE_OF_BIRTH) ? patientMessage.TDATE_OF_BIRTH : "";
                    treatmentSupporter.PHONE_NUMBER         = !string.IsNullOrWhiteSpace(patientMessage.TPHONE_NUMBER) ? patientMessage.TPHONE_NUMBER : "";
                    treatmentSupporter.ADDRESS      = !string.IsNullOrWhiteSpace(patientMessage.TADDRESS) ? patientMessage.TADDRESS : "";
                    treatmentSupporter.CONTACT_ROLE = "T";
                    treatmentSupporter.RELATIONSHIP = String.Empty;
                    treatmentSupporter.SEX          = !string.IsNullOrWhiteSpace(patientMessage.TSEX) ? patientMessage.TSEX : "";

                    registration.NEXT_OF_KIN.Add(treatmentSupporter);
                }
            }

            return(registration);
        }
Example #5
0
        public static ObservationResultDTO GetWHOStage(int entityId)
        {
            try
            {
                ObservationResultDTO   observationResult = new ObservationResultDTO();
                PatientWhoStageManager whoStageManager   = new PatientWhoStageManager();
                var whoStage = whoStageManager.GetWhoStageById(entityId);

                if (whoStage != null)
                {
                    LookupLogic lookupLogic = new LookupLogic();
                    PatientMasterVisitManager visitManager            = new PatientMasterVisitManager();
                    PersonIdentifierManager   personIdentifierManager = new PersonIdentifierManager();
                    IdentifierManager         identifierManager       = new IdentifierManager();
                    Identifier            identifier            = identifierManager.GetIdentifierByCode("GODS_NUMBER");
                    PatientMessageManager patientMessageManager = new PatientMessageManager();
                    PatientMessage        patientMessage        = patientMessageManager.GetPatientMessageByEntityId(whoStage.PatientId);
                    PatientMasterVisit    visit = visitManager.GetVisitById(whoStage.PatientMasterVisitId);

                    List <PersonIdentifier> personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patientMessage.Id, identifier.Id);
                    string whoStageString = lookupLogic.GetLookupItemNameByMasterNameItemId(whoStage.WHOStage, "WHOStage");

                    //Initialize default values
                    observationResult.PATIENT_IDENTIFICATION = observationResult.PATIENT_IDENTIFICATION == null ? new OBSERVATIONPATIENTIDENTIFICATION() : observationResult.PATIENT_IDENTIFICATION;
                    observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID = observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID == null ? new List <INTERNALPATIENTID>() : observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID;
                    observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID == null ? new EXTERNALPATIENTID() : observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID;
                    observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME        = observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME == null ? new PATIENTNAME() : observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME;
                    observationResult.OBSERVATION_RESULT = observationResult.OBSERVATION_RESULT == null ? new List <OBSERVATION_RESULT>() : observationResult.OBSERVATION_RESULT;

                    //External Patient Id
                    observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = PatientIdentificationSegment.GetExternalPatientId(personIdentifiers);

                    //CCC Number
                    INTERNALPATIENTID internalPatientId = PatientIdentificationSegment.getInternalPatientIdCCC(patientMessage);
                    observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalPatientId);

                    //National ID
                    INTERNALPATIENTID internalNationalId = PatientIdentificationSegment.getInternalPatientIdNationalId(patientMessage);
                    if (internalNationalId != null)
                    {
                        observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalNationalId);
                    }

                    //Patient Names
                    observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME = PatientIdentificationSegment.GetPatientName(patientMessage);

                    //set visitdate value
                    DateTime visitDate       = visit.VisitDate.HasValue ? visit.VisitDate.Value : DateTime.Now;
                    string   observationDate = visitDate.ToString("yyyyMMddHmmss", CultureInfo.InvariantCulture);

                    string observationValue = String.Empty;
                    switch (whoStageString)
                    {
                    case "Stage1":
                        observationValue = "1";
                        break;

                    case "Stage2":
                        observationValue = "2";
                        break;

                    case "Stage3":
                        observationValue = "3";
                        break;

                    case "Stage4":
                        observationValue = "4";
                        break;
                    }
                    //WHO STAGE
                    OBSERVATION_RESULT observation = new OBSERVATION_RESULT()
                    {
                        OBSERVATION_IDENTIFIER = "WHO_STAGE",
                        OBSERVATION_SUB_ID     = "",
                        CODING_SYSTEM          = "WHO",
                        VALUE_TYPE             = "NM",
                        OBSERVATION_VALUE      = observationValue,
                        UNITS = "",
                        OBSERVATION_RESULT_STATUS = "F",
                        OBSERVATION_DATETIME      = observationDate,
                        ABNORMAL_FLAGS            = "N"
                    };

                    observationResult.OBSERVATION_RESULT.Add(observation);
                }

                return(observationResult);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #6
0
        public static ObservationResultDTO GetVitals(int patientId, int patientMasterVisitId)
        {
            ObservationResultDTO observationResult = new ObservationResultDTO();

            try
            {
                PatientMessageManager patientMessageManager = new PatientMessageManager();
                PatientMessage        patientMessage        = patientMessageManager.GetPatientMessageByEntityId(patientId);
                if (patientMessage != null)
                {
                    PersonIdentifierManager personIdentifierManager = new PersonIdentifierManager();
                    IdentifierManager       identifierManager       = new IdentifierManager();
                    Identifier identifier = identifierManager.GetIdentifierByCode("GODS_NUMBER");

                    //Initialize default values
                    observationResult.PATIENT_IDENTIFICATION = observationResult.PATIENT_IDENTIFICATION == null ? new OBSERVATIONPATIENTIDENTIFICATION() : observationResult.PATIENT_IDENTIFICATION;
                    observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID = observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID == null ? new List <INTERNALPATIENTID>() : observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID;
                    observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID == null ? new EXTERNALPATIENTID() : observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID;
                    observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME        = observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME == null ? new PATIENTNAME() : observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME;
                    observationResult.OBSERVATION_RESULT = observationResult.OBSERVATION_RESULT == null ? new List <OBSERVATION_RESULT>() : observationResult.OBSERVATION_RESULT;

                    //External Patient Id
                    List <PersonIdentifier> personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patientMessage.Id, identifier.Id);
                    observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = PatientIdentificationSegment.GetExternalPatientId(personIdentifiers);

                    //CCC Number
                    INTERNALPATIENTID internalPatientId = PatientIdentificationSegment.getInternalPatientIdCCC(patientMessage);
                    observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalPatientId);

                    //National ID
                    if (!String.IsNullOrWhiteSpace(patientMessage.NATIONAL_ID) && patientMessage.NATIONAL_ID != "99999999")
                    {
                        INTERNALPATIENTID internalNationalId = PatientIdentificationSegment.getInternalPatientIdNationalId(patientMessage);
                        observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalNationalId);
                    }

                    //Patient Names
                    observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME = PatientIdentificationSegment.GetPatientName(patientMessage);

                    //get vitals observation
                    PatientVitalsMessageManager patientVitalsMessage = new PatientVitalsMessageManager();
                    PatientVitalsMessage        patientVitals        = patientVitalsMessage.GetPatientVitalsMessageByPatientIdPatientMasterVisitId(patientId, patientMasterVisitId);
                    if (patientVitals != null)
                    {
                        OBSERVATION_RESULT observationHeight = new OBSERVATION_RESULT()
                        {
                            OBSERVATION_IDENTIFIER = "START_HEIGHT",
                            OBSERVATION_SUB_ID     = "",
                            CODING_SYSTEM          = "",
                            VALUE_TYPE             = "NM",
                            OBSERVATION_VALUE      = patientVitals.Height.ToString(),
                            UNITS = patientVitals.HeightUnits,
                            OBSERVATION_RESULT_STATUS = "F",
                            OBSERVATION_DATETIME      = patientVitals.VisitDate,
                            ABNORMAL_FLAGS            = "N"
                        };

                        OBSERVATION_RESULT observationWeight = new OBSERVATION_RESULT()
                        {
                            OBSERVATION_IDENTIFIER = "START_WEIGHT",
                            OBSERVATION_SUB_ID     = "",
                            CODING_SYSTEM          = "",
                            VALUE_TYPE             = "NM",
                            OBSERVATION_VALUE      = patientVitals.Weight.ToString(),
                            UNITS = patientVitals.WeightUnits,
                            OBSERVATION_RESULT_STATUS = "F",
                            OBSERVATION_DATETIME      = patientVitals.VisitDate,
                            ABNORMAL_FLAGS            = "N"
                        };

                        observationResult.OBSERVATION_RESULT.Add(observationHeight);
                        observationResult.OBSERVATION_RESULT.Add(observationWeight);
                    }
                }

                return(observationResult);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Example #7
0
        public static PatientAppointSchedulingDTO Get(int entityId)
        {
            try
            {
                PatientAppointmentMessageManager appointmentManager    = new PatientAppointmentMessageManager();
                PatientAppointmentMessage        appointmentMessage    = appointmentManager.GetPatientAppointmentMessageById(entityId);
                PatientAppointSchedulingDTO      appointmentScheduling = new PatientAppointSchedulingDTO();

                if (appointmentMessage != null)
                {
                    PatientMessageManager patientMessageManager = new PatientMessageManager();
                    PatientMessage        patientMessage        = patientMessageManager.GetPatientMessageByEntityId(appointmentMessage.PatientId);
                    var personIdentifierManager = new PersonIdentifierManager();

                    if (patientMessage != null)
                    {
                        IdentifierManager identifierManager = new IdentifierManager();
                        Identifier        identifier        = identifierManager.GetIdentifierByCode("GODS_NUMBER");
                        var personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patientMessage.Id, identifier.Id);

                        appointmentScheduling.PATIENT_IDENTIFICATION                     = appointmentScheduling.PATIENT_IDENTIFICATION == null ? new APPOINTMENTPATIENTIDENTIFICATION() : appointmentScheduling.PATIENT_IDENTIFICATION;
                        appointmentScheduling.APPOINTMENT_INFORMATION                    = appointmentScheduling.APPOINTMENT_INFORMATION == null ? new List <APPOINTMENT_INFORMATION>() : appointmentScheduling.APPOINTMENT_INFORMATION;
                        appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME        = appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME == null ? new PATIENTNAME() : appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME;
                        appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID = appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID == null ? new List <INTERNALPATIENTID>() : appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID;
                        appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID == null ? new EXTERNALPATIENTID() : appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID;


                        INTERNALPATIENTID internalPatientId = new INTERNALPATIENTID();
                        internalPatientId.ID = patientMessage.IdentifierValue;
                        internalPatientId.IDENTIFIER_TYPE     = "CCC_NUMBER";
                        internalPatientId.ASSIGNING_AUTHORITY = "CCC";

                        appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalPatientId);
                        if (!String.IsNullOrWhiteSpace(patientMessage.NATIONAL_ID) && patientMessage.NATIONAL_ID != "99999999")
                        {
                            INTERNALPATIENTID internalNationalId = new INTERNALPATIENTID();
                            internalNationalId.ID = patientMessage.NATIONAL_ID;
                            internalNationalId.IDENTIFIER_TYPE     = "NATIONAL_ID";
                            internalNationalId.ASSIGNING_AUTHORITY = "GOK";

                            appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalNationalId);
                        }

                        //External Patient Id
                        appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID = personIdentifiers.Count > 0 ? personIdentifiers[0].IdentifierValue : String.Empty;
                        appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY = "MPI";
                        appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE     = "GODS_NUMBER";

                        //set names
                        appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME  = !string.IsNullOrWhiteSpace(patientMessage.FIRST_NAME) ? patientMessage.FIRST_NAME : "";
                        appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME = !string.IsNullOrWhiteSpace(patientMessage.MIDDLE_NAME) ? patientMessage.MIDDLE_NAME : "";
                        appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME   = !string.IsNullOrWhiteSpace(patientMessage.LAST_NAME) ? patientMessage.LAST_NAME : "";

                        string appointmentReason   = String.Empty;
                        string appointmentType     = String.Empty;
                        string appointmentLocation = String.Empty;
                        string appointmentStatus   = String.Empty;
                        switch (appointmentMessage.AppointmentReason)
                        {
                        case "Pharmacy Refill":
                            appointmentReason = "PHARMACY_REFILL";
                            break;

                        case "Treatment Preparation":
                            appointmentReason = "TREATMENT_PREP";
                            break;

                        case "Lab Tests":
                            appointmentReason = "LAB_TEST";
                            break;

                        case "Follow Up":
                            appointmentReason = "FOLLOWUP";
                            break;

                        default:
                            appointmentReason = "FOLLOWUP";
                            break;
                        }

                        switch (appointmentMessage.AppointmentType)
                        {
                        case "Standard Care":
                            appointmentType = "CLINICAL";
                            break;

                        case "Express Care":
                            appointmentType = "PHARMACY";
                            break;

                        case "Community Based Dispensing":
                            appointmentType = "PHARMACY";
                            break;

                        default:
                            appointmentType = "CLINICAL";
                            break;
                        }

                        switch (appointmentMessage.AppointmentReason)
                        {
                        case "Pharmacy Refill":
                            appointmentLocation = "PHARMACY";
                            break;

                        case "Treatment Preparation":
                            appointmentLocation = "CLINIC";
                            break;

                        case "Lab Tests":
                            appointmentLocation = "LAB";
                            break;

                        case "Follow Up":
                            appointmentLocation = "CLINIC";
                            break;

                        default:
                            appointmentLocation = "CLINIC";
                            break;
                        }

                        switch (appointmentMessage.AppointmentStatus)
                        {
                        case "PreviouslyMissed":
                            appointmentStatus = "MISSED";
                            break;

                        case "CareEnded":
                            appointmentStatus = "CANCELLED";
                            break;

                        case "Met":
                            appointmentStatus = "HONORED";
                            break;

                        case "Missed":
                            appointmentStatus = "MISSED";
                            break;

                        case "Pending":
                            appointmentStatus = "PENDING";
                            break;
                        }

                        //set appointment information
                        APPOINTMENT_INFORMATION appointmentInformation = new APPOINTMENT_INFORMATION()
                        {
                            PLACER_APPOINTMENT_NUMBER = new PLACER_APPOINTMENT_NUMBER()
                            {
                                NUMBER = appointmentMessage.AppointmentId.ToString(),
                                ENTITY = "IQCARE"
                            },
                            APPOINTMENT_REASON         = appointmentReason,
                            APPOINTMENT_TYPE           = appointmentType,
                            APPOINTMENT_DATE           = appointmentMessage.AppointmentDate,
                            APPOINTMENT_PLACING_ENTITY = "IQCARE",
                            APPOINTMENT_LOCATION       = appointmentLocation,
                            ACTION_CODE        = "A",
                            APPOINTMENT_NOTE   = appointmentMessage.Description,
                            APPOINTMENT_STATUS = appointmentStatus
                        };

                        appointmentScheduling.APPOINTMENT_INFORMATION.Add(appointmentInformation);
                    }
                }


                return(appointmentScheduling);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
Example #8
0
        public PatientRegistrationEntity PatientRegistration(Registration entity)
        {
            var identifiers = new List <INTERNALPATIENTID>();

            foreach (var id in entity.InternalPatientIdentifiers)
            {
                var identifier = new INTERNALPATIENTID()
                {
                    ID = id.IdentifierValue,
                    IDENTIFIER_TYPE     = id.IdentifierType,
                    ASSIGNING_AUTHORITY = id.AssigningAuthority
                };
                identifiers.Add(identifier);
            }

            var nextOfKin = new List <NEXTOFKIN>();

            if (entity.TreatmentSupporter != null)
            {
                var treatmentSupporter = new NEXTOFKIN()
                {
                    NOK_NAME = new NOKNAME()
                    {
                        FIRST_NAME  = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.FirstName) ? entity.TreatmentSupporter.FirstName : "",
                        MIDDLE_NAME = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.MiddleName) ? entity.TreatmentSupporter.MiddleName : "",
                        LAST_NAME   = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.LastName) ? entity.TreatmentSupporter.LastName : ""
                    },
                    CONTACT_ROLE  = "T",
                    RELATIONSHIP  = !string.IsNullOrWhiteSpace(entity.TSRelationshipType) ? entity.TSRelationshipType : "",
                    PHONE_NUMBER  = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.MobileNumber) ? entity.TreatmentSupporter.MobileNumber : "",
                    SEX           = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.Sex) ? entity.TreatmentSupporter.Sex : "",
                    DATE_OF_BIRTH = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.DateOfBirth) ? entity.TreatmentSupporter.DateOfBirth : "",
                    ADDRESS       = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.PhysicalAddress) ? entity.TreatmentSupporter.PhysicalAddress : ""
                };
                nextOfKin.Add(treatmentSupporter);
            }


            var patientRegistrationEntity = new PatientRegistrationEntity()
            {
                MESSAGE_HEADER         = GetMessageHeader("ADT^A04"),
                PATIENT_IDENTIFICATION = new PATIENTIDENTIFICATION()
                {
                    PATIENT_NAME = new PATIENTNAME()
                    {
                        FIRST_NAME  = !string.IsNullOrWhiteSpace(entity.Patient.FirstName)? entity.Patient.FirstName:"",
                        MIDDLE_NAME = !string.IsNullOrWhiteSpace(entity.Patient.MiddleName)? entity.Patient.MiddleName:"",
                        LAST_NAME   = !string.IsNullOrWhiteSpace(entity.Patient.LastName)? entity.Patient.LastName:"",
                    },
                    EXTERNAL_PATIENT_ID = new EXTERNALPATIENTID()
                    {
                        ID = "",
                        IDENTIFIER_TYPE     = "GODS_NUMBER",
                        ASSIGNING_AUTHORITY = "MPI"
                    },
                    DATE_OF_BIRTH   = !string.IsNullOrWhiteSpace(entity.Patient.DateOfBirth)?entity.Patient.DateOfBirth:null,
                    SEX             = !string.IsNullOrWhiteSpace(entity.Patient.Sex)? entity.Patient.Sex:"",
                    PHONE_NUMBER    = !string.IsNullOrWhiteSpace(entity.Patient.MobileNumber)? entity.Patient.MobileNumber:"",
                    PATIENT_ADDRESS = new PATIENTADDRESS()
                    {
                        POSTAL_ADDRESS   = !string.IsNullOrWhiteSpace(entity.Patient.PhysicalAddress)? entity.Patient.PhysicalAddress:"",
                        PHYSICAL_ADDRESS = new PHYSICALADDRESS()
                        {
                            COUNTY     = !string.IsNullOrWhiteSpace(entity.County)? entity.County:"",
                            SUB_COUNTY = !string.IsNullOrWhiteSpace(entity.SubCounty)? entity.SubCounty:"",
                            VILLAGE    = !string.IsNullOrWhiteSpace(entity.Village)? entity.Village:"",
                            WARD       = !string.IsNullOrWhiteSpace(entity.Ward)? entity.Ward:""
                        },
                    },
                    MARITAL_STATUS      = !string.IsNullOrWhiteSpace(entity.MaritalStatus)? entity.MaritalStatus:"",
                    DEATH_INDICATOR     = !string.IsNullOrWhiteSpace(entity.DeathIndicator)? entity.DeathIndicator:"",
                    DEATH_DATE          = "",
                    MOTHER_MAIDEN_NAME  = entity.MotherMaidenName,
                    INTERNAL_PATIENT_ID = identifiers
                },
                NEXT_OF_KIN        = nextOfKin,
                OBSERVATION_RESULT = new List <OBSERVATIONRESULT>()
            };

            return(patientRegistrationEntity);
        }