Example #1
0
        public DtoDrugDispensed DrugOrderFulfilment(PharmacyDispenseEntity entity)
        {
            var internalIdentifiers  = new List <DTOIdentifier>();
            var pharmacyEncodedOrder = new List <PHARMACY_ENCODED_ORDER>();
            var pharmacyDispense     = new List <PHARMACY_DISPENSE>();

            var identify = new DTOIdentifier()
            {
                //ExternalPatientId =
                //{
                //    IdentifierValue = entity.Patientidentification.EXTERNAL_PATIENT_ID.ID,
                //    IdentifierType = entity.Patientidentification.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE,
                //    AssigningAuthority = entity.Patientidentification.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY
                //},
                //PatientName =
                //{
                //    FirstName = entity.Patientidentification.PATIENT_NAME.FIRST_NAME,
                //    LastName = entity.Patientidentification.PATIENT_NAME.LAST_NAME,
                //    MiddleName = entity.Patientidentification.PATIENT_NAME.MIDDLE_NAME
                //}
            };

            foreach (var identifier in internalIdentifiers)
            {
                var internalIdentity = new DTOIdentifier()
                {
                    IdentifierValue    = identifier.IdentifierValue,
                    IdentifierType     = identifier.IdentifierType,
                    AssigningAuthority = identifier.AssigningAuthority
                };

                internalIdentifiers.Add(internalIdentity);
            }

            foreach (var pharmacyEncorder in pharmacyEncodedOrder)
            {
                var encorder = new PHARMACY_ENCODED_ORDER()
                {
                    DRUG_NAME           = pharmacyEncorder.DRUG_NAME,
                    CODING_SYSTEM       = pharmacyEncorder.CODING_SYSTEM,
                    STRENGTH            = pharmacyEncorder.STRENGTH,
                    DOSAGE              = pharmacyEncorder.DOSAGE,
                    FREQUENCY           = pharmacyEncorder.FREQUENCY,
                    DURATION            = pharmacyEncorder.DURATION,
                    QUANTITY_PRESCRIBED = pharmacyEncorder.QUANTITY_PRESCRIBED,
                    PRESCRIPTION_NOTES  = pharmacyEncorder.PRESCRIPTION_NOTES,
                };
                pharmacyEncodedOrder.Add(encorder);
            }

            foreach (var drugDispense in entity.PHARMACY_DISPENSE)
            {
                var dispense = new PHARMACY_DISPENSE()
                {
                    ACTUAL_DRUGS       = drugDispense.ACTUAL_DRUGS,
                    CODING_SYSTEM      = drugDispense.CODING_SYSTEM,
                    DISPENSING_NOTES   = drugDispense.DISPENSING_NOTES,
                    DOSAGE             = drugDispense.DOSAGE,
                    DRUG_NAME          = drugDispense.DRUG_NAME,
                    DURATION           = drugDispense.DURATION,
                    FREQUENCY          = drugDispense.FREQUENCY,
                    QUANTITY_DISPENSED = drugDispense.QUANTITY_DISPENSED
                };
                pharmacyDispense.Add(dispense);
            }

            var dispenseOrder = new DtoDrugDispensed()
            {
                MESSAGE_HEADER =
                {
                    SENDING_FACILITY      = entity.MESSAGE_HEADER.SENDING_FACILITY,
                    SENDING_APPLICATION   = entity.MESSAGE_HEADER.SENDING_APPLICATION,
                    RECEIVING_APPLICATION = entity.MESSAGE_HEADER.RECEIVING_APPLICATION,
                    RECEIVING_FACILITY    = entity.MESSAGE_HEADER.RECEIVING_FACILITY,
                    SECURITY      = entity.MESSAGE_HEADER.SECURITY,
                    MESSAGE_TYPE  = entity.MESSAGE_HEADER.MESSAGE_TYPE,
                    PROCESSING_ID = entity.MESSAGE_HEADER.PROCESSING_ID
                },
                PATIENT_IDENTIFICATION =
                {
                    EXTERNAL_PATIENT_ID     =
                    {
                        ASSIGNING_AUTHORITY = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY,
                        ID                  = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID,
                        IDENTIFIER_TYPE     = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE
                    },
                    //InternalPatientId = internalIdentifiers,
                    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
                    }
                },
                COMMON_ORDER_DETAILS =
                {
                    ORDER_CONTROL      = entity.COMMON_ORDER_DETAILS.ORDER_CONTROL,
                    NOTES              = entity.COMMON_ORDER_DETAILS.NOTES,
                    ORDERING_PHYSICIAN =
                    {
                        FIRST_NAME  = entity.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.FIRST_NAME,
                        MIDDLE_NAME = entity.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.MIDDLE_NAME,
                        LAST_NAME   = entity.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.LAST_NAME
                    },
                    ORDER_STATUS        = entity.COMMON_ORDER_DETAILS.ORDER_STATUS,
                    PLACER_ORDER_NUMBER =
                    {
                        NUMBER = entity.COMMON_ORDER_DETAILS.PLACER_ORDER_NUMBER.NUMBER,
                        ENTITY = entity.COMMON_ORDER_DETAILS.PLACER_ORDER_NUMBER.ENTITY
                    },
                    FILLER_ORDER_NUMBER  =
                    {
                        NUMBER = entity.COMMON_ORDER_DETAILS.PLACER_ORDER_NUMBER.NUMBER,
                        ENTITY = entity.COMMON_ORDER_DETAILS.PLACER_ORDER_NUMBER.ENTITY
                    },
                    TRANSACTION_DATETIME = Convert.ToDateTime(entity.COMMON_ORDER_DETAILS.TRANSACTION_DATETIME),
                },
                PHARMACY_ENCODED_ORDER = pharmacyEncodedOrder,
                PHARMACY_DISPENSE      = pharmacyDispense,
                //  PH = drugsDispensed
            };

            return(dispenseOrder);
        }
        public PrescriptionSourceDto PreparePrescriptionSourceDto(int ptntpk, int orderId, int patientMasterVisitId)
        {
            try
            {
                var drugPrescriptionSourceData = _drugPrescriptionManager.GetPatientPrescriptionMessage(ptntpk, orderId, patientMasterVisitId);

                // prescriptionDtoMessage = prescriptionDtoMessage.All();

                //instantiate new PrescriptionDto
                PrescriptionSourceDto prescriptionSourceDto = new PrescriptionSourceDto();

                ////todo -- MesasgeHeader-Automap
                prescriptionSourceDto.MESSAGE_HEADER.MESSAGE_TYPE          = "RDE^001";
                prescriptionSourceDto.MESSAGE_HEADER.MESSAGE_DATETIME      = Convert.ToDateTime(drugPrescriptionSourceData[0].TRANSACTION_DATETIME);
                prescriptionSourceDto.MESSAGE_HEADER.PROCESSING_ID         = "P";
                prescriptionSourceDto.MESSAGE_HEADER.RECEIVING_APPLICATION = "IL";
                prescriptionSourceDto.MESSAGE_HEADER.RECEIVING_FACILITY    = drugPrescriptionSourceData[0].SENDING_FACILITY;
                prescriptionSourceDto.MESSAGE_HEADER.SECURITY            = "";
                prescriptionSourceDto.MESSAGE_HEADER.SENDING_APPLICATION = "IQCARE";
                prescriptionSourceDto.MESSAGE_HEADER.SENDING_FACILITY    = drugPrescriptionSourceData[0].SENDING_FACILITY;


                ////todo - automap
                prescriptionSourceDto.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE = drugPrescriptionSourceData[0].EXT_IDENTIFIER_TYPE;
                prescriptionSourceDto.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID = drugPrescriptionSourceData[0].EXT_ID;
                prescriptionSourceDto.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY = drugPrescriptionSourceData[0].EXT_ASSIGNING_AUTHOURITY;

                // var internalIdentifiers = new List<INTERNALPATIENTID>();
                var internalIdentity = new INTERNAL_PATIENT_ID()
                {
                    ASSIGNING_AUTHORITY = drugPrescriptionSourceData[0].ASSIGNING_AUTHORITY,
                    IDENTIFIER_TYPE     = drugPrescriptionSourceData[0].IDENTIFIER_TYPE,
                    ID = drugPrescriptionSourceData[0].Id
                };

                prescriptionSourceDto.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalIdentity);

                var internalIdentityId = new INTERNAL_PATIENT_ID()
                {
                    ASSIGNING_AUTHORITY = drugPrescriptionSourceData[0].ASSIGNING_AUTHORITY2,
                    ID = drugPrescriptionSourceData[0].Id2,
                    IDENTIFIER_TYPE = drugPrescriptionSourceData[0].IDENTIFIER_TYPE2
                };
                prescriptionSourceDto.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalIdentityId);


                prescriptionSourceDto.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME  = drugPrescriptionSourceData[0].FIRST_NAME;
                prescriptionSourceDto.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME = drugPrescriptionSourceData[0].MIDDLE_NAME;
                prescriptionSourceDto.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME   = drugPrescriptionSourceData[0].LAST_NAME;

                prescriptionSourceDto.COMMON_ORDER_DETAILS.NOTES        = drugPrescriptionSourceData[0].NOTES;
                prescriptionSourceDto.COMMON_ORDER_DETAILS.ORDER_STATUS = drugPrescriptionSourceData[0].ORDER_STATUS;

                prescriptionSourceDto.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.FIRST_NAME  = drugPrescriptionSourceData[0].ORDERING_PHYSICIAN_FIRST_NAME;
                prescriptionSourceDto.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.MIDDLE_NAME = "";
                prescriptionSourceDto.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.LAST_NAME   = drugPrescriptionSourceData[0].ORDERING_PHYSICIAN_LAST_NAME;

                prescriptionSourceDto.COMMON_ORDER_DETAILS.TRANSACTION_DATETIME = drugPrescriptionSourceData[0].TRANSACTION_DATETIME;
                prescriptionSourceDto.COMMON_ORDER_DETAILS.ORDER_CONTROL        = drugPrescriptionSourceData[0].ORDER_CONTROL;

                prescriptionSourceDto.COMMON_ORDER_DETAILS.PLACER_ORDER_NUMBER.ENTITY = drugPrescriptionSourceData[0].ENTITY;
                prescriptionSourceDto.COMMON_ORDER_DETAILS.PLACER_ORDER_NUMBER.NUMBER = drugPrescriptionSourceData[0].NUMBER.ToString();

                var pharmacyEncodedOrder = new List <PHARMACY_ENCODED_ORDER>();

                foreach (var entity in drugPrescriptionSourceData)
                {
                    PHARMACY_ENCODED_ORDER drugLoadOrder = new PHARMACY_ENCODED_ORDER()
                    {
                        DRUG_NAME             = entity.DRUG_NAME,
                        DOSAGE                = entity.DOSAGE.ToString(),
                        CODING_SYSTEM         = entity.CODING_SYSTEM,
                        DURATION              = Convert.ToInt32(entity.DURATION),
                        FREQUENCY             = entity.FREQUENCY,
                        INDICATION            = entity.INDICATION,
                        PHARMACY_ORDER_DATE   = entity.PHARMACY_ORDER_DATE,
                        QUANTITY_PRESCRIBED   = entity.QUANTITY_PRESCRIBED.ToString(),
                        STRENGTH              = entity.STRENGTH,
                        TREATMENT_INSTRUCTION = entity.TREATMENT_INSTRUCTION,
                        PRESCRIPTION_NOTES    = entity.PRESCRIPTION_NOTES
                    };
                    pharmacyEncodedOrder.Add(drugLoadOrder);
                    // prescriptionSourceDto.PHARMACY_ENCODED_ORDER.Add(drugLoadOrder);
                }
                prescriptionSourceDto.PHARMACY_ENCODED_ORDER = pharmacyEncodedOrder;
                return(prescriptionSourceDto);
                // return drugPrescriptionSourceData;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Example #3
0
        public PrescriptionSourceDto DrugPrescriptionRaised(DrugPrescriptionEntity entity)
        {
            // Patient Identification
            var internalIdentifiers = new List <INTERNAL_PATIENT_ID>();

            foreach (var identifier in entity.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID)
            {
                var internalIdentity = new INTERNAL_PATIENT_ID()
                {
                    IDENTIFIER_TYPE = identifier.IDENTIFIER_TYPE,
                    ID = identifier.ID,
                    ASSIGNING_AUTHORITY = identifier.ASSIGNING_AUTHORITY
                };

                internalIdentifiers.Add(internalIdentity);
            }

            var pharmacyEncodedOrders = new List <PHARMACY_ENCODED_ORDER>();

            foreach (var order in entity.PHARMACY_ENCODED_ORDER)
            {
                var prescriptionOrder = new PHARMACY_ENCODED_ORDER()
                {
                    DRUG_NAME             = order.DRUG_NAME,
                    CODING_SYSTEM         = order.CODING_SYSTEM,
                    STRENGTH              = order.STRENGTH,
                    DOSAGE                = order.DOSAGE.ToString(),
                    FREQUENCY             = order.FREQUENCY,
                    DURATION              = Convert.ToInt32(order.DURATION),
                    QUANTITY_PRESCRIBED   = order.QUANTITY_PRESCRIBED.ToString(),
                    INDICATION            = order.INDICATION,
                    PHARMACY_ORDER_DATE   = Convert.ToDateTime(order.PHARMACY_ORDER_DATE),
                    TREATMENT_INSTRUCTION = order.PRESCRIPTION_NOTES
                };
                pharmacyEncodedOrders.Add(prescriptionOrder);
            }

            var patientName = new PATIENT_NAME()
            {
                FIRST_NAME  = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME,
                LAST_NAME   = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME,
                MIDDLE_NAME = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME
            };

            var prescriptionSourceDto = new PrescriptionSourceDto()
            {
                MESSAGE_HEADER =
                {
                    SENDING_APPLICATION   = "IQCARE",
                    SENDING_FACILITY      = entity.MESSAGE_HEADER.SENDING_FACILITY,
                    RECEIVING_APPLICATION = entity.MESSAGE_HEADER.RECEIVING_APPLICATION,
                    RECEIVING_FACILITY    = entity.MESSAGE_HEADER.RECEIVING_FACILITY,
                    MESSAGE_DATETIME      = Convert.ToDateTime(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 =
                {
                    EXTERNAL_PATIENT_ID     =
                    {
                        ASSIGNING_AUTHORITY = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY,
                        ID                  = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID,
                        IDENTIFIER_TYPE     = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE
                    },
                    INTERNAL_PATIENT_ID = internalIdentifiers,
                    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
                    }
                },
                COMMON_ORDER_DETAILS =
                {
                    ORDER_CONTROL       = entity.COMMON_ORDER_DETAILS.ORDER_CONTROL,
                    PLACER_ORDER_NUMBER =
                    {
                        NUMBER = entity.COMMON_ORDER_DETAILS.PLACER_ORDER_NUMBER.ToString(),
                        ENTITY = entity.COMMON_ORDER_DETAILS.PLACER_ORDER_NUMBER.ENTITY
                    },
                    ORDER_STATUS       = entity.COMMON_ORDER_DETAILS.ORDER_STATUS,
                    ORDERING_PHYSICIAN =
                    {
                        FIRST_NAME  = entity.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.FIRST_NAME,
                        MIDDLE_NAME = entity.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.MIDDLE_NAME,
                        LAST_NAME   = entity.COMMON_ORDER_DETAILS.ORDERING_PHYSICIAN.LAST_NAME
                    },
                    TRANSACTION_DATETIME = Convert.ToDateTime(entity.COMMON_ORDER_DETAILS.TRANSACTION_DATETIME),
                    NOTES                = entity.COMMON_ORDER_DETAILS.NOTES.ToString()
                },
                PHARMACY_ENCODED_ORDER = pharmacyEncodedOrders
            };

            return(prescriptionSourceDto);
        }