Guide how to read simplifier profiles

This guide has the intention of describing how to read and find information from the different profiles, for more complete information visit Official documentation

A simplifier profile looks like the Person example below.

versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ0..*canonical
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
fregMetadataI0..1Extension(Complex)
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
deceasedS I0..1Extension(Complex)
url1..1System.StringFixed Value
valueDatedate
url1..1System.StringFixed Value
valueStringstring
url1..1System.StringFixed Value
valueStringstring
url1..1System.StringFixed Value
valueStringstring
metadataI0..1Extension(Complex)
url1..1System.StringFixed Value
url1..1System.StringFixed Value
birthInNorwayS I0..1Extension(Complex)
migrationS I0..*Extension(Complex)
url1..1System.StringFixed Value
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
url1..1System.StringFixed Value
startS Σ I0..1dateTime
endΣ I0..1dateTime
url1..1System.StringFixed Value
valueDateTimedateTime
url1..1System.StringFixed Value
valueBooleanboolean
url1..1System.StringFixed Value
valueStringstring
url1..1System.StringFixed Value
valueStringstring
url1..1System.StringFixed Value
valueDateTimedateTime
url1..1System.StringFixed Value
valueDateTimedateTime
url1..1System.StringFixed Value
url1..1System.StringFixed Value
fregPersonStatusS I0..*Extension(Complex)
residencePermitS I0..*Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
foreignIdentifierS0..*GdIdentifierForeign
nameS Σ0..*GdHumanName
telecomΣ I0..*ContactPoint
metadataI0..1Extension(Complex)
birthDateS Σ0..1date
addressS0..*GdAddressCadastral, GdAddressInternational, GdAddressStreet, GdAddressBox, GdAddressFreeform, GdAddressUnknown
photoI0..1Attachment
managingOrganizationΣ I0..1Reference(Organization| no-basis-Organization)
activeS Σ ?!0..1boolean
targetI1..1Reference(Patient| Practitioner| RelatedPerson| Person)
assurance0..1codeBinding

Columns and symbols

  • The first column contains a tree view of the profile. When a profile has elements that has child elements (for example the meta element) or the element is a list of other elements (for example the extension list) the element name will have a pluss symbol to the left of its name. Clicking these lets you drill down and see all subelements for the desired element or sub elements.

  • The second column contains a list of symbols, relevant symbols are described below.

    • S denotes that the element is mandatory.
    • ?! denotes that the element is a modifying element. A modifying element is defined as an element that based on its value changes the way an element or its descendants are interpreted. An example of this is the active element that we use to describe if the person's record is in active use or not
    • Σ denotes if the element is part of the summary of the profile when using the _summary=true parameter for searches
  • The third column denotes the cardinality of the elements.

    • 0..* means that there could be anything from 0 to infinate number of elements
    • 0..1 means that there are either 0 or 1 element
    • 1..* means that there must be at least 1 element up to infinate amount of elements
    • 1..1 means that there must be 1 and only 1 element
  • The last column indicates the type of the element. This also serves as a link to go directly to that elements profile.

When navigating the profile tree there are a few options. When hoovering over a row in the profile tree a description should appear on the right. Clicking on it should keep the description visible even when moving the cursor. The element description contains some or all of the following sections, most of which are self explanatory. Below lists the ones we directly use.

  • Element Id, the id of the element
  • Short description, a short descrition of the element
  • Alternate names, aliases for the element
  • Definition, should contain important information of the element
  • Data Type, data type of the element
  • Binding, the values are bound to a valueset (for example Iso3166-1-3(three letter code) or urn:oid:2.16.578.1.12.4.1.1.3402 (Norwegian municipality numbers)), if present on the fhir server the values are validated against the valueset.
  • Constraints, if the element has constraints they are listed here.
  • Mappings, information on what fields should map to the value of the element. This is not widely updated in the current versions of our profiles. For this to be a more useful section we should consider updating our profiles with information of which fields from FREG we actually maps the values from.

Exceptions and abnormal behaviour

  • In some cases the expand (pluss symbol) besides an element in the list does not appear. This is a bug known to fhirly that multiple people have reported, and will be rectified at some point. When this occurs, clicking on the type will take you to that profile, and from there it is possible to see its child elements.