/// <summary>
        /// Create organization scoper
        /// </summary>
        private MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Organization CreateOrganization(HealthcareParticipant scoper, List <MARC.Everest.Connectors.IResultDetail> details)
        {
            if (scoper == null)
            {
                return(null);
            }

            PN tName = null;

            if (scoper.LegalName != null)
            {
                tName = CreatePN(scoper.LegalName, details);
            }

            var id = scoper.AlternateIdentifiers.Find(o => o.Domain != this.m_configService.OidRegistrar.GetOid("CR_PID").Oid);

            // Basic return value
            var retVal = new MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Organization(
                SET <II> .CreateSET(CreateII(id, details)),
                scoper.Type != null ? CreateCD <String>(scoper.Type, details) : null,
                tName != null ? BAG <ON> .CreateBAG(new ON(tName.Use[0], tName.Part)) : null,
                null
                );

            // Find all representatives
            foreach (HealthcareParticipant rep in scoper.FindAllComponents(HealthServiceRecordSiteRoleType.RepresentitiveOf))
            {
                var cp = new MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty(
                    CreateIISet(rep.AlternateIdentifiers, details),
                    rep.Type != null ? CreateCD <String>(rep.Type, details) : null,
                    rep.PrimaryAddress != null ? BAG <AD> .CreateBAG(CreateAD(rep.PrimaryAddress, details)) : null,
                    null,
                    null
                    );

                // Add telecoms
                if (rep.TelecomAddresses != null)
                {
                    cp.Telecom = new BAG <TEL>();
                    foreach (var tel in rep.TelecomAddresses)
                    {
                        cp.Telecom.Add(CreateTEL(tel, details));
                    }
                }

                // Person info
                if (rep.Classifier == HealthcareParticipant.HealthcareParticipantType.Person && rep.LegalName != null)
                {
                    cp.ContactPerson = new MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Person(
                        BAG <EN> .CreateBAG(CreatePN(rep.LegalName, details))
                        );
                }
                retVal.ContactParty.Add(cp);
            }

            return(retVal);
        }
示例#2
0
		public virtual object Parse(System.Xml.XmlReader s, System.Type useType, System.Type currentInteractionType, MARC.Everest.Formatters.XML.ITS1.XmlIts1FormatterParseResult resultContext) {
			System.String nil = s.GetAttribute("nil", MARC.Everest.Formatters.XML.ITS1.XmlIts1Formatter.NS_XSI);
			if(!System.String.IsNullOrEmpty(nil) && System.Convert.ToBoolean(nil)) return null;;
			MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Organization instance = new MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Organization();;
			if(s.NodeType != System.Xml.XmlNodeType.Element) throw new System.InvalidOperationException(System.String.Format("Expected node type of Element, actual node type is '{0}'", s.NodeType));
if(s.GetAttribute("classCode") != null){ if(!"ORG".Equals(s.GetAttribute("classCode"))) resultContext.AddResultDetail(new MARC.Everest.Connectors.FixedValueMisMatchedResultDetail(s.GetAttribute("classCode"), "ORG", false, s.ToString()));  instance.ClassCode = (MARC.Everest.DataTypes.CS<MARC.Everest.RMIM.UV.NE2008.Vocabulary.EntityClass>)MARC.Everest.Connectors.Util.FromWireFormat(s.GetAttribute("classCode"), typeof(MARC.Everest.DataTypes.CS<MARC.Everest.RMIM.UV.NE2008.Vocabulary.EntityClass>)); }
if(s.GetAttribute("determinerCode") != null){ if(!"INSTANCE".Equals(s.GetAttribute("determinerCode"))) resultContext.AddResultDetail(new MARC.Everest.Connectors.FixedValueMisMatchedResultDetail(s.GetAttribute("determinerCode"), "INSTANCE", false, s.ToString()));  instance.DeterminerCode = (MARC.Everest.DataTypes.CS<MARC.Everest.RMIM.UV.NE2008.Vocabulary.EntityDeterminer>)MARC.Everest.Connectors.Util.FromWireFormat(s.GetAttribute("determinerCode"), typeof(MARC.Everest.DataTypes.CS<MARC.Everest.RMIM.UV.NE2008.Vocabulary.EntityDeterminer>)); }
			if(s.GetAttribute("nullFlavor") != null) instance.NullFlavor = (MARC.Everest.DataTypes.CS<MARC.Everest.DataTypes.NullFlavor>)MARC.Everest.Connectors.Util.FromWireFormat(s.GetAttribute("nullFlavor"), typeof(MARC.Everest.DataTypes.CS<MARC.Everest.DataTypes.NullFlavor>));
			if(s.IsEmptyElement) return instance;
string sName = s.Name;
int sDepth = s.Depth;
s.Read();
while(!(s.NodeType == System.Xml.XmlNodeType.EndElement && s.Name == sName && s.Depth == sDepth)) {
string oldName = s.LocalName; 
 try { if(s.NodeType == System.Xml.XmlNodeType.Element) { 
 if(s.LocalName == "id" ) {

			object d65c212f65852424d82f7d1f1b6a5dc18 = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II>), currentInteractionType, resultContext); instance.Id = d65c212f65852424d82f7d1f1b6a5dc18 is MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II> ? d65c212f65852424d82f7d1f1b6a5dc18 as MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II> : (MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II>)MARC.Everest.Connectors.Util.FromWireFormat(d65c212f65852424d82f7d1f1b6a5dc18, typeof(MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II>));
}
else if(s.LocalName == "code" ) {

			object d603e0afd3d324917977a394fdd7eea9c = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.CE<System.String>), currentInteractionType, resultContext); instance.Code = d603e0afd3d324917977a394fdd7eea9c is MARC.Everest.DataTypes.CE<System.String> ? d603e0afd3d324917977a394fdd7eea9c as MARC.Everest.DataTypes.CE<System.String> : (MARC.Everest.DataTypes.CE<System.String>)MARC.Everest.Connectors.Util.FromWireFormat(d603e0afd3d324917977a394fdd7eea9c, typeof(MARC.Everest.DataTypes.CE<System.String>));
}
else if(s.LocalName == "name" ) {

			object da7ce068604f24b648bc01be01f057fdf = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.ON>), currentInteractionType, resultContext); instance.Name = da7ce068604f24b648bc01be01f057fdf is MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.ON> ? da7ce068604f24b648bc01be01f057fdf as MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.ON> : (MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.ON>)MARC.Everest.Connectors.Util.FromWireFormat(da7ce068604f24b648bc01be01f057fdf, typeof(MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.ON>));
}
else if(s.LocalName == "contactParty" ) {

			object d08b644830b9f4843994063a0d1066dd9 = Host.ParseObject(s, typeof(MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty), currentInteractionType, resultContext); instance.ContactParty.Add(d08b644830b9f4843994063a0d1066dd9 is MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty ? (MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty)d08b644830b9f4843994063a0d1066dd9 : (MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty)MARC.Everest.Connectors.Util.FromWireFormat(d08b644830b9f4843994063a0d1066dd9, typeof(MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty)));
}
else if(s.LocalName == "realmCode" ) {

			object d4d75705db2ec438e8978e34c8fb66147 = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>>), currentInteractionType, resultContext); instance.RealmCode = d4d75705db2ec438e8978e34c8fb66147 is MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>> ? d4d75705db2ec438e8978e34c8fb66147 as MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>> : (MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>>)MARC.Everest.Connectors.Util.FromWireFormat(d4d75705db2ec438e8978e34c8fb66147, typeof(MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>>));
}
else if(s.LocalName == "typeId" ) {

			object d8ee9fa67629e4803a985fbb3abb47f53 = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.II), currentInteractionType, resultContext); instance.TypeId = d8ee9fa67629e4803a985fbb3abb47f53 is MARC.Everest.DataTypes.II ? d8ee9fa67629e4803a985fbb3abb47f53 as MARC.Everest.DataTypes.II : (MARC.Everest.DataTypes.II)MARC.Everest.Connectors.Util.FromWireFormat(d8ee9fa67629e4803a985fbb3abb47f53, typeof(MARC.Everest.DataTypes.II));
}
else if(s.LocalName == "templateId" ) {

			object df096580e857e4bbbbdfdd1f22635c42a = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II>), currentInteractionType, resultContext); instance.TemplateId = df096580e857e4bbbbdfdd1f22635c42a is MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II> ? df096580e857e4bbbbdfdd1f22635c42a as MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II> : (MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II>)MARC.Everest.Connectors.Util.FromWireFormat(df096580e857e4bbbbdfdd1f22635c42a, typeof(MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II>));
}
else { resultContext.AddResultDetail(new MARC.Everest.Connectors.NotImplementedElementResultDetail(MARC.Everest.Connectors.ResultDetailType.Warning, s.LocalName, s.NamespaceURI, s.ToString(), null)); }
}
}
catch (System.Exception e) { resultContext.AddResultDetail(new MARC.Everest.Connectors.ResultDetail(MARC.Everest.Connectors.ResultDetailType.Error, e.Message, s.ToString(), e)); }
finally { if(oldName.Equals(s.LocalName)) s.Read(); } }
			return instance;
		}