Ejemplo n.º 1
0
        public static Patient CreateTestFHIRPatientProfile()
        {
            Patient    pt = new Patient();
            Identifier idSession;
            Identifier idPatientCertificate;

            idSession        = new Identifier();
            idSession.System = "http://www.mynoid.com/fhir/SessionID";
            idSession.Value  = "S12348";
            pt.Identifier.Add(idSession);

            idPatientCertificate        = new Identifier();
            idPatientCertificate.System = "http://www.mynoid.com/fhir/PatientCertificateID";
            idPatientCertificate.Value  = "PT67891";
            pt.Identifier.Add(idPatientCertificate);

            ResourceReference managingOrganization = new ResourceReference(NoID_OID, "Test NoID");

            pt.ManagingOrganization = managingOrganization;

            pt.Language      = "English";
            pt.BirthDate     = "2006-07-03";
            pt.Gender        = AdministrativeGender.Female;
            pt.MultipleBirth = new FhirString("No");
            // Add patient name
            HumanName ptName = new HumanName();

            ptName.Given  = new string[] { "Mary", "J" };
            ptName.Family = "Bling";
            pt.Name       = new List <HumanName> {
                ptName
            };
            // Add patient address
            Address address = new Address();

            address.Line       = new string[] { "300 Exit St", "Unit 5" };
            address.City       = "New Orleans";
            address.State      = "LA";
            address.Country    = "USA";
            address.PostalCode = "70112-1202";
            pt.Address.Add(address);
            Attachment attach = new Attachment();
            Media      media  = new Media();

            media.AddExtension("Healthcare Node", FHIRUtilities.OrganizationExtension("Test NoID FHIR Message", "noidtest.net", "devtest.noidtest.net"));
            media.AddExtension("Biometic Capture", FHIRUtilities.CaptureSiteExtension(
                                   CaptureSiteSnoMedCode.IndexFinger, LateralitySnoMedCode.Left, "Test Scanner Device", 500, 350, 290));
            Extension extFingerPrintMedia = FHIRUtilities.FingerPrintMediaExtension(
                "123",
                "211",
                "43",
                "0"
                );

            media.Extension.Add(extFingerPrintMedia);

            extFingerPrintMedia = FHIRUtilities.FingerPrintMediaExtension(
                "180",
                "91",
                "211",
                "1"
                );

            media.Extension.Add(extFingerPrintMedia);

            extFingerPrintMedia = FHIRUtilities.FingerPrintMediaExtension(
                "201",
                "154",
                "44",
                "1"
                );

            media.Extension.Add(extFingerPrintMedia);

            extFingerPrintMedia = FHIRUtilities.FingerPrintMediaExtension(
                "21",
                "279",
                "310",
                "0"
                );

            media.Extension.Add(extFingerPrintMedia);


            attach.Data = FhirSerializer.SerializeToJsonBytes(media, summary: Hl7.Fhir.Rest.SummaryType.False);

            pt.Photo.Add(attach);

            return(pt);
        }
Ejemplo n.º 2
0
        public Media FingerPrintFHIRMedia(FingerPrintMinutias fingerPrints, string deviceName, int originalDPI, int originalHeight, int originalWidth)
        {
            Media FingerPrintMedia = null;

            try
            {
                if ((fingerPrints != null))
                {
                    //TODO: add capture date/time to message
                    FingerPrintMedia = new Media(); //Creates the fingerprint minutia template FHIR object as media type.
                    FingerPrintMedia.AddExtension("Healthcare Node", FHIRUtilities.OrganizationExtension(OrganizationName, DomainName, ServerName));
                    FingerPrintMedia.AddExtension("Biometic Capture", FHIRUtilities.CaptureSiteExtension(fingerPrints.CaptureSiteSnoMedCode, fingerPrints.LateralitySnoMedCode, deviceName, originalDPI, originalHeight, originalWidth));

                    FingerPrintMedia.Identifier = new List <Identifier>();

                    Identifier idSession;
                    Identifier idPatientCertificate;
                    if ((SessionID != null))
                    {
                        if (SessionID.Length > 0)
                        {
                            idSession        = new Identifier();
                            idSession.System = ServerName + "/fhir/SessionID";
                            idSession.Value  = SessionID;
                            FingerPrintMedia.Identifier.Add(idSession);
                        }
                        else
                        {
                            //TODO this is a critical error.  all need a unique session id.
                        }
                    }
                    else
                    {
                        //TODO this is critical.  all need a unique session id.
                    }
                    if (LocalNoID != null)
                    {
                        if (LocalNoID.Length > 0)
                        {
                            idPatientCertificate        = new Identifier();
                            idPatientCertificate.System = ServerName + "/fhir/LocalNoID";
                            idPatientCertificate.Value  = LocalNoID;
                            FingerPrintMedia.Identifier.Add(idPatientCertificate);
                        }
                    }
                    // TODO: Add RemoteNoID.

                    foreach (var Minutia in fingerPrints.Minutiae)
                    {
                        if (FingerPrintMedia is null)
                        {
                            FingerPrintMedia = new Media();
                        }

                        Extension extFingerPrintMedia = FHIRUtilities.FingerPrintMediaExtension(
                            Minutia.PositionX.ToString(),
                            Minutia.PositionY.ToString(),
                            Minutia.Direction.ToString(),
                            Minutia.Type.ToString()
                            );

                        FingerPrintMedia.AddExtension("Biometrics", extFingerPrintMedia);
                    }
                }
            }
            catch (Exception ex)
            {
                BaseException = ex;
            }
            return(FingerPrintMedia);
        }