FHIR Chat · URI values cannot have whitespace in Snapshot · tooling

Stream: tooling

Topic: URI values cannot have whitespace in Snapshot


view this post on Zulip Maximilian Reith (Aug 20 2019 at 06:11):

Hey,

i got a lot of validation errors in the snapshot part of some resources. I developed these resources with forge...

HAPI 3.8 Validation Error: URI values cannot have whitespace

<element id="Extension.value[x]:valueIdentifier.system">
  <path value="Extension.valueIdentifier.system" />
  <short value="NamingSystem der ASV-Teamnummer" />
  <definition value="Establishes the namespace for the value - that is, a URL that describes a set values that are unique." />
  <comment value="see http://en.wikipedia.org/wiki/Uniform_resource_identifier" />
  <requirements value="There are many sets  of identifiers.  To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers." />
  <min value="1" />
  <max value="1" />
  <base>
    <path value="Identifier.system" />
    <min value="0" />
    <max value="1" />
  </base>
  <type>
    <code value="uri" />
  </type>
  <fixedUri value="http://fhir.de/NamingSystem/asv/teamnummer" />
  <example>
    <label value="General" />
    <valueUri value="http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri" />
  </example>

i think valueUri might be invalid...Could anybody confirm this?

greetings Max

view this post on Zulip Grahame Grieve (Aug 20 2019 at 06:41):

yes that's the subject of a technical correction... one that I thought we'd done... where are you encountering this?

view this post on Zulip Maximilian Reith (Aug 20 2019 at 07:01):

FHIR DSTU 3; Forge 22.0 in several Extensions and Profiles(Practitioner, Organziation, Bundle...) or do you need to know the exact position e.g. which element?

view this post on Zulip Michel Rutten (Aug 20 2019 at 08:51):

Indeed! Apparently, the STU3 Identifier datatype definition is responsible for introducing the invalid example Uri: http://hl7.org/fhir/stu3/identifier.profile.xml.html
The invalid uri can "leak" into the snapshot of datatypes & resources that constrain Identifier, causing validation errors. Therefore you cannot fix this in your own derived profiles; this requires a technical correction of STU3.

view this post on Zulip Grahame Grieve (Aug 20 2019 at 21:15):

ok this is on my list for the R3 technical correction. I'm not sure when I'll be doing that - soon.

view this post on Zulip Chris Moesel (Aug 21 2019 at 13:08):

I've found that DSTU2/STU3 also has some mapping URIs with spaces in them as well. I'll see if I can get you a list of the transgressors.

view this post on Zulip Chris Moesel (Aug 21 2019 at 14:30):

OK. Wrote a little script. Here is what I found if it is helpful. I essentially looked at all types, resources, profiles, and extensions in the downloaded definitions of DSTU2, STU3, and R4 specs.

========================================
DSTU2
========================================

DSTU2 Type: Identifier
  snapshot[5].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-do
  snapshot[21].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-dr
  snapshot[14].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-obscode
  snapshot[31].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-obsquantity
  snapshot[31].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-obsother
  snapshot[31].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-obsrange
  snapshot[31].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-obsratio
  snapshot[31].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-obspanel
  snapshot[31].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-orderfacility
  snapshot[15].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-performinglab
  snapshot[15].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-cctarget
  snapshot[15].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-patient
  snapshot[46].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-phpatient
  snapshot[46].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-pract
  snapshot[14].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-phpract
  snapshot[14].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: uslab-spec
  snapshot[14].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
  snapshot[38].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: daf-diagnosticorder
  snapshot[16].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: daf-diagnosticreport
  snapshot[14].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: daf-resultobs
  snapshot[14].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: daf-patient
  snapshot[19].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
DSTU2 Profile: daf-pract
  snapshot[18].exampleUri = 'NPI could be used as the identifier system in the US.
DSTU2 Profile: daf-spec
  snapshot[14].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
  snapshot[38].exampleUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri

========================================
STU3
========================================

STU3 Type: Identifier
  snapshot[5].example[0].valueUri = 'http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri'

========================================
R4
========================================

None

view this post on Zulip Chris Moesel (Aug 21 2019 at 14:31):

Note that those argo/us core profiles are the ones that were actually packaged in the FHIR spec; not the ones in the separately packaged IGs.

view this post on Zulip Grahame Grieve (Aug 21 2019 at 14:31):

on my list. we won't be fixing r2, I think

view this post on Zulip Chris Moesel (Aug 21 2019 at 15:04):

Whoops, my bad. It turns out I was loading in the official US Core definitions too. I unloaded those and ran it again -- then updated my list in the post above. Now STU3 is only reporting that one thing you already knew about Identifier.


Last updated: Apr 12 2022 at 19:14 UTC