Exemple #1
0
        public static Bundle CreateRandomLabOrder()
        {
            var patient = FhirResourceHelper.CreatePatient();

            var orderOrganization           = FhirResourceHelper.CreateOrganization();
            var diagnosticOrderOrganization = FhirResourceHelper.CreateOrganization();

            var orderPractitioner           = FhirResourceHelper.CreatePractitioner(orderOrganization);
            var diagnosticOrderPractitioner = FhirResourceHelper.CreatePractitioner(diagnosticOrderOrganization);

            var specimen  = FhirResourceHelper.GetSpecimen(patient, orderOrganization);
            var specimen1 = FhirResourceHelper.GetSpecimen(patient, orderOrganization);

            var condition = FhirResourceHelper.GetCondition(patient);

            var encounter = FhirResourceHelper.CreateEncounter(patient, condition, orderOrganization);

            var observation  = FhirResourceHelper.GetObservation();
            var observation1 = FhirResourceHelper.GetObservation();

            var diagnosticOrder = FhirResourceHelper.GetDiagnosticOrder(patient, diagnosticOrderPractitioner, encounter,
                                                                        observation, observation1, specimen, specimen1);
            var order          = FhirResourceHelper.GetOrder(patient, orderPractitioner, orderOrganization, diagnosticOrder);
            var lisOrderBundle = FhirResourceHelper.GetLisOrderBundle(order, diagnosticOrder, condition,
                                                                      new List <Specimen> {
                specimen, specimen1
            },
                                                                      new List <Observation> {
                observation, observation1
            });

            return(lisOrderBundle);
        }
Exemple #2
0
        public static Bundle CreateLabResultForOrder(Order order)
        {
            var resultOrganization = order.Target;

            var practitioner1      = FhirResourceHelper.GetPractitioner(resultOrganization);
            var practitioner2      = FhirResourceHelper.GetPractitioner(resultOrganization);
            var reportPractitioner = FhirResourceHelper.GetPractitioner(resultOrganization);

            var observation1 = FhirResourceHelper.GetObservation(practitioner1);
            var observation2 = FhirResourceHelper.GetObservation(practitioner2);

            var diagnosticReport = FhirResourceHelper.GetDiagnosticReport(order.Subject,
                                                                          reportPractitioner, observation1, observation2, order.Detail.First());

            var orderResponse = FhirResourceHelper.GetOrderResponse(order, new[] { diagnosticReport });

            var lisResultBundle = new Bundle
            {
                Meta = new Meta
                {
                    Profile = new List <string> {
                        Constants.LisResultStructureDefinitionReference
                    },
                },
                Type  = Bundle.BundleType.Transaction,
                Entry = new List <Bundle.BundleEntryComponent>
                {
                    new Bundle.BundleEntryComponent
                    {
                        Resource    = orderResponse,
                        Transaction = new Bundle.BundleEntryTransactionComponent
                        {
                            Method = Bundle.HTTPVerb.POST,
                            Url    = orderResponse.TypeName,
                        }
                    },
                    new Bundle.BundleEntryComponent
                    {
                        Resource    = practitioner1,
                        Transaction = new Bundle.BundleEntryTransactionComponent
                        {
                            Method = Bundle.HTTPVerb.POST,
                            Url    = practitioner1.TypeName,
                        }
                    },
                    new Bundle.BundleEntryComponent
                    {
                        Resource    = practitioner2,
                        Transaction = new Bundle.BundleEntryTransactionComponent
                        {
                            Method = Bundle.HTTPVerb.POST,
                            Url    = practitioner2.TypeName,
                        }
                    },
                    new Bundle.BundleEntryComponent
                    {
                        Resource    = reportPractitioner,
                        Transaction = new Bundle.BundleEntryTransactionComponent
                        {
                            Method = Bundle.HTTPVerb.POST,
                            Url    = reportPractitioner.TypeName,
                        }
                    },
                    new Bundle.BundleEntryComponent
                    {
                        Resource    = diagnosticReport,
                        Transaction = new Bundle.BundleEntryTransactionComponent
                        {
                            Method = Bundle.HTTPVerb.POST,
                            Url    = diagnosticReport.TypeName,
                        }
                    },
                    new Bundle.BundleEntryComponent
                    {
                        Resource    = observation1,
                        Transaction = new Bundle.BundleEntryTransactionComponent
                        {
                            Method = Bundle.HTTPVerb.POST,
                            Url    = observation1.TypeName,
                        }
                    },
                    new Bundle.BundleEntryComponent
                    {
                        Resource    = observation2,
                        Transaction = new Bundle.BundleEntryTransactionComponent
                        {
                            Method = Bundle.HTTPVerb.POST,
                            Url    = observation2.TypeName,
                        }
                    },
                }
            };

            return(lisResultBundle);
        }