SMART Guidelines L3 SOP
1.1.0 - ci-build International flag

SMART Guidelines L3 SOP, published by WHO. This guide is not an authorized publication; it is the continuous build for version 1.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-ig-starter-kit and changes regularly. See the Directory of published versions

Authoring Conventions

This page describes basic conventions for all artifacts that are needed to be authored.

Naming convention

Resource IDs

  • Resource source files shall have extension .json or .xml
  • StructureMaps authored in FHIR Mapping Language shall have extension .fml
  • ValueSets should be prefixed or suffixed by VS (not enforced)
  • Codesystems do not need to to be prefixed or suffixed. The tooling shall handle the resources per type and ID, so there’s no conflict
  • Resource Ids should start with capital letter and may contain hyphens - NOT underscore:
    • Resourceid is valid
    • Resource-id is also valid, although not preferred
Resource IDs can only use up to 64 letters,numbers, hyphens and periods. Resource Ids must be combination of letters, numbers, hyphens, and periods. Ensure that the name is at least 1 character long but does not exceed 64 characters in length. The expression is
[A-Za-z0-9\-\.]{1,64}
Names must start with an uppercase character, and may contain letters, numbers or underscores Names must start with an uppercase letter followed by up to 254 characters that can be a mix of letters, numbers, or underscores. The expression is
^[A-Z]([A-Za-z0-9_]){1,254}$

File Names

  • Resource file names must match the resource id. For profiles, this means the profile id.
  • Tools are case sensitive - file names shall not have overlapping names differing only in case
  • Sushi / FSH Aliases should be stored in fsh/Aliases.fsh
  • See versioning

Native FHIR (JSON / XML)

For json or xml content, the file name SHALL be in the form

  • ResourceType-resourceid.xml/json (preferred)
  • ResourceType/resourceid.xml/json
  • resourceid.xml/json

FSH Content

For fsh content, the file name SHALL be in the form

  • ResourceType/resourceid.fsh

File Locations

The input folders for the resources are:

  • input/[fsh/]scenarios
  • input/[fsh/]actors
  • input/[fsh/]measures
  • input/[fsh/]requirements
  • input/[fsh/]processes
  • input/[fsh/]plandefinitions
  • input/[fsh/]activitydefinitions
  • input/[fsh/]testing
  • input/[fsh/]examples
  • input/[fsh/]codesystems
  • input/[fsh/]valuesets
  • input/[fsh/]models
  • input/[fsh/]questionnaires
  • input/[fsh/]profiles
  • input/[fsh/]maps
  • input/[fsh/]cql
  • input/[fsh/]libraries

[fsh] is the path for FSH files: the folders structure is the same but inside the fsh folder, e.g. the JSON files could go into input/actors and the FSH File would go into input/fsh/actors.