FHIR Chat · Migrating from Spreadsheet to Forge · IG creation

Stream: IG creation

Topic: Migrating from Spreadsheet to Forge


view this post on Zulip Eric Haas (Mar 13 2018 at 15:59):

I'm trying to migrate to Forge. So in a test run, I edited the file to remove the IG generated narrative and snapshot elements and uploaded the file. The SD has a subject with a targetProfile to us-core patient. But right out of the box I am getting this:

@Michel Rutten ?

2018-03-13T08:50:17
Forge Forge 18.2.1 for HL7 FHIR STU3
HIMSS 2018 Edition
Version: Version 18.2.1.0 (ClickOnce)
FHIR Version: FHIR .NET API library for 3.0.1
--------------------------------------------------
CanonicalUrlConflictException in Hl7.Fhir.STU3.Specification:
Found conflicting Conformance Resource artifacts with the same canonical url identifier.

Url: http://hl7.org/fhir/StructureDefinition/us-core-race
   File: C:\Users\Eric\Downloads\extension-us-core-race (1).xml
   File: C:\Users\Eric\Downloads\extension-us-core-race.canonical.xml
   File: C:\Users\Eric\Downloads\extension-us-core-race.xml

   at Hl7.Fhir.Specification.Source.DirectorySource.prepareSummaries()
   at Hl7.Fhir.Specification.Source.DirectorySource.GetSummaries()
   at Hl7.Fhir.Specification.Source.DirectorySource.ResolveByCanonicalUri(String uri)
   at Hl7.Fhir.Specification.Source.CachedResolver.InternalResolveByCanonicalUri(String url)
   at Hl7.Fhir.Specification.Source.CachedResolver.<.ctor>b__3_1(String id)
   at Hl7.Fhir.Specification.Source.CachedResolver.Cache`1.Get(String identifier, CachedResolverLoadingStrategy strategy)
   at Hl7.Fhir.Specification.Source.CachedResolver.ResolveByCanonicalUri(String url)
   at Hl7.Fhir.Specification.Source.MultiResolver.ResolveByCanonicalUri(String uri)
   at Forge.ViewModels.ElementTypeMatcher.findCandidateBaseTypesForTargetProfile(IEnumerable`1 candidates, String targetProfileUri)
   at Forge.ViewModels.ElementTypeMatcher.findBaseForReferenceType(IEnumerable`1 baseTypes, TypeRefComponent type)
   at Forge.ViewModels.ElementTypeMatcher.FindBaseType(IList`1 baseTypes, TypeRefComponent type)
   at Forge.ViewModels.TypeStorageHandler.<CreateItems>d__20.MoveNext()
   at Forge.ViewModels.MultipleValueProperty`1.set_StorageHandler(IStorageHandler value)
   at Forge.ViewModels.TypeProperty.set_StorageHandler(IStorageHandler value)
   at Forge.ViewModels.DefinitionVM.setModelElement(ElementDefinition definition, IElementsStorageHandler elementsStorageHandler)
   at Forge.ViewModels.DefinitionVM.initialize(Base modelElement, Base baseElement, IElementsStorageHandler elementsStorageHandler)
   at Forge.ViewModels.ElementsStorageHandler.get_Value()
   at Forge.ViewModels.SingleValueProperty`1.set_StorageHandler(IStorageHandler value)
   at Forge.ViewModels.RestrictingElementDefinitionVM.set_StorageHandler(IStorageHandler value)
   at Forge.ViewModels.RestrictingElementDefinitionVM..ctor(MultipleValueProperty`1 owner, ElementsStorageHandler storageHandler)
   at Forge.ViewModels.ElementsStorageHandler.<CreateItems>d__72.MoveNext()
   at Forge.ViewModels.MultipleValueProperty`1.set_StorageHandler(IStorageHandler value)
   at Forge.ViewModels.ProfileVM.set_ModelElement(Base value)
   at Forge.ViewModels.ProfileVM.Initialize(Base modelElement, Base baseElement)
   at Forge.ViewModels.ProfileVM..ctor(ISessionItem owner, StructureDefinition model, StructureDefinition baseModel, String contentDirectory)
   at Forge.ViewModels.SessionItemVM.CreateResourceVM(SessionItemVM owner, Resource model, String contentDirectory)
   at Forge.ViewModels.SessionItemVM..ctor(ISessionItem owner, IDocument document, Resource model)
   at Forge.ViewModels.SessionItemVM.Open(IDocument document, Boolean dontLoad, Boolean asCopy)
   at Forge.ViewModels.SessionItemVM.Open(Uri url, Boolean dontLoad, Boolean asCopy)
   at Forge.ViewModels.SessionItemVM.Open(Boolean asCopy)
   at Forge.ViewModels.SessionItemVM.Open()
   at Forge.ViewModels.SessionVM.<>c.<onOpen>b__178_0(ISessionItem item)
   at Forge.ViewModels.SessionVM.<>c__DisplayClass162_0.<executeItemCollectionCommand>b__0()
   at Forge.Common.UIServices.ExecuteOnUIThread(Action action)
   at Forge.ViewModels.SessionVM.executeCommand(Action action)

view this post on Zulip Eric Haas (Mar 13 2018 at 16:03):

Is there a more efficient way?

view this post on Zulip Michel Rutten (Mar 13 2018 at 16:04):

Hi @Eric Haas , apparently your source folder contains multiple versions of a profile with the same canonical url. Al canonical urls should resolve to exactly one source file for operations to complete successfully.

Url: http://hl7.org/fhir/StructureDefinition/us-core-race
   File: C:\Users\Eric\Downloads\extension-us-core-race (1).xml
   File: C:\Users\Eric\Downloads\extension-us-core-race.canonical.xml
   File: C:\Users\Eric\Downloads\extension-us-core-race.xml

Please delete the unused duplicates, move to another folder (not a subfolder) or change the extension to e.g. ".bak". That should fix the problem.

view this post on Zulip Eric Haas (Mar 13 2018 at 16:30):

@Michel Rutten Can I turn this stuff off so I can just edit and validate later?

view this post on Zulip Eric Haas (Mar 13 2018 at 16:41):

oh and thanks for the quick reply... I think I got it now


Last updated: Apr 12 2022 at 19:14 UTC